diff --git a/.gitignore b/.gitignore index 7ba457c..0947dac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,132 @@ -node_modules +.DS_Store + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory .temp .cache -.DS_Store \ No newline at end of file + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 7a73a41..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4fac359 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 swlws + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/b2.md b/b2.md new file mode 100644 index 0000000..ccf47c2 --- /dev/null +++ b/b2.md @@ -0,0 +1,26 @@ +# B2 Cloud Storage + +官网地址:https://www.backblaze.com/b2/cloud-storage.html + +使用 b2 作为图床,支持使用命令行上传图片,步骤: + +- 创建`backblaze`账号 +- 生成 App ID 和 App Key +- 安装命令行工具 + +常用命令行: + +```bash +# 枚举所有的bucket +~ b2 list-bucket + +# 上传图片 +~ b2 upload_file swlws-b2 one-piece.jpeg one-piece.jpeg + +# 查看仓库中的所有图片 +~ b2 ls --recursive swlws-b2 +``` + +使用 URL 展示已上传的图片 + +![one-piece](https://f004.backblazeb2.com/file/swlws-b2/one-piece.jpeg) diff --git a/bin/cwebp b/bin/cwebp new file mode 100755 index 0000000..9608eeb Binary files /dev/null and b/bin/cwebp differ diff --git a/config/.vitepress/cache/deps/@braintree_sanitize-url.js b/config/.vitepress/cache/deps/@braintree_sanitize-url.js new file mode 100644 index 0000000..2b176d0 --- /dev/null +++ b/config/.vitepress/cache/deps/@braintree_sanitize-url.js @@ -0,0 +1,51 @@ +import { + __commonJS +} from "./chunk-Y2F7D3TJ.js"; + +// node_modules/.pnpm/@braintree+sanitize-url@6.0.4/node_modules/@braintree/sanitize-url/dist/index.js +var require_dist = __commonJS({ + "node_modules/.pnpm/@braintree+sanitize-url@6.0.4/node_modules/@braintree/sanitize-url/dist/index.js"(exports) { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sanitizeUrl = exports.BLANK_URL = void 0; + var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im; + var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g; + var htmlCtrlEntityRegex = /&(newline|tab);/gi; + var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim; + var urlSchemeRegex = /^.+(:|:)/gim; + var relativeFirstCharacters = [".", "/"]; + exports.BLANK_URL = "about:blank"; + function isRelativeUrlWithoutProtocol(url) { + return relativeFirstCharacters.indexOf(url[0]) > -1; + } + function decodeHtmlCharacters(str) { + var removedNullByte = str.replace(ctrlCharactersRegex, ""); + return removedNullByte.replace(htmlEntitiesRegex, function(match, dec) { + return String.fromCharCode(dec); + }); + } + function sanitizeUrl(url) { + if (!url) { + return exports.BLANK_URL; + } + var sanitizedUrl = decodeHtmlCharacters(url).replace(htmlCtrlEntityRegex, "").replace(ctrlCharactersRegex, "").trim(); + if (!sanitizedUrl) { + return exports.BLANK_URL; + } + if (isRelativeUrlWithoutProtocol(sanitizedUrl)) { + return sanitizedUrl; + } + var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex); + if (!urlSchemeParseResults) { + return sanitizedUrl; + } + var urlScheme = urlSchemeParseResults[0]; + if (invalidProtocolRegex.test(urlScheme)) { + return exports.BLANK_URL; + } + return sanitizedUrl; + } + exports.sanitizeUrl = sanitizeUrl; + } +}); +export default require_dist(); +//# sourceMappingURL=@braintree_sanitize-url.js.map diff --git a/config/.vitepress/cache/deps/@braintree_sanitize-url.js.map b/config/.vitepress/cache/deps/@braintree_sanitize-url.js.map new file mode 100644 index 0000000..17cc978 --- /dev/null +++ b/config/.vitepress/cache/deps/@braintree_sanitize-url.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../node_modules/.pnpm/@braintree+sanitize-url@6.0.4/node_modules/@braintree/sanitize-url/dist/index.js"], + "sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = exports.BLANK_URL = void 0;\nvar invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nvar htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nvar htmlCtrlEntityRegex = /&(newline|tab);/gi;\nvar ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nvar urlSchemeRegex = /^.+(:|:)/gim;\nvar relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\nfunction isRelativeUrlWithoutProtocol(url) {\n return relativeFirstCharacters.indexOf(url[0]) > -1;\n}\n// adapted from https://stackoverflow.com/a/29824550/2601552\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(ctrlCharactersRegex, \"\");\n return removedNullByte.replace(htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return exports.BLANK_URL;\n }\n var sanitizedUrl = decodeHtmlCharacters(url)\n .replace(htmlCtrlEntityRegex, \"\")\n .replace(ctrlCharactersRegex, \"\")\n .trim();\n if (!sanitizedUrl) {\n return exports.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0];\n if (invalidProtocolRegex.test(urlScheme)) {\n return exports.BLANK_URL;\n }\n return sanitizedUrl;\n}\nexports.sanitizeUrl = sanitizeUrl;\n"], + "mappings": ";;;;;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAC5D,YAAQ,cAAc,QAAQ,YAAY;AAC1C,QAAI,uBAAuB;AAC3B,QAAI,oBAAoB;AACxB,QAAI,sBAAsB;AAC1B,QAAI,sBAAsB;AAC1B,QAAI,iBAAiB;AACrB,QAAI,0BAA0B,CAAC,KAAK,GAAG;AACvC,YAAQ,YAAY;AACpB,aAAS,6BAA6B,KAAK;AACvC,aAAO,wBAAwB,QAAQ,IAAI,CAAC,CAAC,IAAI;AAAA,IACrD;AAEA,aAAS,qBAAqB,KAAK;AAC/B,UAAI,kBAAkB,IAAI,QAAQ,qBAAqB,EAAE;AACzD,aAAO,gBAAgB,QAAQ,mBAAmB,SAAU,OAAO,KAAK;AACpE,eAAO,OAAO,aAAa,GAAG;AAAA,MAClC,CAAC;AAAA,IACL;AACA,aAAS,YAAY,KAAK;AACtB,UAAI,CAAC,KAAK;AACN,eAAO,QAAQ;AAAA,MACnB;AACA,UAAI,eAAe,qBAAqB,GAAG,EACtC,QAAQ,qBAAqB,EAAE,EAC/B,QAAQ,qBAAqB,EAAE,EAC/B,KAAK;AACV,UAAI,CAAC,cAAc;AACf,eAAO,QAAQ;AAAA,MACnB;AACA,UAAI,6BAA6B,YAAY,GAAG;AAC5C,eAAO;AAAA,MACX;AACA,UAAI,wBAAwB,aAAa,MAAM,cAAc;AAC7D,UAAI,CAAC,uBAAuB;AACxB,eAAO;AAAA,MACX;AACA,UAAI,YAAY,sBAAsB,CAAC;AACvC,UAAI,qBAAqB,KAAK,SAAS,GAAG;AACtC,eAAO,QAAQ;AAAA,MACnB;AACA,aAAO;AAAA,IACX;AACA,YAAQ,cAAc;AAAA;AAAA;", + "names": [] +} diff --git a/config/.vitepress/cache/deps/@theme_index.js b/config/.vitepress/cache/deps/@theme_index.js new file mode 100644 index 0000000..0bfb3ae --- /dev/null +++ b/config/.vitepress/cache/deps/@theme_index.js @@ -0,0 +1,270 @@ +import { + useMediaQuery +} from "./chunk-GETBQIRZ.js"; +import { + computed, + ref, + shallowRef, + watch +} from "./chunk-UTGH4N2I.js"; +import "./chunk-Y2F7D3TJ.js"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/index.js +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/fonts.css"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/without-fonts.js +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/vars.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/base.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/icons.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/utils.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css"; +import "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css"; +import VPBadge from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; +import Layout from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/Layout.vue"; +import { default as default2 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; +import { default as default3 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue"; +import { default as default4 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue"; +import { default as default5 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue"; +import { default as default6 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue"; +import { default as default7 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue"; +import { default as default8 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue"; +import { default as default9 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue"; +import { default as default10 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue"; +import { default as default11 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue"; +import { default as default12 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue"; +import { default as default13 } from "/Users/sunwenlong/Self/Code/10-MyGit/swlws.github.io/node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/shared.js +var inBrowser = typeof document !== "undefined"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/support/utils.js +import { withBase } from "vitepress"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/data.js +import { useData as useData$ } from "vitepress"; +var useData = useData$; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/support/utils.js +function ensureStartingSlash(path) { + return /^\//.test(path) ? path : `/${path}`; +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/support/sidebar.js +function getSidebar(_sidebar, path) { + if (Array.isArray(_sidebar)) + return addBase(_sidebar); + if (_sidebar == null) + return []; + path = ensureStartingSlash(path); + const dir = Object.keys(_sidebar).sort((a, b) => { + return b.split("/").length - a.split("/").length; + }).find((dir2) => { + return path.startsWith(ensureStartingSlash(dir2)); + }); + const sidebar = dir ? _sidebar[dir] : []; + return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base); +} +function getSidebarGroups(sidebar) { + const groups = []; + let lastGroupIndex = 0; + for (const index in sidebar) { + const item = sidebar[index]; + if (item.items) { + lastGroupIndex = groups.push(item); + continue; + } + if (!groups[lastGroupIndex]) { + groups.push({ items: [] }); + } + groups[lastGroupIndex].items.push(item); + } + return groups; +} +function addBase(items, _base) { + return [...items].map((_item) => { + const item = { ..._item }; + const base = item.base || _base; + if (base && item.link) + item.link = base + item.link; + if (item.items) + item.items = addBase(item.items, base); + return item; + }); +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/hash.js +var hashRef = ref(inBrowser ? location.hash : ""); +if (inBrowser) { + window.addEventListener("hashchange", () => { + hashRef.value = location.hash; + }); +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/sidebar.js +function useSidebar() { + const { frontmatter, page, theme: theme2 } = useData(); + const is960 = useMediaQuery("(min-width: 960px)"); + const isOpen = ref(false); + const _sidebar = computed(() => { + const sidebarConfig = theme2.value.sidebar; + const relativePath = page.value.relativePath; + return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : []; + }); + const sidebar = ref(_sidebar.value); + watch(_sidebar, (next, prev) => { + if (JSON.stringify(next) !== JSON.stringify(prev)) + sidebar.value = _sidebar.value; + }); + const hasSidebar = computed(() => { + return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home"; + }); + const leftAside = computed(() => { + if (hasAside) + return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left"; + return false; + }); + const hasAside = computed(() => { + if (frontmatter.value.layout === "home") + return false; + if (frontmatter.value.aside != null) + return !!frontmatter.value.aside; + return theme2.value.aside !== false; + }); + const isSidebarEnabled = computed(() => hasSidebar.value && is960.value); + const sidebarGroups = computed(() => { + return hasSidebar.value ? getSidebarGroups(sidebar.value) : []; + }); + function open() { + isOpen.value = true; + } + function close() { + isOpen.value = false; + } + function toggle() { + isOpen.value ? close() : open(); + } + return { + isOpen, + sidebar, + sidebarGroups, + hasSidebar, + hasAside, + leftAside, + isSidebarEnabled, + open, + close, + toggle + }; +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/local-nav.js +import { onContentUpdated } from "vitepress"; + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/outline.js +import { getScrollOffset } from "vitepress"; +var resolvedHeaders = []; +function getHeaders(range) { + const headers = [ + ...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)") + ].filter((el) => el.id && el.hasChildNodes()).map((el) => { + const level = Number(el.tagName[1]); + return { + element: el, + title: serializeHeader(el), + link: "#" + el.id, + level + }; + }); + return resolveHeaders(headers, range); +} +function serializeHeader(h) { + let ret = ""; + for (const node of h.childNodes) { + if (node.nodeType === 1) { + if (node.classList.contains("VPBadge") || node.classList.contains("header-anchor") || node.classList.contains("ignore-header")) { + continue; + } + ret += node.textContent; + } else if (node.nodeType === 3) { + ret += node.textContent; + } + } + return ret.trim(); +} +function resolveHeaders(headers, range) { + if (range === false) { + return []; + } + const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2; + const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange; + headers = headers.filter((h) => h.level >= high && h.level <= low); + resolvedHeaders.length = 0; + for (const { element, link } of headers) { + resolvedHeaders.push({ element, link }); + } + const ret = []; + outer: + for (let i = 0; i < headers.length; i++) { + const cur = headers[i]; + if (i === 0) { + ret.push(cur); + } else { + for (let j = i - 1; j >= 0; j--) { + const prev = headers[j]; + if (prev.level < cur.level) { + ; + (prev.children || (prev.children = [])).push(cur); + continue outer; + } + } + ret.push(cur); + } + } + return ret; +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/local-nav.js +function useLocalNav() { + const { theme: theme2, frontmatter } = useData(); + const headers = shallowRef([]); + const hasLocalNav = computed(() => { + return headers.value.length > 0; + }); + onContentUpdated(() => { + headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline); + }); + return { + headers, + hasLocalNav + }; +} + +// node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/without-fonts.js +var theme = { + Layout, + enhanceApp: ({ app }) => { + app.component("Badge", VPBadge); + } +}; +var without_fonts_default = theme; +export { + default2 as VPBadge, + default4 as VPButton, + default8 as VPDocAsideSponsors, + default6 as VPHomeFeatures, + default5 as VPHomeHero, + default7 as VPHomeSponsors, + default3 as VPImage, + default9 as VPSponsors, + default13 as VPTeamMembers, + default10 as VPTeamPage, + default12 as VPTeamPageSection, + default11 as VPTeamPageTitle, + without_fonts_default as default, + useLocalNav, + useSidebar +}; +//# sourceMappingURL=@theme_index.js.map diff --git a/config/.vitepress/cache/deps/@theme_index.js.map b/config/.vitepress/cache/deps/@theme_index.js.map new file mode 100644 index 0000000..e6722d4 --- /dev/null +++ b/config/.vitepress/cache/deps/@theme_index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/shared.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/hash.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/sidebar.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/composables/outline.js"], + "sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { useSidebar } from './composables/sidebar';\nexport { useLocalNav } from './composables/local-nav';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "export const EXTERNAL_URL_RE = /^(?:[a-z]+:|\\/\\/)/i;\nexport const APPEARANCE_KEY = 'vitepress-theme-appearance';\nconst HASH_RE = /#.*$/;\nconst HASH_OR_QUERY_RE = /[?#].*$/;\nconst INDEX_OR_EXT_RE = /(?:(^|\\/)index)?\\.(?:md|html)$/;\nexport const inBrowser = typeof document !== 'undefined';\nexport const notFoundPageData = {\n relativePath: '',\n filePath: '',\n title: '404',\n description: 'Not Found',\n headers: [],\n frontmatter: { sidebar: false, layout: 'page' },\n lastUpdated: 0,\n isNotFound: true\n};\nexport function isActive(currentPath, matchPath, asRegex = false) {\n if (matchPath === undefined) {\n return false;\n }\n currentPath = normalize(`/${currentPath}`);\n if (asRegex) {\n return new RegExp(matchPath).test(currentPath);\n }\n if (normalize(matchPath) !== currentPath) {\n return false;\n }\n const hashMatch = matchPath.match(HASH_RE);\n if (hashMatch) {\n return (inBrowser ? location.hash : '') === hashMatch[0];\n }\n return true;\n}\nfunction normalize(path) {\n return decodeURI(path)\n .replace(HASH_OR_QUERY_RE, '')\n .replace(INDEX_OR_EXT_RE, '$1');\n}\nexport function isExternal(path) {\n return EXTERNAL_URL_RE.test(path);\n}\n/**\n * this merges the locales data to the main data by the route\n */\nexport function resolveSiteDataByRoute(siteData, relativePath) {\n const localeIndex = Object.keys(siteData.locales).find((key) => key !== 'root' &&\n !isExternal(key) &&\n isActive(relativePath, `/${key}/`, true)) || 'root';\n return Object.assign({}, siteData, {\n localeIndex,\n lang: siteData.locales[localeIndex]?.lang ?? siteData.lang,\n dir: siteData.locales[localeIndex]?.dir ?? siteData.dir,\n title: siteData.locales[localeIndex]?.title ?? siteData.title,\n titleTemplate: siteData.locales[localeIndex]?.titleTemplate ?? siteData.titleTemplate,\n description: siteData.locales[localeIndex]?.description ?? siteData.description,\n head: mergeHead(siteData.head, siteData.locales[localeIndex]?.head ?? []),\n themeConfig: {\n ...siteData.themeConfig,\n ...siteData.locales[localeIndex]?.themeConfig\n }\n });\n}\n/**\n * Create the page title string based on config.\n */\nexport function createTitle(siteData, pageData) {\n const title = pageData.title || siteData.title;\n const template = pageData.titleTemplate ?? siteData.titleTemplate;\n if (typeof template === 'string' && template.includes(':title')) {\n return template.replace(/:title/g, title);\n }\n const templateString = createTitleTemplate(siteData.title, template);\n if (title === templateString.slice(3)) {\n return title;\n }\n return `${title}${templateString}`;\n}\nfunction createTitleTemplate(siteTitle, template) {\n if (template === false) {\n return '';\n }\n if (template === true || template === undefined) {\n return ` | ${siteTitle}`;\n }\n if (siteTitle === template) {\n return '';\n }\n return ` | ${template}`;\n}\nfunction hasTag(head, tag) {\n const [tagType, tagAttrs] = tag;\n if (tagType !== 'meta')\n return false;\n const keyAttr = Object.entries(tagAttrs)[0]; // First key\n if (keyAttr == null)\n return false;\n return head.some(([type, attrs]) => type === tagType && attrs[keyAttr[0]] === keyAttr[1]);\n}\nexport function mergeHead(prev, curr) {\n return [...prev.filter((tagAttrs) => !hasTag(curr, tagAttrs)), ...curr];\n}\n// https://github.com/rollup/rollup/blob/fec513270c6ac350072425cc045db367656c623b/src/utils/sanitizeFileName.ts\nconst INVALID_CHAR_REGEX = /[\\u0000-\\u001F\"#$&*+,:;<=>?[\\]^`{|}\\u007F]/g;\nconst DRIVE_LETTER_REGEX = /^[a-z]:/i;\nexport function sanitizeFileName(name) {\n const match = DRIVE_LETTER_REGEX.exec(name);\n const driveLetter = match ? match[0] : '';\n return (driveLetter +\n name\n .slice(driveLetter.length)\n .replace(INVALID_CHAR_REGEX, '_')\n .replace(/(^|\\/)_+(?=[^/]*$)/, '$1'));\n}\nexport function slash(p) {\n return p.replace(/\\\\/g, '/');\n}\nconst KNOWN_EXTENSIONS = new Set();\nexport function treatAsHtml(filename) {\n if (KNOWN_EXTENSIONS.size === 0) {\n const extraExts = (typeof process === 'object' && process.env?.VITE_EXTRA_EXTENSIONS) ||\n import.meta.env?.VITE_EXTRA_EXTENSIONS ||\n '';\n ('3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,' +\n 'doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,' +\n 'man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,' +\n 'opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,' +\n 'tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,' +\n 'yaml,yml,zip' +\n (extraExts && typeof extraExts === 'string' ? ',' + extraExts : ''))\n .split(',')\n .forEach((ext) => KNOWN_EXTENSIONS.add(ext));\n }\n const ext = filename.split('.').pop();\n return ext == null || !KNOWN_EXTENSIONS.has(ext.toLowerCase());\n}\n// https://github.com/sindresorhus/escape-string-regexp/blob/ba9a4473850cb367936417e97f1f2191b7cc67dd/index.js\nexport function escapeRegExp(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n", "import { withBase } from 'vitepress';\nimport { useData } from '../composables/data';\nimport { isExternal, treatAsHtml } from '../../shared';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return /^\\//.test(path) ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { ensureStartingSlash } from './utils';\nimport { isActive } from '../../shared';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { inBrowser } from '../../shared';\nimport { ref } from 'vue';\nconst hashRef = ref(inBrowser ? location.hash : '');\nif (inBrowser) {\n window.addEventListener('hashchange', () => {\n hashRef.value = location.hash;\n });\n}\nexport { hashRef };\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nimport { hashRef } from './hash';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hashRef], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (node.classList.contains('VPBadge') ||\n node.classList.contains('header-anchor') ||\n node.classList.contains('ignore-header')) {\n continue;\n }\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n headers = headers.filter((h) => h.level >= high && h.level <= low);\n // clear previous caches\n resolvedHeaders.length = 0;\n // update global header list for active link rendering\n for (const { element, link } of headers) {\n resolvedHeaders.push({ element, link });\n }\n const ret = [];\n outer: for (let i = 0; i < headers.length; i++) {\n const cur = headers[i];\n if (i === 0) {\n ret.push(cur);\n }\n else {\n for (let j = i - 1; j >= 0; j--) {\n const prev = headers[j];\n if (prev.level < cur.level) {\n ;\n (prev.children || (prev.children = [])).push(cur);\n continue outer;\n }\n }\n ret.push(cur);\n }\n }\n return ret;\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\n"], + "mappings": "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", + "names": ["default", "dir", "theme", "theme"] +} diff --git a/config/.vitepress/cache/deps/_metadata.json b/config/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..8ccf5ac --- /dev/null +++ b/config/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,73 @@ +{ + "hash": "7647431e", + "configHash": "671dcea1", + "lockfileHash": "a1aea30e", + "browserHash": "cae9bb50", + "optimized": { + "vue": { + "src": "../../../../node_modules/.pnpm/vue@3.4.19/node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "a028bea4", + "needsInterop": false + }, + "vitepress > @vue/devtools-api": { + "src": "../../../../node_modules/.pnpm/@vue+devtools-api@7.0.15_vue@3.4.19/node_modules/@vue/devtools-api/dist/index.js", + "file": "vitepress___@vue_devtools-api.js", + "fileHash": "8d3701a8", + "needsInterop": false + }, + "vitepress > @vueuse/core": { + "src": "../../../../node_modules/.pnpm/@vueuse+core@10.8.0_vue@3.4.19/node_modules/@vueuse/core/index.mjs", + "file": "vitepress___@vueuse_core.js", + "fileHash": "66957ef8", + "needsInterop": false + }, + "@braintree/sanitize-url": { + "src": "../../../../node_modules/.pnpm/@braintree+sanitize-url@6.0.4/node_modules/@braintree/sanitize-url/dist/index.js", + "file": "@braintree_sanitize-url.js", + "fileHash": "38a6b7f5", + "needsInterop": true + }, + "dayjs": { + "src": "../../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/dayjs.min.js", + "file": "dayjs.js", + "fileHash": "d08374bc", + "needsInterop": true + }, + "debug": { + "src": "../../../../node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js", + "file": "debug.js", + "fileHash": "da014989", + "needsInterop": true + }, + "cytoscape-cose-bilkent": { + "src": "../../../../node_modules/.pnpm/cytoscape-cose-bilkent@4.1.0_cytoscape@3.28.1/node_modules/cytoscape-cose-bilkent/cytoscape-cose-bilkent.js", + "file": "cytoscape-cose-bilkent.js", + "fileHash": "c04ff584", + "needsInterop": true + }, + "cytoscape": { + "src": "../../../../node_modules/.pnpm/cytoscape@3.28.1/node_modules/cytoscape/dist/cytoscape.cjs.js", + "file": "cytoscape.js", + "fileHash": "f0e2fd7c", + "needsInterop": true + }, + "@theme/index": { + "src": "../../../../node_modules/.pnpm/vitepress@1.0.0-rc.44_@types+node@20.11.20/node_modules/vitepress/dist/client/theme-default/index.js", + "file": "@theme_index.js", + "fileHash": "abec4c27", + "needsInterop": false + } + }, + "chunks": { + "chunk-GETBQIRZ": { + "file": "chunk-GETBQIRZ.js" + }, + "chunk-UTGH4N2I": { + "file": "chunk-UTGH4N2I.js" + }, + "chunk-Y2F7D3TJ": { + "file": "chunk-Y2F7D3TJ.js" + } + } +} \ No newline at end of file diff --git a/config/.vitepress/cache/deps/chunk-GETBQIRZ.js b/config/.vitepress/cache/deps/chunk-GETBQIRZ.js new file mode 100644 index 0000000..73c2e1b --- /dev/null +++ b/config/.vitepress/cache/deps/chunk-GETBQIRZ.js @@ -0,0 +1,9069 @@ +import { + Fragment, + TransitionGroup, + computed, + customRef, + defineComponent, + effectScope, + getCurrentInstance, + getCurrentScope, + h, + inject, + isReactive, + isReadonly, + isRef, + markRaw, + nextTick, + onBeforeMount, + onBeforeUnmount, + onBeforeUpdate, + onMounted, + onScopeDispose, + onUnmounted, + onUpdated, + provide, + reactive, + readonly, + ref, + shallowReactive, + shallowRef, + toRef, + toRefs, + unref, + version, + watch, + watchEffect +} from "./chunk-UTGH4N2I.js"; + +// node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.19/node_modules/vue-demi/lib/index.mjs +var isVue2 = false; +var isVue3 = true; +function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val; + } + target[key] = val; + return val; +} +function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1); + return; + } + delete target[key]; +} + +// node_modules/.pnpm/@vueuse+shared@10.8.0_vue@3.4.19/node_modules/@vueuse/shared/index.mjs +function computedEager(fn, options) { + var _a; + const result = shallowRef(); + watchEffect(() => { + result.value = fn(); + }, { + ...options, + flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" + }); + return readonly(result); +} +function computedWithControl(source, fn) { + let v = void 0; + let track; + let trigger; + const dirty = ref(true); + const update = () => { + dirty.value = true; + trigger(); + }; + watch(source, update, { flush: "sync" }); + const get2 = typeof fn === "function" ? fn : fn.get; + const set3 = typeof fn === "function" ? void 0 : fn.set; + const result = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + if (dirty.value) { + v = get2(); + dirty.value = false; + } + track(); + return v; + }, + set(v2) { + set3 == null ? void 0 : set3(v2); + } + }; + }); + if (Object.isExtensible(result)) + result.trigger = update; + return result; +} +function tryOnScopeDispose(fn) { + if (getCurrentScope()) { + onScopeDispose(fn); + return true; + } + return false; +} +function createEventHook() { + const fns = /* @__PURE__ */ new Set(); + const off = (fn) => { + fns.delete(fn); + }; + const on = (fn) => { + fns.add(fn); + const offFn = () => off(fn); + tryOnScopeDispose(offFn); + return { + off: offFn + }; + }; + const trigger = (...args) => { + return Promise.all(Array.from(fns).map((fn) => fn(...args))); + }; + return { + on, + off, + trigger + }; +} +function createGlobalState(stateFactory) { + let initialized = false; + let state; + const scope = effectScope(true); + return (...args) => { + if (!initialized) { + state = scope.run(() => stateFactory(...args)); + initialized = true; + } + return state; + }; +} +var localProvidedStateMap = /* @__PURE__ */ new WeakMap(); +var provideLocal = (key, value) => { + var _a; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("provideLocal must be called in setup"); + if (!localProvidedStateMap.has(instance)) + localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null)); + const localProvidedState = localProvidedStateMap.get(instance); + localProvidedState[key] = value; + provide(key, value); +}; +var injectLocal = (...args) => { + var _a; + const key = args[0]; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("injectLocal must be called in setup"); + if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance)) + return localProvidedStateMap.get(instance)[key]; + return inject(...args); +}; +function createInjectionState(composable, options) { + const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState"); + const useProvidingState = (...args) => { + const state = composable(...args); + provideLocal(key, state); + return state; + }; + const useInjectedState = () => injectLocal(key); + return [useProvidingState, useInjectedState]; +} +function createSharedComposable(composable) { + let subscribers = 0; + let state; + let scope; + const dispose = () => { + subscribers -= 1; + if (scope && subscribers <= 0) { + scope.stop(); + state = void 0; + scope = void 0; + } + }; + return (...args) => { + subscribers += 1; + if (!state) { + scope = effectScope(true); + state = scope.run(() => composable(...args)); + } + tryOnScopeDispose(dispose); + return state; + }; +} +function extendRef(ref2, extend, { enumerable = false, unwrap = true } = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] extendRef only works in Vue 2.7 or above."); + return; + } + for (const [key, value] of Object.entries(extend)) { + if (key === "value") + continue; + if (isRef(value) && unwrap) { + Object.defineProperty(ref2, key, { + get() { + return value.value; + }, + set(v) { + value.value = v; + }, + enumerable + }); + } else { + Object.defineProperty(ref2, key, { value, enumerable }); + } + } + return ref2; +} +function get(obj, key) { + if (key == null) + return unref(obj); + return unref(obj)[key]; +} +function isDefined(v) { + return unref(v) != null; +} +function makeDestructurable(obj, arr) { + if (typeof Symbol !== "undefined") { + const clone = { ...obj }; + Object.defineProperty(clone, Symbol.iterator, { + enumerable: false, + value() { + let index = 0; + return { + next: () => ({ + value: arr[index++], + done: index > arr.length + }) + }; + } + }); + return clone; + } else { + return Object.assign([...arr], obj); + } +} +function toValue(r) { + return typeof r === "function" ? r() : unref(r); +} +var resolveUnref = toValue; +function reactify(fn, options) { + const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue; + return function(...args) { + return computed(() => fn.apply(this, args.map((i) => unrefFn(i)))); + }; +} +function reactifyObject(obj, optionsOrKeys = {}) { + let keys2 = []; + let options; + if (Array.isArray(optionsOrKeys)) { + keys2 = optionsOrKeys; + } else { + options = optionsOrKeys; + const { includeOwnProperties = true } = optionsOrKeys; + keys2.push(...Object.keys(obj)); + if (includeOwnProperties) + keys2.push(...Object.getOwnPropertyNames(obj)); + } + return Object.fromEntries( + keys2.map((key) => { + const value = obj[key]; + return [ + key, + typeof value === "function" ? reactify(value.bind(obj), options) : value + ]; + }) + ); +} +function toReactive(objectRef) { + if (!isRef(objectRef)) + return reactive(objectRef); + const proxy = new Proxy({}, { + get(_, p, receiver) { + return unref(Reflect.get(objectRef.value, p, receiver)); + }, + set(_, p, value) { + if (isRef(objectRef.value[p]) && !isRef(value)) + objectRef.value[p].value = value; + else + objectRef.value[p] = value; + return true; + }, + deleteProperty(_, p) { + return Reflect.deleteProperty(objectRef.value, p); + }, + has(_, p) { + return Reflect.has(objectRef.value, p); + }, + ownKeys() { + return Object.keys(objectRef.value); + }, + getOwnPropertyDescriptor() { + return { + enumerable: true, + configurable: true + }; + } + }); + return reactive(proxy); +} +function reactiveComputed(fn) { + return toReactive(computed(fn)); +} +function reactiveOmit(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))); +} +var isClient = typeof window !== "undefined" && typeof document !== "undefined"; +var isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; +var isDef = (val) => typeof val !== "undefined"; +var notNullish = (val) => val != null; +var assert = (condition, ...infos) => { + if (!condition) + console.warn(...infos); +}; +var toString = Object.prototype.toString; +var isObject = (val) => toString.call(val) === "[object Object]"; +var now = () => Date.now(); +var timestamp = () => +Date.now(); +var clamp = (n, min, max) => Math.min(max, Math.max(min, n)); +var noop = () => { +}; +var rand = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +}; +var hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key); +var isIOS = getIsIOS(); +function getIsIOS() { + var _a, _b; + return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); +} +function createFilterWrapper(filter, fn) { + function wrapper(...args) { + return new Promise((resolve, reject) => { + Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject); + }); + } + return wrapper; +} +var bypassFilter = (invoke2) => { + return invoke2(); +}; +function debounceFilter(ms, options = {}) { + let timer; + let maxTimer; + let lastRejector = noop; + const _clearTimeout = (timer2) => { + clearTimeout(timer2); + lastRejector(); + lastRejector = noop; + }; + const filter = (invoke2) => { + const duration = toValue(ms); + const maxDuration = toValue(options.maxWait); + if (timer) + _clearTimeout(timer); + if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { + if (maxTimer) { + _clearTimeout(maxTimer); + maxTimer = null; + } + return Promise.resolve(invoke2()); + } + return new Promise((resolve, reject) => { + lastRejector = options.rejectOnCancel ? reject : resolve; + if (maxDuration && !maxTimer) { + maxTimer = setTimeout(() => { + if (timer) + _clearTimeout(timer); + maxTimer = null; + resolve(invoke2()); + }, maxDuration); + } + timer = setTimeout(() => { + if (maxTimer) + _clearTimeout(maxTimer); + maxTimer = null; + resolve(invoke2()); + }, duration); + }); + }; + return filter; +} +function throttleFilter(...args) { + let lastExec = 0; + let timer; + let isLeading = true; + let lastRejector = noop; + let lastValue; + let ms; + let trailing; + let leading; + let rejectOnCancel; + if (!isRef(args[0]) && typeof args[0] === "object") + ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]); + else + [ms, trailing = true, leading = true, rejectOnCancel = false] = args; + const clear = () => { + if (timer) { + clearTimeout(timer); + timer = void 0; + lastRejector(); + lastRejector = noop; + } + }; + const filter = (_invoke) => { + const duration = toValue(ms); + const elapsed = Date.now() - lastExec; + const invoke2 = () => { + return lastValue = _invoke(); + }; + clear(); + if (duration <= 0) { + lastExec = Date.now(); + return invoke2(); + } + if (elapsed > duration && (leading || !isLeading)) { + lastExec = Date.now(); + invoke2(); + } else if (trailing) { + lastValue = new Promise((resolve, reject) => { + lastRejector = rejectOnCancel ? reject : resolve; + timer = setTimeout(() => { + lastExec = Date.now(); + isLeading = true; + resolve(invoke2()); + clear(); + }, Math.max(0, duration - elapsed)); + }); + } + if (!leading && !timer) + timer = setTimeout(() => isLeading = true, duration); + isLeading = false; + return lastValue; + }; + return filter; +} +function pausableFilter(extendFilter = bypassFilter) { + const isActive = ref(true); + function pause() { + isActive.value = false; + } + function resume() { + isActive.value = true; + } + const eventFilter = (...args) => { + if (isActive.value) + extendFilter(...args); + }; + return { isActive: readonly(isActive), pause, resume, eventFilter }; +} +var directiveHooks = { + mounted: isVue3 ? "mounted" : "inserted", + updated: isVue3 ? "updated" : "componentUpdated", + unmounted: isVue3 ? "unmounted" : "unbind" +}; +function cacheStringFunction(fn) { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +} +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") { + return new Promise((resolve, reject) => { + if (throwOnTimeout) + setTimeout(() => reject(reason), ms); + else + setTimeout(resolve, ms); + }); +} +function identity(arg) { + return arg; +} +function createSingletonPromise(fn) { + let _promise; + function wrapper() { + if (!_promise) + _promise = fn(); + return _promise; + } + wrapper.reset = async () => { + const _prev = _promise; + _promise = void 0; + if (_prev) + await _prev; + }; + return wrapper; +} +function invoke(fn) { + return fn(); +} +function containsProp(obj, ...props) { + return props.some((k) => k in obj); +} +function increaseWithUnit(target, delta) { + var _a; + if (typeof target === "number") + return target + delta; + const value = ((_a = target.match(/^-?[0-9]+\.?[0-9]*/)) == null ? void 0 : _a[0]) || ""; + const unit = target.slice(value.length); + const result = Number.parseFloat(value) + delta; + if (Number.isNaN(result)) + return target; + return result + unit; +} +function objectPick(obj, keys2, omitUndefined = false) { + return keys2.reduce((n, k) => { + if (k in obj) { + if (!omitUndefined || obj[k] !== void 0) + n[k] = obj[k]; + } + return n; + }, {}); +} +function objectOmit(obj, keys2, omitUndefined = false) { + return Object.fromEntries(Object.entries(obj).filter(([key, value]) => { + return (!omitUndefined || value !== void 0) && !keys2.includes(key); + })); +} +function objectEntries(obj) { + return Object.entries(obj); +} +function getLifeCycleTarget(target) { + return target || getCurrentInstance(); +} +function toRef2(...args) { + if (args.length !== 1) + return toRef(...args); + const r = args[0]; + return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r); +} +var resolveRef = toRef2; +function reactivePick(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef2(obj, k)]))); +} +function refAutoReset(defaultValue, afterMs = 1e4) { + return customRef((track, trigger) => { + let value = toValue(defaultValue); + let timer; + const resetAfter = () => setTimeout(() => { + value = toValue(defaultValue); + trigger(); + }, toValue(afterMs)); + tryOnScopeDispose(() => { + clearTimeout(timer); + }); + return { + get() { + track(); + return value; + }, + set(newValue) { + value = newValue; + trigger(); + clearTimeout(timer); + timer = resetAfter(); + } + }; + }); +} +function useDebounceFn(fn, ms = 200, options = {}) { + return createFilterWrapper( + debounceFilter(ms, options), + fn + ); +} +function refDebounced(value, ms = 200, options = {}) { + const debounced = ref(value.value); + const updater = useDebounceFn(() => { + debounced.value = value.value; + }, ms, options); + watch(value, () => updater()); + return debounced; +} +function refDefault(source, defaultValue) { + return computed({ + get() { + var _a; + return (_a = source.value) != null ? _a : defaultValue; + }, + set(value) { + source.value = value; + } + }); +} +function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { + return createFilterWrapper( + throttleFilter(ms, trailing, leading, rejectOnCancel), + fn + ); +} +function refThrottled(value, delay = 200, trailing = true, leading = true) { + if (delay <= 0) + return value; + const throttled = ref(value.value); + const updater = useThrottleFn(() => { + throttled.value = value.value; + }, delay, trailing, leading); + watch(value, () => updater()); + return throttled; +} +function refWithControl(initial, options = {}) { + let source = initial; + let track; + let trigger; + const ref2 = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + return get2(); + }, + set(v) { + set3(v); + } + }; + }); + function get2(tracking = true) { + if (tracking) + track(); + return source; + } + function set3(value, triggering = true) { + var _a, _b; + if (value === source) + return; + const old = source; + if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false) + return; + source = value; + (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old); + if (triggering) + trigger(); + } + const untrackedGet = () => get2(false); + const silentSet = (v) => set3(v, false); + const peek = () => get2(false); + const lay = (v) => set3(v, false); + return extendRef( + ref2, + { + get: get2, + set: set3, + untrackedGet, + silentSet, + peek, + lay + }, + { enumerable: true } + ); +} +var controlledRef = refWithControl; +function set2(...args) { + if (args.length === 2) { + const [ref2, value] = args; + ref2.value = value; + } + if (args.length === 3) { + if (isVue2) { + set(...args); + } else { + const [target, key, value] = args; + target[key] = value; + } + } +} +function watchWithFilter(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + return watch( + source, + createFilterWrapper( + eventFilter, + cb + ), + watchOptions + ); +} +function watchPausable(source, cb, options = {}) { + const { + eventFilter: filter, + ...watchOptions + } = options; + const { eventFilter, pause, resume, isActive } = pausableFilter(filter); + const stop = watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter + } + ); + return { stop, pause, resume, isActive }; +} +function syncRef(left, right, ...[options]) { + const { + flush = "sync", + deep = false, + immediate = true, + direction = "both", + transform = {} + } = options || {}; + const watchers = []; + const transformLTR = "ltr" in transform && transform.ltr || ((v) => v); + const transformRTL = "rtl" in transform && transform.rtl || ((v) => v); + if (direction === "both" || direction === "ltr") { + watchers.push(watchPausable( + left, + (newValue) => { + watchers.forEach((w) => w.pause()); + right.value = transformLTR(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + if (direction === "both" || direction === "rtl") { + watchers.push(watchPausable( + right, + (newValue) => { + watchers.forEach((w) => w.pause()); + left.value = transformRTL(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + const stop = () => { + watchers.forEach((w) => w.stop()); + }; + return stop; +} +function syncRefs(source, targets, options = {}) { + const { + flush = "sync", + deep = false, + immediate = true + } = options; + if (!Array.isArray(targets)) + targets = [targets]; + return watch( + source, + (newValue) => targets.forEach((target) => target.value = newValue), + { flush, deep, immediate } + ); +} +function toRefs2(objectRef, options = {}) { + if (!isRef(objectRef)) + return toRefs(objectRef); + const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {}; + for (const key in objectRef.value) { + result[key] = customRef(() => ({ + get() { + return objectRef.value[key]; + }, + set(v) { + var _a; + const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true; + if (replaceRef) { + if (Array.isArray(objectRef.value)) { + const copy = [...objectRef.value]; + copy[key] = v; + objectRef.value = copy; + } else { + const newObject = { ...objectRef.value, [key]: v }; + Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value)); + objectRef.value = newObject; + } + } else { + objectRef.value[key] = v; + } + } + })); + } + return result; +} +function tryOnBeforeMount(fn, sync = true, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeMount(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnBeforeUnmount(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeUnmount(fn, target); +} +function tryOnMounted(fn, sync = true, target) { + const instance = getLifeCycleTarget(); + if (instance) + onMounted(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnUnmounted(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onUnmounted(fn, target); +} +function createUntil(r, isNot = false) { + function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) { + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + r, + (v) => { + if (condition(v) !== isNot) { + stop == null ? void 0 : stop(); + resolve(v); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop()) + ); + } + return Promise.race(promises); + } + function toBe(value, options) { + if (!isRef(value)) + return toMatch((v) => v === value, options); + const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {}; + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + [r, value], + ([v1, v2]) => { + if (isNot !== (v1 === v2)) { + stop == null ? void 0 : stop(); + resolve(v1); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => { + stop == null ? void 0 : stop(); + return toValue(r); + }) + ); + } + return Promise.race(promises); + } + function toBeTruthy(options) { + return toMatch((v) => Boolean(v), options); + } + function toBeNull(options) { + return toBe(null, options); + } + function toBeUndefined(options) { + return toBe(void 0, options); + } + function toBeNaN(options) { + return toMatch(Number.isNaN, options); + } + function toContains(value, options) { + return toMatch((v) => { + const array = Array.from(v); + return array.includes(value) || array.includes(toValue(value)); + }, options); + } + function changed(options) { + return changedTimes(1, options); + } + function changedTimes(n = 1, options) { + let count = -1; + return toMatch(() => { + count += 1; + return count >= n; + }, options); + } + if (Array.isArray(toValue(r))) { + const instance = { + toMatch, + toContains, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } else { + const instance = { + toMatch, + toBe, + toBeTruthy, + toBeNull, + toBeNaN, + toBeUndefined, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } +} +function until(r) { + return createUntil(r); +} +function defaultComparator(value, othVal) { + return value === othVal; +} +function useArrayDifference(...args) { + var _a; + const list = args[0]; + const values = args[1]; + let compareFn = (_a = args[2]) != null ? _a : defaultComparator; + if (typeof compareFn === "string") { + const key = compareFn; + compareFn = (value, othVal) => value[key] === othVal[key]; + } + return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1)); +} +function useArrayEvery(list, fn) { + return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array))); +} +function useArrayFilter(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).filter(fn)); +} +function useArrayFind(list, fn) { + return computed(() => toValue( + toValue(list).find((element, index, array) => fn(toValue(element), index, array)) + )); +} +function useArrayFindIndex(list, fn) { + return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array))); +} +function findLast(arr, cb) { + let index = arr.length; + while (index-- > 0) { + if (cb(arr[index], index, arr)) + return arr[index]; + } + return void 0; +} +function useArrayFindLast(list, fn) { + return computed(() => toValue( + !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array)) + )); +} +function isArrayIncludesOptions(obj) { + return isObject(obj) && containsProp(obj, "formIndex", "comparator"); +} +function useArrayIncludes(...args) { + var _a; + const list = args[0]; + const value = args[1]; + let comparator = args[2]; + let formIndex = 0; + if (isArrayIncludesOptions(comparator)) { + formIndex = (_a = comparator.fromIndex) != null ? _a : 0; + comparator = comparator.comparator; + } + if (typeof comparator === "string") { + const key = comparator; + comparator = (element, value2) => element[key] === toValue(value2); + } + comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2); + return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator( + toValue(element), + toValue(value), + index, + toValue(array) + ))); +} +function useArrayJoin(list, separator) { + return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator))); +} +function useArrayMap(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).map(fn)); +} +function useArrayReduce(list, reducer, ...args) { + const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index); + return computed(() => { + const resolved = toValue(list); + return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback); + }); +} +function useArraySome(list, fn) { + return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array))); +} +function uniq(array) { + return Array.from(new Set(array)); +} +function uniqueElementsBy(array, fn) { + return array.reduce((acc, v) => { + if (!acc.some((x) => fn(v, x, array))) + acc.push(v); + return acc; + }, []); +} +function useArrayUnique(list, compareFn) { + return computed(() => { + const resolvedList = toValue(list).map((element) => toValue(element)); + return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList); + }); +} +function useCounter(initialValue = 0, options = {}) { + let _initialValue = unref(initialValue); + const count = ref(initialValue); + const { + max = Number.POSITIVE_INFINITY, + min = Number.NEGATIVE_INFINITY + } = options; + const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min); + const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max); + const get2 = () => count.value; + const set3 = (val) => count.value = Math.max(min, Math.min(max, val)); + const reset = (val = _initialValue) => { + _initialValue = val; + return set3(val); + }; + return { count, inc, dec, get: get2, set: set3, reset }; +} +var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/; +var REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g; +function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) { + let m = hours < 12 ? "AM" : "PM"; + if (hasPeriod) + m = m.split("").reduce((acc, curr) => acc += `${curr}.`, ""); + return isLowercase ? m.toLowerCase() : m; +} +function formatOrdinal(num) { + const suffixes = ["th", "st", "nd", "rd"]; + const v = num % 100; + return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]); +} +function formatDate(date, formatStr, options = {}) { + var _a; + const years = date.getFullYear(); + const month = date.getMonth(); + const days = date.getDate(); + const hours = date.getHours(); + const minutes = date.getMinutes(); + const seconds = date.getSeconds(); + const milliseconds = date.getMilliseconds(); + const day = date.getDay(); + const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem; + const matches = { + Yo: () => formatOrdinal(years), + YY: () => String(years).slice(-2), + YYYY: () => years, + M: () => month + 1, + Mo: () => formatOrdinal(month + 1), + MM: () => `${month + 1}`.padStart(2, "0"), + MMM: () => date.toLocaleDateString(options.locales, { month: "short" }), + MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }), + D: () => String(days), + Do: () => formatOrdinal(days), + DD: () => `${days}`.padStart(2, "0"), + H: () => String(hours), + Ho: () => formatOrdinal(hours), + HH: () => `${hours}`.padStart(2, "0"), + h: () => `${hours % 12 || 12}`.padStart(1, "0"), + ho: () => formatOrdinal(hours % 12 || 12), + hh: () => `${hours % 12 || 12}`.padStart(2, "0"), + m: () => String(minutes), + mo: () => formatOrdinal(minutes), + mm: () => `${minutes}`.padStart(2, "0"), + s: () => String(seconds), + so: () => formatOrdinal(seconds), + ss: () => `${seconds}`.padStart(2, "0"), + SSS: () => `${milliseconds}`.padStart(3, "0"), + d: () => day, + dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }), + ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }), + dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }), + A: () => meridiem(hours, minutes), + AA: () => meridiem(hours, minutes, false, true), + a: () => meridiem(hours, minutes, true), + aa: () => meridiem(hours, minutes, true, true) + }; + return formatStr.replace(REGEX_FORMAT, (match, $1) => { + var _a2, _b; + return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match; + }); +} +function normalizeDate(date) { + if (date === null) + return new Date(Number.NaN); + if (date === void 0) + return /* @__PURE__ */ new Date(); + if (date instanceof Date) + return new Date(date); + if (typeof date === "string" && !/Z$/i.test(date)) { + const d = date.match(REGEX_PARSE); + if (d) { + const m = d[2] - 1 || 0; + const ms = (d[7] || "0").substring(0, 3); + return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); + } + } + return new Date(date); +} +function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) { + return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options)); +} +function useIntervalFn(cb, interval = 1e3, options = {}) { + const { + immediate = true, + immediateCallback = false + } = options; + let timer = null; + const isActive = ref(false); + function clean() { + if (timer) { + clearInterval(timer); + timer = null; + } + } + function pause() { + isActive.value = false; + clean(); + } + function resume() { + const intervalValue = toValue(interval); + if (intervalValue <= 0) + return; + isActive.value = true; + if (immediateCallback) + cb(); + clean(); + timer = setInterval(cb, intervalValue); + } + if (immediate && isClient) + resume(); + if (isRef(interval) || typeof interval === "function") { + const stopWatch = watch(interval, () => { + if (isActive.value && isClient) + resume(); + }); + tryOnScopeDispose(stopWatch); + } + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useInterval(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + immediate = true, + callback + } = options; + const counter = ref(0); + const update = () => counter.value += 1; + const reset = () => { + counter.value = 0; + }; + const controls = useIntervalFn( + callback ? () => { + update(); + callback(counter.value); + } : update, + interval, + { immediate } + ); + if (exposeControls) { + return { + counter, + reset, + ...controls + }; + } else { + return counter; + } +} +function useLastChanged(source, options = {}) { + var _a; + const ms = ref((_a = options.initialValue) != null ? _a : null); + watch( + source, + () => ms.value = timestamp(), + options + ); + return ms; +} +function useTimeoutFn(cb, interval, options = {}) { + const { + immediate = true + } = options; + const isPending = ref(false); + let timer = null; + function clear() { + if (timer) { + clearTimeout(timer); + timer = null; + } + } + function stop() { + isPending.value = false; + clear(); + } + function start(...args) { + clear(); + isPending.value = true; + timer = setTimeout(() => { + isPending.value = false; + timer = null; + cb(...args); + }, toValue(interval)); + } + if (immediate) { + isPending.value = true; + if (isClient) + start(); + } + tryOnScopeDispose(stop); + return { + isPending: readonly(isPending), + start, + stop + }; +} +function useTimeout(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + callback + } = options; + const controls = useTimeoutFn( + callback != null ? callback : noop, + interval, + options + ); + const ready = computed(() => !controls.isPending.value); + if (exposeControls) { + return { + ready, + ...controls + }; + } else { + return ready; + } +} +function useToNumber(value, options = {}) { + const { + method = "parseFloat", + radix, + nanToZero + } = options; + return computed(() => { + let resolved = toValue(value); + if (typeof resolved === "string") + resolved = Number[method](resolved, radix); + if (nanToZero && Number.isNaN(resolved)) + resolved = 0; + return resolved; + }); +} +function useToString(value) { + return computed(() => `${toValue(value)}`); +} +function useToggle(initialValue = false, options = {}) { + const { + truthyValue = true, + falsyValue = false + } = options; + const valueIsRef = isRef(initialValue); + const _value = ref(initialValue); + function toggle(value) { + if (arguments.length) { + _value.value = value; + return _value.value; + } else { + const truthy = toValue(truthyValue); + _value.value = _value.value === truthy ? toValue(falsyValue) : truthy; + return _value.value; + } + } + if (valueIsRef) + return toggle; + else + return [_value, toggle]; +} +function watchArray(source, cb, options) { + let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)]; + return watch(source, (newList, _, onCleanup) => { + const oldListRemains = Array.from({ length: oldList.length }); + const added = []; + for (const obj of newList) { + let found = false; + for (let i = 0; i < oldList.length; i++) { + if (!oldListRemains[i] && obj === oldList[i]) { + oldListRemains[i] = true; + found = true; + break; + } + } + if (!found) + added.push(obj); + } + const removed = oldList.filter((_2, i) => !oldListRemains[i]); + cb(newList, oldList, added, removed, onCleanup); + oldList = [...newList]; + }, options); +} +function watchAtMost(source, cb, options) { + const { + count, + ...watchOptions + } = options; + const current = ref(0); + const stop = watchWithFilter( + source, + (...args) => { + current.value += 1; + if (current.value >= toValue(count)) + nextTick(() => stop()); + cb(...args); + }, + watchOptions + ); + return { count: current, stop }; +} +function watchDebounced(source, cb, options = {}) { + const { + debounce = 0, + maxWait = void 0, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: debounceFilter(debounce, { maxWait }) + } + ); +} +function watchDeep(source, cb, options) { + return watch( + source, + cb, + { + ...options, + deep: true + } + ); +} +function watchIgnorable(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + const filteredCb = createFilterWrapper( + eventFilter, + cb + ); + let ignoreUpdates; + let ignorePrevAsyncUpdates; + let stop; + if (watchOptions.flush === "sync") { + const ignore = ref(false); + ignorePrevAsyncUpdates = () => { + }; + ignoreUpdates = (updater) => { + ignore.value = true; + updater(); + ignore.value = false; + }; + stop = watch( + source, + (...args) => { + if (!ignore.value) + filteredCb(...args); + }, + watchOptions + ); + } else { + const disposables = []; + const ignoreCounter = ref(0); + const syncCounter = ref(0); + ignorePrevAsyncUpdates = () => { + ignoreCounter.value = syncCounter.value; + }; + disposables.push( + watch( + source, + () => { + syncCounter.value++; + }, + { ...watchOptions, flush: "sync" } + ) + ); + ignoreUpdates = (updater) => { + const syncCounterPrev = syncCounter.value; + updater(); + ignoreCounter.value += syncCounter.value - syncCounterPrev; + }; + disposables.push( + watch( + source, + (...args) => { + const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value; + ignoreCounter.value = 0; + syncCounter.value = 0; + if (ignore) + return; + filteredCb(...args); + }, + watchOptions + ) + ); + stop = () => { + disposables.forEach((fn) => fn()); + }; + } + return { stop, ignoreUpdates, ignorePrevAsyncUpdates }; +} +function watchImmediate(source, cb, options) { + return watch( + source, + cb, + { + ...options, + immediate: true + } + ); +} +function watchOnce(source, cb, options) { + const stop = watch(source, (...args) => { + nextTick(() => stop()); + return cb(...args); + }, options); + return stop; +} +function watchThrottled(source, cb, options = {}) { + const { + throttle = 0, + trailing = true, + leading = true, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: throttleFilter(throttle, trailing, leading) + } + ); +} +function watchTriggerable(source, cb, options = {}) { + let cleanupFn; + function onEffect() { + if (!cleanupFn) + return; + const fn = cleanupFn; + cleanupFn = void 0; + fn(); + } + function onCleanup(callback) { + cleanupFn = callback; + } + const _cb = (value, oldValue) => { + onEffect(); + return cb(value, oldValue, onCleanup); + }; + const res = watchIgnorable(source, _cb, options); + const { ignoreUpdates } = res; + const trigger = () => { + let res2; + ignoreUpdates(() => { + res2 = _cb(getWatchSources(source), getOldValue(source)); + }); + return res2; + }; + return { + ...res, + trigger + }; +} +function getWatchSources(sources) { + if (isReactive(sources)) + return sources; + if (Array.isArray(sources)) + return sources.map((item) => toValue(item)); + return toValue(sources); +} +function getOldValue(source) { + return Array.isArray(source) ? source.map(() => void 0) : void 0; +} +function whenever(source, cb, options) { + return watch( + source, + (v, ov, onInvalidate) => { + if (v) + cb(v, ov, onInvalidate); + }, + options + ); +} + +// node_modules/.pnpm/@vueuse+core@10.8.0_vue@3.4.19/node_modules/@vueuse/core/index.mjs +function computedAsync(evaluationCallback, initialState, optionsOrRef) { + let options; + if (isRef(optionsOrRef)) { + options = { + evaluating: optionsOrRef + }; + } else { + options = optionsOrRef || {}; + } + const { + lazy = false, + evaluating = void 0, + shallow = true, + onError = noop + } = options; + const started = ref(!lazy); + const current = shallow ? shallowRef(initialState) : ref(initialState); + let counter = 0; + watchEffect(async (onInvalidate) => { + if (!started.value) + return; + counter++; + const counterAtBeginning = counter; + let hasFinished = false; + if (evaluating) { + Promise.resolve().then(() => { + evaluating.value = true; + }); + } + try { + const result = await evaluationCallback((cancelCallback) => { + onInvalidate(() => { + if (evaluating) + evaluating.value = false; + if (!hasFinished) + cancelCallback(); + }); + }); + if (counterAtBeginning === counter) + current.value = result; + } catch (e) { + onError(e); + } finally { + if (evaluating && counterAtBeginning === counter) + evaluating.value = false; + hasFinished = true; + } + }); + if (lazy) { + return computed(() => { + started.value = true; + return current.value; + }); + } else { + return current; + } +} +function computedInject(key, options, defaultSource, treatDefaultAsFactory) { + let source = inject(key); + if (defaultSource) + source = inject(key, defaultSource); + if (treatDefaultAsFactory) + source = inject(key, defaultSource, treatDefaultAsFactory); + if (typeof options === "function") { + return computed((ctx) => options(source, ctx)); + } else { + return computed({ + get: (ctx) => options.get(source, ctx), + set: options.set + }); + } +} +function createReusableTemplate(options = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above."); + return; + } + const { + inheritAttrs = true + } = options; + const render = shallowRef(); + const define = defineComponent({ + setup(_, { slots }) { + return () => { + render.value = slots.default; + }; + } + }); + const reuse = defineComponent({ + inheritAttrs, + setup(_, { attrs, slots }) { + return () => { + var _a; + if (!render.value && true) + throw new Error("[VueUse] Failed to find the definition of reusable template"); + const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots }); + return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode; + }; + } + }); + return makeDestructurable( + { define, reuse }, + [define, reuse] + ); +} +function keysToCamelKebabCase(obj) { + const newObj = {}; + for (const key in obj) + newObj[camelize(key)] = obj[key]; + return newObj; +} +function createTemplatePromise(options = {}) { + if (!isVue3) { + if (true) + throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above."); + return; + } + let index = 0; + const instances = ref([]); + function create(...args) { + const props = shallowReactive({ + key: index++, + args, + promise: void 0, + resolve: () => { + }, + reject: () => { + }, + isResolving: false, + options + }); + instances.value.push(props); + props.promise = new Promise((_resolve, _reject) => { + props.resolve = (v) => { + props.isResolving = true; + return _resolve(v); + }; + props.reject = _reject; + }).finally(() => { + props.promise = void 0; + const index2 = instances.value.indexOf(props); + if (index2 !== -1) + instances.value.splice(index2, 1); + }); + return props.promise; + } + function start(...args) { + if (options.singleton && instances.value.length > 0) + return instances.value[0].promise; + return create(...args); + } + const component = defineComponent((_, { slots }) => { + const renderList = () => instances.value.map((props) => { + var _a; + return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props)); + }); + if (options.transition) + return () => h(TransitionGroup, options.transition, renderList); + return renderList; + }); + component.start = start; + return component; +} +function createUnrefFn(fn) { + return function(...args) { + return fn.apply(this, args.map((i) => toValue(i))); + }; +} +function unrefElement(elRef) { + var _a; + const plain = toValue(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; +} +var defaultWindow = isClient ? window : void 0; +var defaultDocument = isClient ? window.document : void 0; +var defaultNavigator = isClient ? window.navigator : void 0; +var defaultLocation = isClient ? window.location : void 0; +function useEventListener(...args) { + let target; + let events2; + let listeners; + let options; + if (typeof args[0] === "string" || Array.isArray(args[0])) { + [events2, listeners, options] = args; + target = defaultWindow; + } else { + [target, events2, listeners, options] = args; + } + if (!target) + return noop; + if (!Array.isArray(events2)) + events2 = [events2]; + if (!Array.isArray(listeners)) + listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = watch( + () => [unrefElement(target), toValue(options)], + ([el, options2]) => { + cleanup(); + if (!el) + return; + const optionsClone = isObject(options2) ? { ...options2 } : options2; + cleanups.push( + ...events2.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, optionsClone)); + }) + ); + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; +} +var _iOSWorkaround = false; +function onClickOutside(target, handler, options = {}) { + const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window2) + return noop; + if (isIOS && !_iOSWorkaround) { + _iOSWorkaround = true; + Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop)); + window2.document.documentElement.addEventListener("click", noop); + } + let shouldListen = true; + const shouldIgnore = (event) => { + return ignore.some((target2) => { + if (typeof target2 === "string") { + return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + } else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + const listener = (event) => { + const el = unrefElement(target); + if (!el || el === event.target || event.composedPath().includes(el)) + return; + if (event.detail === 0) + shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + const cleanup = [ + useEventListener(window2, "click", listener, { passive: true, capture }), + useEventListener(window2, "pointerdown", (e) => { + const el = unrefElement(target); + shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); + }, { passive: true }), + detectIframe && useEventListener(window2, "blur", (event) => { + setTimeout(() => { + var _a; + const el = unrefElement(target); + if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) + handler(event); + }, 0); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function createKeyPredicate(keyFilter) { + if (typeof keyFilter === "function") + return keyFilter; + else if (typeof keyFilter === "string") + return (event) => event.key === keyFilter; + else if (Array.isArray(keyFilter)) + return (event) => keyFilter.includes(event.key); + return () => true; +} +function onKeyStroke(...args) { + let key; + let handler; + let options = {}; + if (args.length === 3) { + key = args[0]; + handler = args[1]; + options = args[2]; + } else if (args.length === 2) { + if (typeof args[1] === "object") { + key = true; + handler = args[0]; + options = args[1]; + } else { + key = args[0]; + handler = args[1]; + } + } else { + key = true; + handler = args[0]; + } + const { + target = defaultWindow, + eventName = "keydown", + passive = false, + dedupe = false + } = options; + const predicate = createKeyPredicate(key); + const listener = (e) => { + if (e.repeat && toValue(dedupe)) + return; + if (predicate(e)) + handler(e); + }; + return useEventListener(target, eventName, listener, passive); +} +function onKeyDown(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keydown" }); +} +function onKeyPressed(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keypress" }); +} +function onKeyUp(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keyup" }); +} +var DEFAULT_DELAY = 500; +var DEFAULT_THRESHOLD = 10; +function onLongPress(target, handler, options) { + var _a, _b; + const elementRef = computed(() => unrefElement(target)); + let timeout; + let posStart; + function clear() { + if (timeout) { + clearTimeout(timeout); + timeout = void 0; + } + posStart = void 0; + } + function onDown(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + clear(); + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + posStart = { + x: ev.x, + y: ev.y + }; + timeout = setTimeout( + () => handler(ev), + (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY + ); + } + function onMove(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false) + return; + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + const dx = ev.x - posStart.x; + const dy = ev.y - posStart.y; + const distance = Math.sqrt(dx * dx + dy * dy); + if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD)) + clear(); + } + const listenerOptions = { + capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture, + once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once + }; + const cleanup = [ + useEventListener(elementRef, "pointerdown", onDown, listenerOptions), + useEventListener(elementRef, "pointermove", onMove, listenerOptions), + useEventListener(elementRef, ["pointerup", "pointerleave"], clear, listenerOptions) + ]; + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function isFocusedElementEditable() { + const { activeElement, body } = document; + if (!activeElement) + return false; + if (activeElement === body) + return false; + switch (activeElement.tagName) { + case "INPUT": + case "TEXTAREA": + return true; + } + return activeElement.hasAttribute("contenteditable"); +} +function isTypedCharValid({ + keyCode, + metaKey, + ctrlKey, + altKey +}) { + if (metaKey || ctrlKey || altKey) + return false; + if (keyCode >= 48 && keyCode <= 57) + return true; + if (keyCode >= 65 && keyCode <= 90) + return true; + if (keyCode >= 97 && keyCode <= 122) + return true; + return false; +} +function onStartTyping(callback, options = {}) { + const { document: document2 = defaultDocument } = options; + const keydown = (event) => { + !isFocusedElementEditable() && isTypedCharValid(event) && callback(event); + }; + if (document2) + useEventListener(document2, "keydown", keydown, { passive: true }); +} +function templateRef(key, initialValue = null) { + const instance = getCurrentInstance(); + let _trigger = () => { + }; + const element = customRef((track, trigger) => { + _trigger = trigger; + return { + get() { + var _a, _b; + track(); + return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue; + }, + set() { + } + }; + }); + tryOnMounted(_trigger); + onUpdated(_trigger); + return element; +} +function useActiveElement(options = {}) { + var _a; + const { + window: window2 = defaultWindow, + deep = true + } = options; + const document2 = (_a = options.document) != null ? _a : window2 == null ? void 0 : window2.document; + const getDeepActiveElement = () => { + var _a2; + let element = document2 == null ? void 0 : document2.activeElement; + if (deep) { + while (element == null ? void 0 : element.shadowRoot) + element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; + } + return element; + }; + const activeElement = computedWithControl( + () => null, + () => getDeepActiveElement() + ); + if (window2) { + useEventListener(window2, "blur", (event) => { + if (event.relatedTarget !== null) + return; + activeElement.trigger(); + }, true); + useEventListener(window2, "focus", activeElement.trigger, true); + } + return activeElement; +} +function useMounted() { + const isMounted = ref(false); + const instance = getCurrentInstance(); + if (instance) { + onMounted(() => { + isMounted.value = true; + }, instance); + } + return isMounted; +} +function useSupported(callback) { + const isMounted = useMounted(); + return computed(() => { + isMounted.value; + return Boolean(callback()); + }); +} +function useRafFn(fn, options = {}) { + const { + immediate = true, + fpsLimit = void 0, + window: window2 = defaultWindow + } = options; + const isActive = ref(false); + const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null; + let previousFrameTimestamp = 0; + let rafId = null; + function loop(timestamp2) { + if (!isActive.value || !window2) + return; + if (!previousFrameTimestamp) + previousFrameTimestamp = timestamp2; + const delta = timestamp2 - previousFrameTimestamp; + if (intervalLimit && delta < intervalLimit) { + rafId = window2.requestAnimationFrame(loop); + return; + } + previousFrameTimestamp = timestamp2; + fn({ delta, timestamp: timestamp2 }); + rafId = window2.requestAnimationFrame(loop); + } + function resume() { + if (!isActive.value && window2) { + isActive.value = true; + previousFrameTimestamp = 0; + rafId = window2.requestAnimationFrame(loop); + } + } + function pause() { + isActive.value = false; + if (rafId != null && window2) { + window2.cancelAnimationFrame(rafId); + rafId = null; + } + } + if (immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive: readonly(isActive), + pause, + resume + }; +} +function useAnimate(target, keyframes, options) { + let config; + let animateOptions; + if (isObject(options)) { + config = options; + animateOptions = objectOmit(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]); + } else { + config = { duration: options }; + animateOptions = options; + } + const { + window: window2 = defaultWindow, + immediate = true, + commitStyles, + persist, + playbackRate: _playbackRate = 1, + onReady, + onError = (e) => { + console.error(e); + } + } = config; + const isSupported = useSupported(() => window2 && HTMLElement && "animate" in HTMLElement.prototype); + const animate = shallowRef(void 0); + const store = shallowReactive({ + startTime: null, + currentTime: null, + timeline: null, + playbackRate: _playbackRate, + pending: false, + playState: immediate ? "idle" : "paused", + replaceState: "active" + }); + const pending = computed(() => store.pending); + const playState = computed(() => store.playState); + const replaceState = computed(() => store.replaceState); + const startTime = computed({ + get() { + return store.startTime; + }, + set(value) { + store.startTime = value; + if (animate.value) + animate.value.startTime = value; + } + }); + const currentTime = computed({ + get() { + return store.currentTime; + }, + set(value) { + store.currentTime = value; + if (animate.value) { + animate.value.currentTime = value; + syncResume(); + } + } + }); + const timeline = computed({ + get() { + return store.timeline; + }, + set(value) { + store.timeline = value; + if (animate.value) + animate.value.timeline = value; + } + }); + const playbackRate = computed({ + get() { + return store.playbackRate; + }, + set(value) { + store.playbackRate = value; + if (animate.value) + animate.value.playbackRate = value; + } + }); + const play = () => { + if (animate.value) { + try { + animate.value.play(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + } else { + update(); + } + }; + const pause = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.pause(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const reverse = () => { + var _a; + !animate.value && update(); + try { + (_a = animate.value) == null ? void 0 : _a.reverse(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + }; + const finish = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.finish(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const cancel = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.cancel(); + syncPause(); + } catch (e) { + onError(e); + } + }; + watch(() => unrefElement(target), (el) => { + el && update(); + }); + watch(() => keyframes, (value) => { + !animate.value && update(); + if (!unrefElement(target) && animate.value) { + animate.value.effect = new KeyframeEffect( + unrefElement(target), + toValue(value), + animateOptions + ); + } + }, { deep: true }); + tryOnMounted(() => { + nextTick(() => update(true)); + }); + tryOnScopeDispose(cancel); + function update(init) { + const el = unrefElement(target); + if (!isSupported.value || !el) + return; + if (!animate.value) + animate.value = el.animate(toValue(keyframes), animateOptions); + if (commitStyles) + animate.value.commitStyles(); + if (persist) + animate.value.persist(); + if (_playbackRate !== 1) + animate.value.playbackRate = _playbackRate; + if (init && !immediate) + animate.value.pause(); + else + syncResume(); + onReady == null ? void 0 : onReady(animate.value); + } + useEventListener(animate, ["cancel", "finish", "remove"], syncPause); + const { resume: resumeRef, pause: pauseRef } = useRafFn(() => { + if (!animate.value) + return; + store.pending = animate.value.pending; + store.playState = animate.value.playState; + store.replaceState = animate.value.replaceState; + store.startTime = animate.value.startTime; + store.currentTime = animate.value.currentTime; + store.timeline = animate.value.timeline; + store.playbackRate = animate.value.playbackRate; + }, { immediate: false }); + function syncResume() { + if (isSupported.value) + resumeRef(); + } + function syncPause() { + if (isSupported.value && window2) + window2.requestAnimationFrame(pauseRef); + } + return { + isSupported, + animate, + // actions + play, + pause, + reverse, + finish, + cancel, + // state + pending, + playState, + replaceState, + startTime, + currentTime, + timeline, + playbackRate + }; +} +function useAsyncQueue(tasks, options) { + const { + interrupt = true, + onError = noop, + onFinished = noop, + signal + } = options || {}; + const promiseState = { + aborted: "aborted", + fulfilled: "fulfilled", + pending: "pending", + rejected: "rejected" + }; + const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null })); + const result = reactive(initialResult); + const activeIndex = ref(-1); + if (!tasks || tasks.length === 0) { + onFinished(); + return { + activeIndex, + result + }; + } + function updateResult(state, res) { + activeIndex.value++; + result[activeIndex.value].data = res; + result[activeIndex.value].state = state; + } + tasks.reduce((prev, curr) => { + return prev.then((prevRes) => { + var _a; + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, new Error("aborted")); + return; + } + if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) { + onFinished(); + return; + } + const done = curr(prevRes).then((currentRes) => { + updateResult(promiseState.fulfilled, currentRes); + activeIndex.value === tasks.length - 1 && onFinished(); + return currentRes; + }); + if (!signal) + return done; + return Promise.race([done, whenAborted(signal)]); + }).catch((e) => { + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, e); + return e; + } + updateResult(promiseState.rejected, e); + onError(); + return e; + }); + }, Promise.resolve()); + return { + activeIndex, + result + }; +} +function whenAborted(signal) { + return new Promise((resolve, reject) => { + const error = new Error("aborted"); + if (signal.aborted) + reject(error); + else + signal.addEventListener("abort", () => reject(error), { once: true }); + }); +} +function useAsyncState(promise, initialState, options) { + const { + immediate = true, + delay = 0, + onError = noop, + onSuccess = noop, + resetOnExecute = true, + shallow = true, + throwError + } = options != null ? options : {}; + const state = shallow ? shallowRef(initialState) : ref(initialState); + const isReady = ref(false); + const isLoading = ref(false); + const error = shallowRef(void 0); + async function execute(delay2 = 0, ...args) { + if (resetOnExecute) + state.value = initialState; + error.value = void 0; + isReady.value = false; + isLoading.value = true; + if (delay2 > 0) + await promiseTimeout(delay2); + const _promise = typeof promise === "function" ? promise(...args) : promise; + try { + const data = await _promise; + state.value = data; + isReady.value = true; + onSuccess(data); + } catch (e) { + error.value = e; + onError(e); + if (throwError) + throw e; + } finally { + isLoading.value = false; + } + return state.value; + } + if (immediate) + execute(delay); + const shell = { + state, + isReady, + isLoading, + error, + execute + }; + function waitUntilIsLoaded() { + return new Promise((resolve, reject) => { + until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject); + }); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilIsLoaded().then(onFulfilled, onRejected); + } + }; +} +var defaults = { + array: (v) => JSON.stringify(v), + object: (v) => JSON.stringify(v), + set: (v) => JSON.stringify(Array.from(v)), + map: (v) => JSON.stringify(Object.fromEntries(v)), + null: () => "" +}; +function getDefaultSerialization(target) { + if (!target) + return defaults.null; + if (target instanceof Map) + return defaults.map; + else if (target instanceof Set) + return defaults.set; + else if (Array.isArray(target)) + return defaults.array; + else + return defaults.object; +} +function useBase64(target, options) { + const base64 = ref(""); + const promise = ref(); + function execute() { + if (!isClient) + return; + promise.value = new Promise((resolve, reject) => { + try { + const _target = toValue(target); + if (_target == null) { + resolve(""); + } else if (typeof _target === "string") { + resolve(blobToBase64(new Blob([_target], { type: "text/plain" }))); + } else if (_target instanceof Blob) { + resolve(blobToBase64(_target)); + } else if (_target instanceof ArrayBuffer) { + resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target)))); + } else if (_target instanceof HTMLCanvasElement) { + resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + } else if (_target instanceof HTMLImageElement) { + const img = _target.cloneNode(false); + img.crossOrigin = "Anonymous"; + imgLoaded(img).then(() => { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + }).catch(reject); + } else if (typeof _target === "object") { + const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target); + const serialized = _serializeFn(_target); + return resolve(blobToBase64(new Blob([serialized], { type: "application/json" }))); + } else { + reject(new Error("target is unsupported types")); + } + } catch (error) { + reject(error); + } + }); + promise.value.then((res) => base64.value = res); + return promise.value; + } + if (isRef(target) || typeof target === "function") + watch(target, execute, { immediate: true }); + else + execute(); + return { + base64, + promise, + execute + }; +} +function imgLoaded(img) { + return new Promise((resolve, reject) => { + if (!img.complete) { + img.onload = () => { + resolve(); + }; + img.onerror = reject; + } else { + resolve(); + } + }); +} +function blobToBase64(blob) { + return new Promise((resolve, reject) => { + const fr = new FileReader(); + fr.onload = (e) => { + resolve(e.target.result); + }; + fr.onerror = reject; + fr.readAsDataURL(blob); + }); +} +function useBattery(options = {}) { + const { navigator = defaultNavigator } = options; + const events2 = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; + const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function"); + const charging = ref(false); + const chargingTime = ref(0); + const dischargingTime = ref(0); + const level = ref(1); + let battery; + function updateBatteryInfo() { + charging.value = this.charging; + chargingTime.value = this.chargingTime || 0; + dischargingTime.value = this.dischargingTime || 0; + level.value = this.level; + } + if (isSupported.value) { + navigator.getBattery().then((_battery) => { + battery = _battery; + updateBatteryInfo.call(battery); + useEventListener(battery, events2, updateBatteryInfo, { passive: true }); + }); + } + return { + isSupported, + charging, + chargingTime, + dischargingTime, + level + }; +} +function useBluetooth(options) { + let { + acceptAllDevices = false + } = options || {}; + const { + filters = void 0, + optionalServices = void 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => navigator && "bluetooth" in navigator); + const device = shallowRef(void 0); + const error = shallowRef(null); + watch(device, () => { + connectToBluetoothGATTServer(); + }); + async function requestDevice() { + if (!isSupported.value) + return; + error.value = null; + if (filters && filters.length > 0) + acceptAllDevices = false; + try { + device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({ + acceptAllDevices, + filters, + optionalServices + })); + } catch (err) { + error.value = err; + } + } + const server = ref(); + const isConnected = computed(() => { + var _a; + return ((_a = server.value) == null ? void 0 : _a.connected) || false; + }); + async function connectToBluetoothGATTServer() { + error.value = null; + if (device.value && device.value.gatt) { + device.value.addEventListener("gattserverdisconnected", () => { + }); + try { + server.value = await device.value.gatt.connect(); + } catch (err) { + error.value = err; + } + } + } + tryOnMounted(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.connect(); + }); + tryOnScopeDispose(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.disconnect(); + }); + return { + isSupported, + isConnected, + // Device: + device, + requestDevice, + // Server: + server, + // Errors: + error + }; +} +function useMediaQuery(query, options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "matchMedia" in window2 && typeof window2.matchMedia === "function"); + let mediaQuery; + const matches = ref(false); + const handler = (event) => { + matches.value = event.matches; + }; + const cleanup = () => { + if (!mediaQuery) + return; + if ("removeEventListener" in mediaQuery) + mediaQuery.removeEventListener("change", handler); + else + mediaQuery.removeListener(handler); + }; + const stopWatch = watchEffect(() => { + if (!isSupported.value) + return; + cleanup(); + mediaQuery = window2.matchMedia(toValue(query)); + if ("addEventListener" in mediaQuery) + mediaQuery.addEventListener("change", handler); + else + mediaQuery.addListener(handler); + matches.value = mediaQuery.matches; + }); + tryOnScopeDispose(() => { + stopWatch(); + cleanup(); + mediaQuery = void 0; + }); + return matches; +} +var breakpointsTailwind = { + "sm": 640, + "md": 768, + "lg": 1024, + "xl": 1280, + "2xl": 1536 +}; +var breakpointsBootstrapV5 = { + xs: 0, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1400 +}; +var breakpointsVuetifyV2 = { + xs: 0, + sm: 600, + md: 960, + lg: 1264, + xl: 1904 +}; +var breakpointsVuetifyV3 = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920, + xxl: 2560 +}; +var breakpointsVuetify = breakpointsVuetifyV2; +var breakpointsAntDesign = { + xs: 480, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1600 +}; +var breakpointsQuasar = { + xs: 0, + sm: 600, + md: 1024, + lg: 1440, + xl: 1920 +}; +var breakpointsSematic = { + mobileS: 320, + mobileM: 375, + mobileL: 425, + tablet: 768, + laptop: 1024, + laptopL: 1440, + desktop4K: 2560 +}; +var breakpointsMasterCss = { + "3xs": 360, + "2xs": 480, + "xs": 600, + "sm": 768, + "md": 1024, + "lg": 1280, + "xl": 1440, + "2xl": 1600, + "3xl": 1920, + "4xl": 2560 +}; +var breakpointsPrimeFlex = { + sm: 576, + md: 768, + lg: 992, + xl: 1200 +}; +function useBreakpoints(breakpoints, options = {}) { + function getValue2(k, delta) { + let v = toValue(breakpoints[toValue(k)]); + if (delta != null) + v = increaseWithUnit(v, delta); + if (typeof v === "number") + v = `${v}px`; + return v; + } + const { window: window2 = defaultWindow, strategy = "min-width" } = options; + function match(query) { + if (!window2) + return false; + return window2.matchMedia(query).matches; + } + const greaterOrEqual = (k) => { + return useMediaQuery(() => `(min-width: ${getValue2(k)})`, options); + }; + const smallerOrEqual = (k) => { + return useMediaQuery(() => `(max-width: ${getValue2(k)})`, options); + }; + const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => { + Object.defineProperty(shortcuts, k, { + get: () => strategy === "min-width" ? greaterOrEqual(k) : smallerOrEqual(k), + enumerable: true, + configurable: true + }); + return shortcuts; + }, {}); + function current() { + const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]); + return computed(() => points.filter(([, v]) => v.value).map(([k]) => k)); + } + return Object.assign(shortcutMethods, { + greaterOrEqual, + smallerOrEqual, + greater(k) { + return useMediaQuery(() => `(min-width: ${getValue2(k, 0.1)})`, options); + }, + smaller(k) { + return useMediaQuery(() => `(max-width: ${getValue2(k, -0.1)})`, options); + }, + between(a, b) { + return useMediaQuery(() => `(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`, options); + }, + isGreater(k) { + return match(`(min-width: ${getValue2(k, 0.1)})`); + }, + isGreaterOrEqual(k) { + return match(`(min-width: ${getValue2(k)})`); + }, + isSmaller(k) { + return match(`(max-width: ${getValue2(k, -0.1)})`); + }, + isSmallerOrEqual(k) { + return match(`(max-width: ${getValue2(k)})`); + }, + isInBetween(a, b) { + return match(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`); + }, + current, + active() { + const bps = current(); + return computed(() => bps.value.length === 0 ? "" : bps.value.at(-1)); + } + }); +} +function useBroadcastChannel(options) { + const { + name, + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "BroadcastChannel" in window2); + const isClosed = ref(false); + const channel = ref(); + const data = ref(); + const error = shallowRef(null); + const post = (data2) => { + if (channel.value) + channel.value.postMessage(data2); + }; + const close = () => { + if (channel.value) + channel.value.close(); + isClosed.value = true; + }; + if (isSupported.value) { + tryOnMounted(() => { + error.value = null; + channel.value = new BroadcastChannel(name); + channel.value.addEventListener("message", (e) => { + data.value = e.data; + }, { passive: true }); + channel.value.addEventListener("messageerror", (e) => { + error.value = e; + }, { passive: true }); + channel.value.addEventListener("close", () => { + isClosed.value = true; + }); + }); + } + tryOnScopeDispose(() => { + close(); + }); + return { + isSupported, + channel, + data, + post, + close, + error, + isClosed + }; +} +var WRITABLE_PROPERTIES = [ + "hash", + "host", + "hostname", + "href", + "pathname", + "port", + "protocol", + "search" +]; +function useBrowserLocation(options = {}) { + const { window: window2 = defaultWindow } = options; + const refs = Object.fromEntries( + WRITABLE_PROPERTIES.map((key) => [key, ref()]) + ); + for (const [key, ref2] of objectEntries(refs)) { + watch(ref2, (value) => { + if (!(window2 == null ? void 0 : window2.location) || window2.location[key] === value) + return; + window2.location[key] = value; + }); + } + const buildState = (trigger) => { + var _a; + const { state: state2, length } = (window2 == null ? void 0 : window2.history) || {}; + const { origin } = (window2 == null ? void 0 : window2.location) || {}; + for (const key of WRITABLE_PROPERTIES) + refs[key].value = (_a = window2 == null ? void 0 : window2.location) == null ? void 0 : _a[key]; + return reactive({ + trigger, + state: state2, + length, + origin, + ...refs + }); + }; + const state = ref(buildState("load")); + if (window2) { + useEventListener(window2, "popstate", () => state.value = buildState("popstate"), { passive: true }); + useEventListener(window2, "hashchange", () => state.value = buildState("hashchange"), { passive: true }); + } + return state; +} +function useCached(refValue, comparator = (a, b) => a === b, watchOptions) { + const cachedValue = ref(refValue.value); + watch(() => refValue.value, (value) => { + if (!comparator(value, cachedValue.value)) + cachedValue.value = value; + }, watchOptions); + return cachedValue; +} +function usePermission(permissionDesc, options = {}) { + const { + controls = false, + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "permissions" in navigator); + let permissionStatus; + const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc; + const state = ref(); + const onChange = () => { + if (permissionStatus) + state.value = permissionStatus.state; + }; + const query = createSingletonPromise(async () => { + if (!isSupported.value) + return; + if (!permissionStatus) { + try { + permissionStatus = await navigator.permissions.query(desc); + useEventListener(permissionStatus, "change", onChange); + onChange(); + } catch (e) { + state.value = "prompt"; + } + } + return permissionStatus; + }); + query(); + if (controls) { + return { + state, + isSupported, + query + }; + } else { + return state; + } +} +function useClipboard(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500, + legacy = false + } = options; + const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator); + const permissionRead = usePermission("clipboard-read"); + const permissionWrite = usePermission("clipboard-write"); + const isSupported = computed(() => isClipboardApiSupported.value || legacy); + const text = ref(""); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateText() { + if (isClipboardApiSupported.value && permissionRead.value !== "denied") { + navigator.clipboard.readText().then((value) => { + text.value = value; + }); + } else { + text.value = legacyRead(); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateText); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + if (isClipboardApiSupported.value && permissionWrite.value !== "denied") + await navigator.clipboard.writeText(value); + else + legacyCopy(value); + text.value = value; + copied.value = true; + timeout.start(); + } + } + function legacyCopy(value) { + const ta = document.createElement("textarea"); + ta.value = value != null ? value : ""; + ta.style.position = "absolute"; + ta.style.opacity = "0"; + document.body.appendChild(ta); + ta.select(); + document.execCommand("copy"); + ta.remove(); + } + function legacyRead() { + var _a, _b, _c; + return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : ""; + } + return { + isSupported, + text, + copied, + copy + }; +} +function useClipboardItems(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500 + } = options; + const isSupported = useSupported(() => navigator && "clipboard" in navigator); + const content = ref([]); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateContent() { + if (isSupported.value) { + navigator.clipboard.read().then((items) => { + content.value = items; + }); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateContent); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + await navigator.clipboard.write(value); + content.value = value; + copied.value = true; + timeout.start(); + } + } + return { + isSupported, + content, + copied, + copy + }; +} +function cloneFnJSON(source) { + return JSON.parse(JSON.stringify(source)); +} +function useCloned(source, options = {}) { + const cloned = ref({}); + const { + manual, + clone = cloneFnJSON, + // watch options + deep = true, + immediate = true + } = options; + function sync() { + cloned.value = clone(toValue(source)); + } + if (!manual && (isRef(source) || typeof source === "function")) { + watch(source, sync, { + ...options, + deep, + immediate + }); + } else { + sync(); + } + return { cloned, sync }; +} +var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var globalKey = "__vueuse_ssr_handlers__"; +var handlers = getHandlers(); +function getHandlers() { + if (!(globalKey in _global)) + _global[globalKey] = _global[globalKey] || {}; + return _global[globalKey]; +} +function getSSRHandler(key, fallback) { + return handlers[key] || fallback; +} +function setSSRHandler(key, fn) { + handlers[key] = fn; +} +function guessSerializerType(rawInit) { + return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any"; +} +var StorageSerializers = { + boolean: { + read: (v) => v === "true", + write: (v) => String(v) + }, + object: { + read: (v) => JSON.parse(v), + write: (v) => JSON.stringify(v) + }, + number: { + read: (v) => Number.parseFloat(v), + write: (v) => String(v) + }, + any: { + read: (v) => v, + write: (v) => String(v) + }, + string: { + read: (v) => v, + write: (v) => String(v) + }, + map: { + read: (v) => new Map(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v.entries())) + }, + set: { + read: (v) => new Set(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v)) + }, + date: { + read: (v) => new Date(v), + write: (v) => v.toISOString() + } +}; +var customStorageEventName = "vueuse-storage"; +function useStorage(key, defaults2, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + }, + initOnMounted + } = options; + const data = (shallow ? shallowRef : ref)(typeof defaults2 === "function" ? defaults2() : defaults2); + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorage", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + if (!storage) + return data; + const rawInit = toValue(defaults2); + const type = guessSerializerType(rawInit); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + const { pause: pauseWatch, resume: resumeWatch } = watchPausable( + data, + () => write(data.value), + { flush, deep, eventFilter } + ); + if (window2 && listenToStorageChanges) { + tryOnMounted(() => { + useEventListener(window2, "storage", update); + useEventListener(window2, customStorageEventName, updateFromCustomEvent); + if (initOnMounted) + update(); + }); + } + if (!initOnMounted) + update(); + return data; + function write(v) { + try { + const oldValue = storage.getItem(key); + const dispatchWriteEvent = (newValue) => { + if (window2) { + window2.dispatchEvent(new CustomEvent(customStorageEventName, { + detail: { + key, + oldValue, + newValue, + storageArea: storage + } + })); + } + }; + if (v == null) { + dispatchWriteEvent(null); + storage.removeItem(key); + } else { + const serialized = serializer.write(v); + if (oldValue !== serialized) { + storage.setItem(key, serialized); + dispatchWriteEvent(serialized); + } + } + } catch (e) { + onError(e); + } + } + function read(event) { + const rawValue = event ? event.newValue : storage.getItem(key); + if (rawValue == null) { + if (writeDefaults && rawInit != null) + storage.setItem(key, serializer.write(rawInit)); + return rawInit; + } else if (!event && mergeDefaults) { + const value = serializer.read(rawValue); + if (typeof mergeDefaults === "function") + return mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + return { ...rawInit, ...value }; + return value; + } else if (typeof rawValue !== "string") { + return rawValue; + } else { + return serializer.read(rawValue); + } + } + function updateFromCustomEvent(event) { + update(event.detail); + } + function update(event) { + if (event && event.storageArea !== storage) + return; + if (event && event.key == null) { + data.value = rawInit; + return; + } + if (event && event.key !== key) + return; + pauseWatch(); + try { + if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value)) + data.value = read(event); + } catch (e) { + onError(e); + } finally { + if (event) + nextTick(resumeWatch); + else + resumeWatch(); + } + } +} +function usePreferredDark(options) { + return useMediaQuery("(prefers-color-scheme: dark)", options); +} +function useColorMode(options = {}) { + const { + selector = "html", + attribute = "class", + initialValue = "auto", + window: window2 = defaultWindow, + storage, + storageKey = "vueuse-color-scheme", + listenToStorageChanges = true, + storageRef, + emitAuto, + disableTransition = true + } = options; + const modes = { + auto: "", + light: "light", + dark: "dark", + ...options.modes || {} + }; + const preferredDark = usePreferredDark({ window: window2 }); + const system = computed(() => preferredDark.value ? "dark" : "light"); + const store = storageRef || (storageKey == null ? toRef2(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges })); + const state = computed(() => store.value === "auto" ? system.value : store.value); + const updateHTMLAttrs = getSSRHandler( + "updateHTMLAttrs", + (selector2, attribute2, value) => { + const el = typeof selector2 === "string" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2); + if (!el) + return; + let style; + if (disableTransition) { + style = window2.document.createElement("style"); + const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"; + style.appendChild(document.createTextNode(styleString)); + window2.document.head.appendChild(style); + } + if (attribute2 === "class") { + const current = value.split(/\s/g); + Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => { + if (current.includes(v)) + el.classList.add(v); + else + el.classList.remove(v); + }); + } else { + el.setAttribute(attribute2, value); + } + if (disableTransition) { + window2.getComputedStyle(style).opacity; + document.head.removeChild(style); + } + } + ); + function defaultOnChanged(mode) { + var _a; + updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode); + } + function onChanged(mode) { + if (options.onChanged) + options.onChanged(mode, defaultOnChanged); + else + defaultOnChanged(mode); + } + watch(state, onChanged, { flush: "post", immediate: true }); + tryOnMounted(() => onChanged(state.value)); + const auto = computed({ + get() { + return emitAuto ? store.value : state.value; + }, + set(v) { + store.value = v; + } + }); + try { + return Object.assign(auto, { store, system, state }); + } catch (e) { + return auto; + } +} +function useConfirmDialog(revealed = ref(false)) { + const confirmHook = createEventHook(); + const cancelHook = createEventHook(); + const revealHook = createEventHook(); + let _resolve = noop; + const reveal = (data) => { + revealHook.trigger(data); + revealed.value = true; + return new Promise((resolve) => { + _resolve = resolve; + }); + }; + const confirm = (data) => { + revealed.value = false; + confirmHook.trigger(data); + _resolve({ data, isCanceled: false }); + }; + const cancel = (data) => { + revealed.value = false; + cancelHook.trigger(data); + _resolve({ data, isCanceled: true }); + }; + return { + isRevealed: computed(() => revealed.value), + reveal, + confirm, + cancel, + onReveal: revealHook.on, + onConfirm: confirmHook.on, + onCancel: cancelHook.on + }; +} +function useMutationObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...mutationOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "MutationObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => { + const value = toValue(target); + const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish); + return new Set(items); + }); + const stopWatch = watch( + () => targets.value, + (targets2) => { + cleanup(); + if (isSupported.value && window2 && targets2.size) { + observer = new MutationObserver(callback); + targets2.forEach((el) => observer.observe(el, mutationOptions)); + } + }, + { immediate: true, flush: "post" } + ); + const takeRecords = () => { + return observer == null ? void 0 : observer.takeRecords(); + }; + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop, + takeRecords + }; +} +function useCssVar(prop, target, options = {}) { + const { window: window2 = defaultWindow, initialValue = "", observe = false } = options; + const variable = ref(initialValue); + const elRef = computed(() => { + var _a; + return unrefElement(target) || ((_a = window2 == null ? void 0 : window2.document) == null ? void 0 : _a.documentElement); + }); + function updateCssVar() { + var _a; + const key = toValue(prop); + const el = toValue(elRef); + if (el && window2) { + const value = (_a = window2.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim(); + variable.value = value || initialValue; + } + } + if (observe) { + useMutationObserver(elRef, updateCssVar, { + attributeFilter: ["style", "class"], + window: window2 + }); + } + watch( + [elRef, () => toValue(prop)], + updateCssVar, + { immediate: true } + ); + watch( + variable, + (val) => { + var _a; + if ((_a = elRef.value) == null ? void 0 : _a.style) + elRef.value.style.setProperty(toValue(prop), val); + } + ); + return variable; +} +function useCurrentElement(rootComponent) { + const vm = getCurrentInstance(); + const currentElement = computedWithControl( + () => null, + () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el + ); + onUpdated(currentElement.trigger); + onMounted(currentElement.trigger); + return currentElement; +} +function useCycleList(list, options) { + const state = shallowRef(getInitialValue()); + const listRef = toRef2(list); + const index = computed({ + get() { + var _a; + const targetList = listRef.value; + let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value); + if (index2 < 0) + index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0; + return index2; + }, + set(v) { + set3(v); + } + }); + function set3(i) { + const targetList = listRef.value; + const length = targetList.length; + const index2 = (i % length + length) % length; + const value = targetList[index2]; + state.value = value; + return value; + } + function shift(delta = 1) { + return set3(index.value + delta); + } + function next(n = 1) { + return shift(n); + } + function prev(n = 1) { + return shift(-n); + } + function getInitialValue() { + var _a, _b; + return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0; + } + watch(listRef, () => set3(index.value)); + return { + state, + index, + next, + prev, + go: set3 + }; +} +function useDark(options = {}) { + const { + valueDark = "dark", + valueLight = "", + window: window2 = defaultWindow + } = options; + const mode = useColorMode({ + ...options, + onChanged: (mode2, defaultHandler) => { + var _a; + if (options.onChanged) + (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2); + else + defaultHandler(mode2); + }, + modes: { + dark: valueDark, + light: valueLight + } + }); + const system = computed(() => { + if (mode.system) { + return mode.system.value; + } else { + const preferredDark = usePreferredDark({ window: window2 }); + return preferredDark.value ? "dark" : "light"; + } + }); + const isDark = computed({ + get() { + return mode.value === "dark"; + }, + set(v) { + const modeVal = v ? "dark" : "light"; + if (system.value === modeVal) + mode.value = "auto"; + else + mode.value = modeVal; + } + }); + return isDark; +} +function fnBypass(v) { + return v; +} +function fnSetSource(source, value) { + return source.value = value; +} +function defaultDump(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function defaultParse(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function useManualRefHistory(source, options = {}) { + const { + clone = false, + dump = defaultDump(clone), + parse = defaultParse(clone), + setSource = fnSetSource + } = options; + function _createHistoryRecord() { + return markRaw({ + snapshot: dump(source.value), + timestamp: timestamp() + }); + } + const last = ref(_createHistoryRecord()); + const undoStack = ref([]); + const redoStack = ref([]); + const _setSource = (record) => { + setSource(source, parse(record.snapshot)); + last.value = record; + }; + const commit = () => { + undoStack.value.unshift(last.value); + last.value = _createHistoryRecord(); + if (options.capacity && undoStack.value.length > options.capacity) + undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY); + if (redoStack.value.length) + redoStack.value.splice(0, redoStack.value.length); + }; + const clear = () => { + undoStack.value.splice(0, undoStack.value.length); + redoStack.value.splice(0, redoStack.value.length); + }; + const undo = () => { + const state = undoStack.value.shift(); + if (state) { + redoStack.value.unshift(last.value); + _setSource(state); + } + }; + const redo = () => { + const state = redoStack.value.shift(); + if (state) { + undoStack.value.unshift(last.value); + _setSource(state); + } + }; + const reset = () => { + _setSource(last.value); + }; + const history = computed(() => [last.value, ...undoStack.value]); + const canUndo = computed(() => undoStack.value.length > 0); + const canRedo = computed(() => redoStack.value.length > 0); + return { + source, + undoStack, + redoStack, + last, + history, + canUndo, + canRedo, + clear, + commit, + reset, + undo, + redo + }; +} +function useRefHistory(source, options = {}) { + const { + deep = false, + flush = "pre", + eventFilter + } = options; + const { + eventFilter: composedFilter, + pause, + resume: resumeTracking, + isActive: isTracking + } = pausableFilter(eventFilter); + const { + ignoreUpdates, + ignorePrevAsyncUpdates, + stop + } = watchIgnorable( + source, + commit, + { deep, flush, eventFilter: composedFilter } + ); + function setSource(source2, value) { + ignorePrevAsyncUpdates(); + ignoreUpdates(() => { + source2.value = value; + }); + } + const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource }); + const { clear, commit: manualCommit } = manualHistory; + function commit() { + ignorePrevAsyncUpdates(); + manualCommit(); + } + function resume(commitNow) { + resumeTracking(); + if (commitNow) + commit(); + } + function batch(fn) { + let canceled = false; + const cancel = () => canceled = true; + ignoreUpdates(() => { + fn(cancel); + }); + if (!canceled) + commit(); + } + function dispose() { + stop(); + clear(); + } + return { + ...manualHistory, + isTracking, + pause, + resume, + commit, + batch, + dispose + }; +} +function useDebouncedRefHistory(source, options = {}) { + const filter = options.debounce ? debounceFilter(options.debounce) : void 0; + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +function useDeviceMotion(options = {}) { + const { + window: window2 = defaultWindow, + eventFilter = bypassFilter + } = options; + const acceleration = ref({ x: null, y: null, z: null }); + const rotationRate = ref({ alpha: null, beta: null, gamma: null }); + const interval = ref(0); + const accelerationIncludingGravity = ref({ + x: null, + y: null, + z: null + }); + if (window2) { + const onDeviceMotion = createFilterWrapper( + eventFilter, + (event) => { + acceleration.value = event.acceleration; + accelerationIncludingGravity.value = event.accelerationIncludingGravity; + rotationRate.value = event.rotationRate; + interval.value = event.interval; + } + ); + useEventListener(window2, "devicemotion", onDeviceMotion); + } + return { + acceleration, + accelerationIncludingGravity, + rotationRate, + interval + }; +} +function useDeviceOrientation(options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "DeviceOrientationEvent" in window2); + const isAbsolute = ref(false); + const alpha = ref(null); + const beta = ref(null); + const gamma = ref(null); + if (window2 && isSupported.value) { + useEventListener(window2, "deviceorientation", (event) => { + isAbsolute.value = event.absolute; + alpha.value = event.alpha; + beta.value = event.beta; + gamma.value = event.gamma; + }); + } + return { + isSupported, + isAbsolute, + alpha, + beta, + gamma + }; +} +function useDevicePixelRatio(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const pixelRatio = ref(1); + if (window2) { + let observe2 = function() { + pixelRatio.value = window2.devicePixelRatio; + cleanup2(); + media = window2.matchMedia(`(resolution: ${pixelRatio.value}dppx)`); + media.addEventListener("change", observe2, { once: true }); + }, cleanup2 = function() { + media == null ? void 0 : media.removeEventListener("change", observe2); + }; + let media; + observe2(); + tryOnScopeDispose(cleanup2); + } + return { pixelRatio }; +} +function useDevicesList(options = {}) { + const { + navigator = defaultNavigator, + requestPermissions = false, + constraints = { audio: true, video: true }, + onUpdated: onUpdated2 + } = options; + const devices = ref([]); + const videoInputs = computed(() => devices.value.filter((i) => i.kind === "videoinput")); + const audioInputs = computed(() => devices.value.filter((i) => i.kind === "audioinput")); + const audioOutputs = computed(() => devices.value.filter((i) => i.kind === "audiooutput")); + const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices); + const permissionGranted = ref(false); + let stream; + async function update() { + if (!isSupported.value) + return; + devices.value = await navigator.mediaDevices.enumerateDevices(); + onUpdated2 == null ? void 0 : onUpdated2(devices.value); + if (stream) { + stream.getTracks().forEach((t) => t.stop()); + stream = null; + } + } + async function ensurePermissions() { + if (!isSupported.value) + return false; + if (permissionGranted.value) + return true; + const { state, query } = usePermission("camera", { controls: true }); + await query(); + if (state.value !== "granted") { + stream = await navigator.mediaDevices.getUserMedia(constraints); + update(); + permissionGranted.value = true; + } else { + permissionGranted.value = true; + } + return permissionGranted.value; + } + if (isSupported.value) { + if (requestPermissions) + ensurePermissions(); + useEventListener(navigator.mediaDevices, "devicechange", update); + update(); + } + return { + devices, + ensurePermissions, + permissionGranted, + videoInputs, + audioInputs, + audioOutputs, + isSupported + }; +} +function useDisplayMedia(options = {}) { + var _a; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const video = options.video; + const audio = options.audio; + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia; + }); + const constraint = { audio, video }; + const stream = shallowRef(); + async function _start() { + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getDisplayMedia(constraint); + return stream.value; + } + async function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + watch( + enabled, + (v) => { + if (v) + _start(); + else + _stop(); + }, + { immediate: true } + ); + return { + isSupported, + stream, + start, + stop, + enabled + }; +} +function useDocumentVisibility(options = {}) { + const { document: document2 = defaultDocument } = options; + if (!document2) + return ref("visible"); + const visibility = ref(document2.visibilityState); + useEventListener(document2, "visibilitychange", () => { + visibility.value = document2.visibilityState; + }); + return visibility; +} +function useDraggable(target, options = {}) { + var _a, _b; + const { + pointerTypes, + preventDefault: preventDefault2, + stopPropagation, + exact, + onMove, + onEnd, + onStart, + initialValue, + axis = "both", + draggingElement = defaultWindow, + containerElement, + handle: draggingHandle = target + } = options; + const position = ref( + (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 } + ); + const pressedDelta = ref(); + const filterEvent = (e) => { + if (pointerTypes) + return pointerTypes.includes(e.pointerType); + return true; + }; + const handleEvent = (e) => { + if (toValue(preventDefault2)) + e.preventDefault(); + if (toValue(stopPropagation)) + e.stopPropagation(); + }; + const start = (e) => { + var _a2; + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (toValue(exact) && e.target !== toValue(target)) + return; + const container = toValue(containerElement); + const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); + const targetRect = toValue(target).getBoundingClientRect(); + const pos = { + x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left), + y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top) + }; + if ((onStart == null ? void 0 : onStart(pos, e)) === false) + return; + pressedDelta.value = pos; + handleEvent(e); + }; + const move = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + const container = toValue(containerElement); + const targetRect = toValue(target).getBoundingClientRect(); + let { x, y } = position.value; + if (axis === "x" || axis === "both") { + x = e.clientX - pressedDelta.value.x; + if (container) + x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width); + } + if (axis === "y" || axis === "both") { + y = e.clientY - pressedDelta.value.y; + if (container) + y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height); + } + position.value = { + x, + y + }; + onMove == null ? void 0 : onMove(position.value, e); + handleEvent(e); + }; + const end = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + pressedDelta.value = void 0; + onEnd == null ? void 0 : onEnd(position.value, e); + handleEvent(e); + }; + if (isClient) { + const config = { capture: (_b = options.capture) != null ? _b : true }; + useEventListener(draggingHandle, "pointerdown", start, config); + useEventListener(draggingElement, "pointermove", move, config); + useEventListener(draggingElement, "pointerup", end, config); + } + return { + ...toRefs2(position), + position, + isDragging: computed(() => !!pressedDelta.value), + style: computed( + () => `left:${position.value.x}px;top:${position.value.y}px;` + ) + }; +} +function useDropZone(target, options = {}) { + const isOverDropZone = ref(false); + const files = shallowRef(null); + let counter = 0; + let isDataTypeIncluded = true; + if (isClient) { + const _options = typeof options === "function" ? { onDrop: options } : options; + const getFiles = (event) => { + var _a, _b; + const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []); + return files.value = list.length === 0 ? null : list; + }; + useEventListener(target, "dragenter", (event) => { + var _a, _b; + const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === "file" ? i.type : null).filter(notNullish); + if (_options.dataTypes && event.dataTransfer) { + const dataTypes = unref(_options.dataTypes); + isDataTypeIncluded = typeof dataTypes === "function" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true; + if (!isDataTypeIncluded) + return; + } + event.preventDefault(); + counter += 1; + isOverDropZone.value = true; + (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragover", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragleave", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + counter -= 1; + if (counter === 0) + isOverDropZone.value = false; + (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "drop", (event) => { + var _a; + event.preventDefault(); + counter = 0; + isOverDropZone.value = false; + (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + } + return { + files, + isOverDropZone + }; +} +function useResizeObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...observerOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "ResizeObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]); + const stopWatch = watch( + targets, + (els) => { + cleanup(); + if (isSupported.value && window2) { + observer = new ResizeObserver(callback); + for (const _el of els) + _el && observer.observe(_el, observerOptions); + } + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; +} +function useElementBounding(target, options = {}) { + const { + reset = true, + windowResize = true, + windowScroll = true, + immediate = true + } = options; + const height = ref(0); + const bottom = ref(0); + const left = ref(0); + const right = ref(0); + const top = ref(0); + const width = ref(0); + const x = ref(0); + const y = ref(0); + function update() { + const el = unrefElement(target); + if (!el) { + if (reset) { + height.value = 0; + bottom.value = 0; + left.value = 0; + right.value = 0; + top.value = 0; + width.value = 0; + x.value = 0; + y.value = 0; + } + return; + } + const rect = el.getBoundingClientRect(); + height.value = rect.height; + bottom.value = rect.bottom; + left.value = rect.left; + right.value = rect.right; + top.value = rect.top; + width.value = rect.width; + x.value = rect.x; + y.value = rect.y; + } + useResizeObserver(target, update); + watch(() => unrefElement(target), (ele) => !ele && update()); + useMutationObserver(target, update, { + attributeFilter: ["style", "class"] + }); + if (windowScroll) + useEventListener("scroll", update, { capture: true, passive: true }); + if (windowResize) + useEventListener("resize", update, { passive: true }); + tryOnMounted(() => { + if (immediate) + update(); + }); + return { + height, + bottom, + left, + right, + top, + width, + x, + y, + update + }; +} +function useElementByPoint(options) { + const { + x, + y, + document: document2 = defaultDocument, + multiple, + interval = "requestAnimationFrame", + immediate = true + } = options; + const isSupported = useSupported(() => { + if (toValue(multiple)) + return document2 && "elementsFromPoint" in document2; + return document2 && "elementFromPoint" in document2; + }); + const element = ref(null); + const cb = () => { + var _a, _b; + element.value = toValue(multiple) ? (_a = document2 == null ? void 0 : document2.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document2 == null ? void 0 : document2.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null; + }; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + return { + isSupported, + element, + ...controls + }; +} +function useElementHover(el, options = {}) { + const { + delayEnter = 0, + delayLeave = 0, + window: window2 = defaultWindow + } = options; + const isHovered = ref(false); + let timer; + const toggle = (entering) => { + const delay = entering ? delayEnter : delayLeave; + if (timer) { + clearTimeout(timer); + timer = void 0; + } + if (delay) + timer = setTimeout(() => isHovered.value = entering, delay); + else + isHovered.value = entering; + }; + if (!window2) + return isHovered; + useEventListener(el, "mouseenter", () => toggle(true), { passive: true }); + useEventListener(el, "mouseleave", () => toggle(false), { passive: true }); + return isHovered; +} +function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) { + const { window: window2 = defaultWindow, box = "content-box" } = options; + const isSVG = computed(() => { + var _a, _b; + return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); + }); + const width = ref(initialSize.width); + const height = ref(initialSize.height); + const { stop: stop1 } = useResizeObserver( + target, + ([entry]) => { + const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; + if (window2 && isSVG.value) { + const $elem = unrefElement(target); + if ($elem) { + const styles = window2.getComputedStyle($elem); + width.value = Number.parseFloat(styles.width); + height.value = Number.parseFloat(styles.height); + } + } else { + if (boxSize) { + const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; + width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); + height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); + } else { + width.value = entry.contentRect.width; + height.value = entry.contentRect.height; + } + } + }, + options + ); + tryOnMounted(() => { + const ele = unrefElement(target); + if (ele) { + width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; + height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; + } + }); + const stop2 = watch( + () => unrefElement(target), + (ele) => { + width.value = ele ? initialSize.width : 0; + height.value = ele ? initialSize.height : 0; + } + ); + function stop() { + stop1(); + stop2(); + } + return { + width, + height, + stop + }; +} +function useIntersectionObserver(target, callback, options = {}) { + const { + root, + rootMargin = "0px", + threshold = 0.1, + window: window2 = defaultWindow, + immediate = true + } = options; + const isSupported = useSupported(() => window2 && "IntersectionObserver" in window2); + const targets = computed(() => { + const _target = toValue(target); + return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); + }); + let cleanup = noop; + const isActive = ref(immediate); + const stopWatch = isSupported.value ? watch( + () => [targets.value, unrefElement(root), isActive.value], + ([targets2, root2]) => { + cleanup(); + if (!isActive.value) + return; + if (!targets2.length) + return; + const observer = new IntersectionObserver( + callback, + { + root: unrefElement(root2), + rootMargin, + threshold + } + ); + targets2.forEach((el) => el && observer.observe(el)); + cleanup = () => { + observer.disconnect(); + cleanup = noop; + }; + }, + { immediate, flush: "post" } + ) : noop; + const stop = () => { + cleanup(); + stopWatch(); + isActive.value = false; + }; + tryOnScopeDispose(stop); + return { + isSupported, + isActive, + pause() { + cleanup(); + isActive.value = false; + }, + resume() { + isActive.value = true; + }, + stop + }; +} +function useElementVisibility(element, options = {}) { + const { window: window2 = defaultWindow, scrollTarget, threshold = 0 } = options; + const elementIsVisible = ref(false); + useIntersectionObserver( + element, + (intersectionObserverEntries) => { + let isIntersecting = elementIsVisible.value; + let latestTime = 0; + for (const entry of intersectionObserverEntries) { + if (entry.time >= latestTime) { + latestTime = entry.time; + isIntersecting = entry.isIntersecting; + } + } + elementIsVisible.value = isIntersecting; + }, + { + root: scrollTarget, + window: window2, + threshold + } + ); + return elementIsVisible; +} +var events = /* @__PURE__ */ new Map(); +function useEventBus(key) { + const scope = getCurrentScope(); + function on(listener) { + var _a; + const listeners = events.get(key) || /* @__PURE__ */ new Set(); + listeners.add(listener); + events.set(key, listeners); + const _off = () => off(listener); + (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off); + return _off; + } + function once(listener) { + function _listener(...args) { + off(_listener); + listener(...args); + } + return on(_listener); + } + function off(listener) { + const listeners = events.get(key); + if (!listeners) + return; + listeners.delete(listener); + if (!listeners.size) + reset(); + } + function reset() { + events.delete(key); + } + function emit(event, payload) { + var _a; + (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload)); + } + return { on, once, off, emit, reset }; +} +function resolveNestedOptions$1(options) { + if (options === true) + return {}; + return options; +} +function useEventSource(url, events2 = [], options = {}) { + const event = ref(null); + const data = ref(null); + const status = ref("CONNECTING"); + const eventSource = ref(null); + const error = shallowRef(null); + const urlRef = toRef2(url); + let explicitlyClosed = false; + let retried = 0; + const { + withCredentials = false, + immediate = true + } = options; + const close = () => { + if (isClient && eventSource.value) { + eventSource.value.close(); + eventSource.value = null; + status.value = "CLOSED"; + explicitlyClosed = true; + } + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const es = new EventSource(urlRef.value, { withCredentials }); + status.value = "CONNECTING"; + eventSource.value = es; + es.onopen = () => { + status.value = "OPEN"; + error.value = null; + }; + es.onerror = (e) => { + status.value = "CLOSED"; + error.value = e; + if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) { + es.close(); + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions$1(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + es.onmessage = (e) => { + event.value = null; + data.value = e.data; + }; + for (const event_name of events2) { + useEventListener(es, event_name, (e) => { + event.value = event_name; + data.value = e.data || null; + }); + } + }; + const open = () => { + if (!isClient) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + watch(urlRef, open, { immediate: true }); + tryOnScopeDispose(close); + return { + eventSource, + event, + data, + status, + error, + open, + close + }; +} +function useEyeDropper(options = {}) { + const { initialValue = "" } = options; + const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window); + const sRGBHex = ref(initialValue); + async function open(openOptions) { + if (!isSupported.value) + return; + const eyeDropper = new window.EyeDropper(); + const result = await eyeDropper.open(openOptions); + sRGBHex.value = result.sRGBHex; + return result; + } + return { isSupported, sRGBHex, open }; +} +function useFavicon(newIcon = null, options = {}) { + const { + baseUrl = "", + rel = "icon", + document: document2 = defaultDocument + } = options; + const favicon = toRef2(newIcon); + const applyIcon = (icon) => { + const elements = document2 == null ? void 0 : document2.head.querySelectorAll(`link[rel*="${rel}"]`); + if (!elements || elements.length === 0) { + const link = document2 == null ? void 0 : document2.createElement("link"); + if (link) { + link.rel = rel; + link.href = `${baseUrl}${icon}`; + link.type = `image/${icon.split(".").pop()}`; + document2 == null ? void 0 : document2.head.append(link); + } + return; + } + elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`); + }; + watch( + favicon, + (i, o) => { + if (typeof i === "string" && i !== o) + applyIcon(i); + }, + { immediate: true } + ); + return favicon; +} +var payloadMapping = { + json: "application/json", + text: "text/plain" +}; +function isFetchOptions(obj) { + return obj && containsProp(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch", "updateDataOnError"); +} +function isAbsoluteURL(url) { + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} +function headersToObject(headers) { + if (typeof Headers !== "undefined" && headers instanceof Headers) + return Object.fromEntries(headers.entries()); + return headers; +} +function combineCallbacks(combination, ...callbacks) { + if (combination === "overwrite") { + return async (ctx) => { + const callback = callbacks[callbacks.length - 1]; + if (callback) + return { ...ctx, ...await callback(ctx) }; + return ctx; + }; + } else { + return async (ctx) => { + for (const callback of callbacks) { + if (callback) + ctx = { ...ctx, ...await callback(ctx) }; + } + return ctx; + }; + } +} +function createFetch(config = {}) { + const _combination = config.combination || "chain"; + const _options = config.options || {}; + const _fetchOptions = config.fetchOptions || {}; + function useFactoryFetch(url, ...args) { + const computedUrl = computed(() => { + const baseUrl = toValue(config.baseUrl); + const targetUrl = toValue(url); + return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl; + }); + let options = _options; + let fetchOptions = _fetchOptions; + if (args.length > 0) { + if (isFetchOptions(args[0])) { + options = { + ...options, + ...args[0], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError) + }; + } else { + fetchOptions = { + ...fetchOptions, + ...args[0], + headers: { + ...headersToObject(fetchOptions.headers) || {}, + ...headersToObject(args[0].headers) || {} + } + }; + } + } + if (args.length > 1 && isFetchOptions(args[1])) { + options = { + ...options, + ...args[1], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError) + }; + } + return useFetch(computedUrl, fetchOptions, options); + } + return useFactoryFetch; +} +function useFetch(url, ...args) { + var _a; + const supportsAbort = typeof AbortController === "function"; + let fetchOptions = {}; + let options = { + immediate: true, + refetch: false, + timeout: 0, + updateDataOnError: false + }; + const config = { + method: "GET", + type: "text", + payload: void 0 + }; + if (args.length > 0) { + if (isFetchOptions(args[0])) + options = { ...options, ...args[0] }; + else + fetchOptions = args[0]; + } + if (args.length > 1) { + if (isFetchOptions(args[1])) + options = { ...options, ...args[1] }; + } + const { + fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch, + initialData, + timeout + } = options; + const responseEvent = createEventHook(); + const errorEvent = createEventHook(); + const finallyEvent = createEventHook(); + const isFinished = ref(false); + const isFetching = ref(false); + const aborted = ref(false); + const statusCode = ref(null); + const response = shallowRef(null); + const error = shallowRef(null); + const data = shallowRef(initialData || null); + const canAbort = computed(() => supportsAbort && isFetching.value); + let controller; + let timer; + const abort = () => { + if (supportsAbort) { + controller == null ? void 0 : controller.abort(); + controller = new AbortController(); + controller.signal.onabort = () => aborted.value = true; + fetchOptions = { + ...fetchOptions, + signal: controller.signal + }; + } + }; + const loading = (isLoading) => { + isFetching.value = isLoading; + isFinished.value = !isLoading; + }; + if (timeout) + timer = useTimeoutFn(abort, timeout, { immediate: false }); + let executeCounter = 0; + const execute = async (throwOnFailed = false) => { + var _a2, _b; + abort(); + loading(true); + error.value = null; + statusCode.value = null; + aborted.value = false; + executeCounter += 1; + const currentExecuteCounter = executeCounter; + const defaultFetchOptions = { + method: config.method, + headers: {} + }; + if (config.payload) { + const headers = headersToObject(defaultFetchOptions.headers); + const payload = toValue(config.payload); + if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData)) + config.payloadType = "json"; + if (config.payloadType) + headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType; + defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload; + } + let isCanceled = false; + const context = { + url: toValue(url), + options: { + ...defaultFetchOptions, + ...fetchOptions + }, + cancel: () => { + isCanceled = true; + } + }; + if (options.beforeFetch) + Object.assign(context, await options.beforeFetch(context)); + if (isCanceled || !fetch) { + loading(false); + return Promise.resolve(null); + } + let responseData = null; + if (timer) + timer.start(); + return fetch( + context.url, + { + ...defaultFetchOptions, + ...context.options, + headers: { + ...headersToObject(defaultFetchOptions.headers), + ...headersToObject((_b = context.options) == null ? void 0 : _b.headers) + } + } + ).then(async (fetchResponse) => { + response.value = fetchResponse; + statusCode.value = fetchResponse.status; + responseData = await fetchResponse.clone()[config.type](); + if (!fetchResponse.ok) { + data.value = initialData || null; + throw new Error(fetchResponse.statusText); + } + if (options.afterFetch) { + ({ data: responseData } = await options.afterFetch({ + data: responseData, + response: fetchResponse + })); + } + data.value = responseData; + responseEvent.trigger(fetchResponse); + return fetchResponse; + }).catch(async (fetchError) => { + let errorData = fetchError.message || fetchError.name; + if (options.onFetchError) { + ({ error: errorData, data: responseData } = await options.onFetchError({ + data: responseData, + error: fetchError, + response: response.value + })); + } + error.value = errorData; + if (options.updateDataOnError) + data.value = responseData; + errorEvent.trigger(fetchError); + if (throwOnFailed) + throw fetchError; + return null; + }).finally(() => { + if (currentExecuteCounter === executeCounter) + loading(false); + if (timer) + timer.stop(); + finallyEvent.trigger(null); + }); + }; + const refetch = toRef2(options.refetch); + watch( + [ + refetch, + toRef2(url) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + const shell = { + isFinished: readonly(isFinished), + isFetching: readonly(isFetching), + statusCode, + response, + error, + data, + canAbort, + aborted, + abort, + execute, + onFetchResponse: responseEvent.on, + onFetchError: errorEvent.on, + onFetchFinally: finallyEvent.on, + // method + get: setMethod("GET"), + put: setMethod("PUT"), + post: setMethod("POST"), + delete: setMethod("DELETE"), + patch: setMethod("PATCH"), + head: setMethod("HEAD"), + options: setMethod("OPTIONS"), + // type + json: setType("json"), + text: setType("text"), + blob: setType("blob"), + arrayBuffer: setType("arrayBuffer"), + formData: setType("formData") + }; + function setMethod(method) { + return (payload, payloadType) => { + if (!isFetching.value) { + config.method = method; + config.payload = payload; + config.payloadType = payloadType; + if (isRef(config.payload)) { + watch( + [ + refetch, + toRef2(config.payload) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + function waitUntilFinished() { + return new Promise((resolve, reject) => { + until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2)); + }); + } + function setType(type) { + return () => { + if (!isFetching.value) { + config.type = type; + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + if (options.immediate) + Promise.resolve().then(() => execute()); + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; +} +function joinPaths(start, end) { + if (!start.endsWith("/") && !end.startsWith("/")) + return `${start}/${end}`; + return `${start}${end}`; +} +var DEFAULT_OPTIONS = { + multiple: true, + accept: "*", + reset: false, + directory: false +}; +function useFileDialog(options = {}) { + const { + document: document2 = defaultDocument + } = options; + const files = ref(null); + const { on: onChange, trigger } = createEventHook(); + let input; + if (document2) { + input = document2.createElement("input"); + input.type = "file"; + input.onchange = (event) => { + const result = event.target; + files.value = result.files; + trigger(files.value); + }; + } + const reset = () => { + files.value = null; + if (input) { + input.value = ""; + trigger(null); + } + }; + const open = (localOptions) => { + if (!input) + return; + const _options = { + ...DEFAULT_OPTIONS, + ...options, + ...localOptions + }; + input.multiple = _options.multiple; + input.accept = _options.accept; + input.webkitdirectory = _options.directory; + if (hasOwn(_options, "capture")) + input.capture = _options.capture; + if (_options.reset) + reset(); + input.click(); + }; + return { + files: readonly(files), + open, + reset, + onChange + }; +} +function useFileSystemAccess(options = {}) { + const { + window: _window = defaultWindow, + dataType = "Text" + } = options; + const window2 = _window; + const isSupported = useSupported(() => window2 && "showSaveFilePicker" in window2 && "showOpenFilePicker" in window2); + const fileHandle = ref(); + const data = ref(); + const file = ref(); + const fileName = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : ""; + }); + const fileMIME = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : ""; + }); + const fileSize = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0; + }); + const fileLastModified = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0; + }); + async function open(_options = {}) { + if (!isSupported.value) + return; + const [handle] = await window2.showOpenFilePicker({ ...toValue(options), ..._options }); + fileHandle.value = handle; + await updateData(); + } + async function create(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + data.value = void 0; + await updateData(); + } + async function save(_options = {}) { + if (!isSupported.value) + return; + if (!fileHandle.value) + return saveAs(_options); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function saveAs(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function updateFile() { + var _a; + file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile()); + } + async function updateData() { + var _a, _b; + await updateFile(); + const type = toValue(dataType); + if (type === "Text") + data.value = await ((_a = file.value) == null ? void 0 : _a.text()); + else if (type === "ArrayBuffer") + data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer()); + else if (type === "Blob") + data.value = file.value; + } + watch(() => toValue(dataType), updateData); + return { + isSupported, + data, + file, + fileName, + fileMIME, + fileSize, + fileLastModified, + open, + create, + save, + saveAs, + updateData + }; +} +function useFocus(target, options = {}) { + const { initialValue = false, focusVisible = false } = options; + const innerFocused = ref(false); + const targetElement = computed(() => unrefElement(target)); + useEventListener(targetElement, "focus", (event) => { + var _a, _b; + if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, ":focus-visible"))) + innerFocused.value = true; + }); + useEventListener(targetElement, "blur", () => innerFocused.value = false); + const focused = computed({ + get: () => innerFocused.value, + set(value) { + var _a, _b; + if (!value && innerFocused.value) + (_a = targetElement.value) == null ? void 0 : _a.blur(); + else if (value && !innerFocused.value) + (_b = targetElement.value) == null ? void 0 : _b.focus(); + } + }); + watch( + targetElement, + () => { + focused.value = initialValue; + }, + { immediate: true, flush: "post" } + ); + return { focused }; +} +function useFocusWithin(target, options = {}) { + const activeElement = useActiveElement(options); + const targetElement = computed(() => unrefElement(target)); + const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false); + return { focused }; +} +function useFps(options) { + var _a; + const fps = ref(0); + if (typeof performance === "undefined") + return fps; + const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10; + let last = performance.now(); + let ticks = 0; + useRafFn(() => { + ticks += 1; + if (ticks >= every) { + const now2 = performance.now(); + const diff = now2 - last; + fps.value = Math.round(1e3 / (diff / ticks)); + last = now2; + ticks = 0; + } + }); + return fps; +} +var eventHandlers = [ + "fullscreenchange", + "webkitfullscreenchange", + "webkitendfullscreen", + "mozfullscreenchange", + "MSFullscreenChange" +]; +function useFullscreen(target, options = {}) { + const { + document: document2 = defaultDocument, + autoExit = false + } = options; + const targetRef = computed(() => { + var _a; + return (_a = unrefElement(target)) != null ? _a : document2 == null ? void 0 : document2.querySelector("html"); + }); + const isFullscreen = ref(false); + const requestMethod = computed(() => { + return [ + "requestFullscreen", + "webkitRequestFullscreen", + "webkitEnterFullscreen", + "webkitEnterFullScreen", + "webkitRequestFullScreen", + "mozRequestFullScreen", + "msRequestFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const exitMethod = computed(() => { + return [ + "exitFullscreen", + "webkitExitFullscreen", + "webkitExitFullScreen", + "webkitCancelFullScreen", + "mozCancelFullScreen", + "msExitFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenEnabled = computed(() => { + return [ + "fullScreen", + "webkitIsFullScreen", + "webkitDisplayingFullscreen", + "mozFullScreen", + "msFullscreenElement" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenElementMethod = [ + "fullscreenElement", + "webkitFullscreenElement", + "mozFullScreenElement", + "msFullscreenElement" + ].find((m) => document2 && m in document2); + const isSupported = useSupported(() => targetRef.value && document2 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0); + const isCurrentElementFullScreen = () => { + if (fullscreenElementMethod) + return (document2 == null ? void 0 : document2[fullscreenElementMethod]) === targetRef.value; + return false; + }; + const isElementFullScreen = () => { + if (fullscreenEnabled.value) { + if (document2 && document2[fullscreenEnabled.value] != null) { + return document2[fullscreenEnabled.value]; + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) { + return Boolean(target2[fullscreenEnabled.value]); + } + } + } + return false; + }; + async function exit() { + if (!isSupported.value || !isFullscreen.value) + return; + if (exitMethod.value) { + if ((document2 == null ? void 0 : document2[exitMethod.value]) != null) { + await document2[exitMethod.value](); + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[exitMethod.value]) != null) + await target2[exitMethod.value](); + } + } + isFullscreen.value = false; + } + async function enter() { + if (!isSupported.value || isFullscreen.value) + return; + if (isElementFullScreen()) + await exit(); + const target2 = targetRef.value; + if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) { + await target2[requestMethod.value](); + isFullscreen.value = true; + } + } + async function toggle() { + await (isFullscreen.value ? exit() : enter()); + } + const handlerCallback = () => { + const isElementFullScreenValue = isElementFullScreen(); + if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) + isFullscreen.value = isElementFullScreenValue; + }; + useEventListener(document2, eventHandlers, handlerCallback, false); + useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false); + if (autoExit) + tryOnScopeDispose(exit); + return { + isSupported, + isFullscreen, + enter, + exit, + toggle + }; +} +function mapGamepadToXbox360Controller(gamepad) { + return computed(() => { + if (gamepad.value) { + return { + buttons: { + a: gamepad.value.buttons[0], + b: gamepad.value.buttons[1], + x: gamepad.value.buttons[2], + y: gamepad.value.buttons[3] + }, + bumper: { + left: gamepad.value.buttons[4], + right: gamepad.value.buttons[5] + }, + triggers: { + left: gamepad.value.buttons[6], + right: gamepad.value.buttons[7] + }, + stick: { + left: { + horizontal: gamepad.value.axes[0], + vertical: gamepad.value.axes[1], + button: gamepad.value.buttons[10] + }, + right: { + horizontal: gamepad.value.axes[2], + vertical: gamepad.value.axes[3], + button: gamepad.value.buttons[11] + } + }, + dpad: { + up: gamepad.value.buttons[12], + down: gamepad.value.buttons[13], + left: gamepad.value.buttons[14], + right: gamepad.value.buttons[15] + }, + back: gamepad.value.buttons[8], + start: gamepad.value.buttons[9] + }; + } + return null; + }); +} +function useGamepad(options = {}) { + const { + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "getGamepads" in navigator); + const gamepads = ref([]); + const onConnectedHook = createEventHook(); + const onDisconnectedHook = createEventHook(); + const stateFromGamepad = (gamepad) => { + const hapticActuators = []; + const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null; + if (vibrationActuator) + hapticActuators.push(vibrationActuator); + if (gamepad.hapticActuators) + hapticActuators.push(...gamepad.hapticActuators); + return { + ...gamepad, + id: gamepad.id, + hapticActuators, + axes: gamepad.axes.map((axes) => axes), + buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })), + index: gamepad.index + }; + }; + const updateGamepadState = () => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + gamepads.value[gamepad.index] = stateFromGamepad(gamepad); + } + }; + const { isActive, pause, resume } = useRafFn(updateGamepadState); + const onGamepadConnected = (gamepad) => { + if (!gamepads.value.some(({ index }) => index === gamepad.index)) { + gamepads.value.push(stateFromGamepad(gamepad)); + onConnectedHook.trigger(gamepad.index); + } + resume(); + }; + const onGamepadDisconnected = (gamepad) => { + gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index); + onDisconnectedHook.trigger(gamepad.index); + }; + useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad)); + useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad)); + tryOnMounted(() => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + onGamepadConnected(gamepad); + } + }); + pause(); + return { + isSupported, + onConnected: onConnectedHook.on, + onDisconnected: onDisconnectedHook.on, + gamepads, + pause, + resume, + isActive + }; +} +function useGeolocation(options = {}) { + const { + enableHighAccuracy = true, + maximumAge = 3e4, + timeout = 27e3, + navigator = defaultNavigator, + immediate = true + } = options; + const isSupported = useSupported(() => navigator && "geolocation" in navigator); + const locatedAt = ref(null); + const error = shallowRef(null); + const coords = ref({ + accuracy: 0, + latitude: Number.POSITIVE_INFINITY, + longitude: Number.POSITIVE_INFINITY, + altitude: null, + altitudeAccuracy: null, + heading: null, + speed: null + }); + function updatePosition(position) { + locatedAt.value = position.timestamp; + coords.value = position.coords; + error.value = null; + } + let watcher; + function resume() { + if (isSupported.value) { + watcher = navigator.geolocation.watchPosition( + updatePosition, + (err) => error.value = err, + { + enableHighAccuracy, + maximumAge, + timeout + } + ); + } + } + if (immediate) + resume(); + function pause() { + if (watcher && navigator) + navigator.geolocation.clearWatch(watcher); + } + tryOnScopeDispose(() => { + pause(); + }); + return { + isSupported, + coords, + locatedAt, + error, + resume, + pause + }; +} +var defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"]; +var oneMinute = 6e4; +function useIdle(timeout = oneMinute, options = {}) { + const { + initialState = false, + listenForVisibilityChange = true, + events: events2 = defaultEvents$1, + window: window2 = defaultWindow, + eventFilter = throttleFilter(50) + } = options; + const idle = ref(initialState); + const lastActive = ref(timestamp()); + let timer; + const reset = () => { + idle.value = false; + clearTimeout(timer); + timer = setTimeout(() => idle.value = true, timeout); + }; + const onEvent = createFilterWrapper( + eventFilter, + () => { + lastActive.value = timestamp(); + reset(); + } + ); + if (window2) { + const document2 = window2.document; + for (const event of events2) + useEventListener(window2, event, onEvent, { passive: true }); + if (listenForVisibilityChange) { + useEventListener(document2, "visibilitychange", () => { + if (!document2.hidden) + onEvent(); + }); + } + reset(); + } + return { + idle, + lastActive, + reset + }; +} +async function loadImage(options) { + return new Promise((resolve, reject) => { + const img = new Image(); + const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options; + img.src = src; + if (srcset) + img.srcset = srcset; + if (sizes) + img.sizes = sizes; + if (clazz) + img.className = clazz; + if (loading) + img.loading = loading; + if (crossorigin) + img.crossOrigin = crossorigin; + if (referrerPolicy) + img.referrerPolicy = referrerPolicy; + img.onload = () => resolve(img); + img.onerror = reject; + }); +} +function useImage(options, asyncStateOptions = {}) { + const state = useAsyncState( + () => loadImage(toValue(options)), + void 0, + { + resetOnExecute: true, + ...asyncStateOptions + } + ); + watch( + () => toValue(options), + () => state.execute(asyncStateOptions.delay), + { deep: true } + ); + return state; +} +var ARRIVED_STATE_THRESHOLD_PIXELS = 1; +function useScroll(element, options = {}) { + const { + throttle = 0, + idle = 200, + onStop = noop, + onScroll = noop, + offset = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }, + eventListenerOptions = { + capture: false, + passive: true + }, + behavior = "auto", + window: window2 = defaultWindow, + onError = (e) => { + console.error(e); + } + } = options; + const internalX = ref(0); + const internalY = ref(0); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo2(x2, void 0); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo2(void 0, y2); + } + }); + function scrollTo2(_x, _y) { + var _a, _b, _c; + if (!window2) + return; + const _element = toValue(element); + if (!_element) + return; + (_c = _element instanceof Document ? window2.document.body : _element) == null ? void 0 : _c.scrollTo({ + top: (_a = toValue(_y)) != null ? _a : y.value, + left: (_b = toValue(_x)) != null ? _b : x.value, + behavior: toValue(behavior) + }); + } + const isScrolling = ref(false); + const arrivedState = reactive({ + left: true, + right: false, + top: true, + bottom: false + }); + const directions = reactive({ + left: false, + right: false, + top: false, + bottom: false + }); + const onScrollEnd = (e) => { + if (!isScrolling.value) + return; + isScrolling.value = false; + directions.left = false; + directions.right = false; + directions.top = false; + directions.bottom = false; + onStop(e); + }; + const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle); + const setArrivedState = (target) => { + var _a; + if (!window2) + return; + const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target); + const { display, flexDirection } = getComputedStyle(el); + const scrollLeft = el.scrollLeft; + directions.left = scrollLeft < internalX.value; + directions.right = scrollLeft > internalX.value; + const left = Math.abs(scrollLeft) <= (offset.left || 0); + const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "row-reverse") { + arrivedState.left = right; + arrivedState.right = left; + } else { + arrivedState.left = left; + arrivedState.right = right; + } + internalX.value = scrollLeft; + let scrollTop = el.scrollTop; + if (target === window2.document && !scrollTop) + scrollTop = window2.document.body.scrollTop; + directions.top = scrollTop < internalY.value; + directions.bottom = scrollTop > internalY.value; + const top = Math.abs(scrollTop) <= (offset.top || 0); + const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "column-reverse") { + arrivedState.top = bottom; + arrivedState.bottom = top; + } else { + arrivedState.top = top; + arrivedState.bottom = bottom; + } + internalY.value = scrollTop; + }; + const onScrollHandler = (e) => { + var _a; + if (!window2) + return; + const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target; + setArrivedState(eventTarget); + isScrolling.value = true; + onScrollEndDebounced(e); + onScroll(e); + }; + useEventListener( + element, + "scroll", + throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, + eventListenerOptions + ); + tryOnMounted(() => { + try { + const _element = toValue(element); + if (!_element) + return; + setArrivedState(_element); + } catch (e) { + onError(e); + } + }); + useEventListener( + element, + "scrollend", + onScrollEnd, + eventListenerOptions + ); + return { + x, + y, + isScrolling, + arrivedState, + directions, + measure() { + const _element = toValue(element); + if (window2 && _element) + setArrivedState(_element); + } + }; +} +function resolveElement(el) { + if (typeof Window !== "undefined" && el instanceof Window) + return el.document.documentElement; + if (typeof Document !== "undefined" && el instanceof Document) + return el.documentElement; + return el; +} +function useInfiniteScroll(element, onLoadMore, options = {}) { + var _a; + const { + direction = "bottom", + interval = 100, + canLoadMore = () => true + } = options; + const state = reactive(useScroll( + element, + { + ...options, + offset: { + [direction]: (_a = options.distance) != null ? _a : 0, + ...options.offset + } + } + )); + const promise = ref(); + const isLoading = computed(() => !!promise.value); + const observedElement = computed(() => { + return resolveElement(toValue(element)); + }); + const isElementVisible = useElementVisibility(observedElement); + function checkAndLoad() { + state.measure(); + if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) + return; + const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value; + const isNarrower = direction === "bottom" || direction === "top" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth; + if (state.arrivedState[direction] || isNarrower) { + if (!promise.value) { + promise.value = Promise.all([ + onLoadMore(state), + new Promise((resolve) => setTimeout(resolve, interval)) + ]).finally(() => { + promise.value = null; + nextTick(() => checkAndLoad()); + }); + } + } + } + watch( + () => [state.arrivedState[direction], isElementVisible.value], + checkAndLoad, + { immediate: true } + ); + return { + isLoading + }; +} +var defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"]; +function useKeyModifier(modifier, options = {}) { + const { + events: events2 = defaultEvents, + document: document2 = defaultDocument, + initial = null + } = options; + const state = ref(initial); + if (document2) { + events2.forEach((listenerEvent) => { + useEventListener(document2, listenerEvent, (evt) => { + if (typeof evt.getModifierState === "function") + state.value = evt.getModifierState(modifier); + }); + }); + } + return state; +} +function useLocalStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.localStorage, options); +} +var DefaultMagicKeysAliasMap = { + ctrl: "control", + command: "meta", + cmd: "meta", + option: "alt", + up: "arrowup", + down: "arrowdown", + left: "arrowleft", + right: "arrowright" +}; +function useMagicKeys(options = {}) { + const { + reactive: useReactive = false, + target = defaultWindow, + aliasMap = DefaultMagicKeysAliasMap, + passive = true, + onEventFired = noop + } = options; + const current = reactive(/* @__PURE__ */ new Set()); + const obj = { + toJSON() { + return {}; + }, + current + }; + const refs = useReactive ? reactive(obj) : obj; + const metaDeps = /* @__PURE__ */ new Set(); + const usedKeys = /* @__PURE__ */ new Set(); + function setRefs(key, value) { + if (key in refs) { + if (useReactive) + refs[key] = value; + else + refs[key].value = value; + } + } + function reset() { + current.clear(); + for (const key of usedKeys) + setRefs(key, false); + } + function updateRefs(e, value) { + var _a, _b; + const key = (_a = e.key) == null ? void 0 : _a.toLowerCase(); + const code = (_b = e.code) == null ? void 0 : _b.toLowerCase(); + const values = [code, key].filter(Boolean); + if (key) { + if (value) + current.add(key); + else + current.delete(key); + } + for (const key2 of values) { + usedKeys.add(key2); + setRefs(key2, value); + } + if (key === "meta" && !value) { + metaDeps.forEach((key2) => { + current.delete(key2); + setRefs(key2, false); + }); + metaDeps.clear(); + } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) { + [...current, ...values].forEach((key2) => metaDeps.add(key2)); + } + } + useEventListener(target, "keydown", (e) => { + updateRefs(e, true); + return onEventFired(e); + }, { passive }); + useEventListener(target, "keyup", (e) => { + updateRefs(e, false); + return onEventFired(e); + }, { passive }); + useEventListener("blur", reset, { passive: true }); + useEventListener("focus", reset, { passive: true }); + const proxy = new Proxy( + refs, + { + get(target2, prop, rec) { + if (typeof prop !== "string") + return Reflect.get(target2, prop, rec); + prop = prop.toLowerCase(); + if (prop in aliasMap) + prop = aliasMap[prop]; + if (!(prop in refs)) { + if (/[+_-]/.test(prop)) { + const keys2 = prop.split(/[+_-]/g).map((i) => i.trim()); + refs[prop] = computed(() => keys2.every((key) => toValue(proxy[key]))); + } else { + refs[prop] = ref(false); + } + } + const r = Reflect.get(target2, prop, rec); + return useReactive ? toValue(r) : r; + } + } + ); + return proxy; +} +function usingElRef(source, cb) { + if (toValue(source)) + cb(toValue(source)); +} +function timeRangeToArray(timeRanges) { + let ranges = []; + for (let i = 0; i < timeRanges.length; ++i) + ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]]; + return ranges; +} +function tracksToArray(tracks) { + return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType })); +} +var defaultOptions = { + src: "", + tracks: [] +}; +function useMediaControls(target, options = {}) { + options = { + ...defaultOptions, + ...options + }; + const { + document: document2 = defaultDocument + } = options; + const currentTime = ref(0); + const duration = ref(0); + const seeking = ref(false); + const volume = ref(1); + const waiting = ref(false); + const ended = ref(false); + const playing = ref(false); + const rate = ref(1); + const stalled = ref(false); + const buffered = ref([]); + const tracks = ref([]); + const selectedTrack = ref(-1); + const isPictureInPicture = ref(false); + const muted = ref(false); + const supportsPictureInPicture = document2 && "pictureInPictureEnabled" in document2; + const sourceErrorEvent = createEventHook(); + const disableTrack = (track) => { + usingElRef(target, (el) => { + if (track) { + const id = typeof track === "number" ? track : track.id; + el.textTracks[id].mode = "disabled"; + } else { + for (let i = 0; i < el.textTracks.length; ++i) + el.textTracks[i].mode = "disabled"; + } + selectedTrack.value = -1; + }); + }; + const enableTrack = (track, disableTracks = true) => { + usingElRef(target, (el) => { + const id = typeof track === "number" ? track : track.id; + if (disableTracks) + disableTrack(); + el.textTracks[id].mode = "showing"; + selectedTrack.value = id; + }); + }; + const togglePictureInPicture = () => { + return new Promise((resolve, reject) => { + usingElRef(target, async (el) => { + if (supportsPictureInPicture) { + if (!isPictureInPicture.value) { + el.requestPictureInPicture().then(resolve).catch(reject); + } else { + document2.exitPictureInPicture().then(resolve).catch(reject); + } + } + }); + }); + }; + watchEffect(() => { + if (!document2) + return; + const el = toValue(target); + if (!el) + return; + const src = toValue(options.src); + let sources = []; + if (!src) + return; + if (typeof src === "string") + sources = [{ src }]; + else if (Array.isArray(src)) + sources = src; + else if (isObject(src)) + sources = [src]; + el.querySelectorAll("source").forEach((e) => { + e.removeEventListener("error", sourceErrorEvent.trigger); + e.remove(); + }); + sources.forEach(({ src: src2, type }) => { + const source = document2.createElement("source"); + source.setAttribute("src", src2); + source.setAttribute("type", type || ""); + source.addEventListener("error", sourceErrorEvent.trigger); + el.appendChild(source); + }); + el.load(); + }); + tryOnScopeDispose(() => { + const el = toValue(target); + if (!el) + return; + el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger)); + }); + watch([target, volume], () => { + const el = toValue(target); + if (!el) + return; + el.volume = volume.value; + }); + watch([target, muted], () => { + const el = toValue(target); + if (!el) + return; + el.muted = muted.value; + }); + watch([target, rate], () => { + const el = toValue(target); + if (!el) + return; + el.playbackRate = rate.value; + }); + watchEffect(() => { + if (!document2) + return; + const textTracks = toValue(options.tracks); + const el = toValue(target); + if (!textTracks || !textTracks.length || !el) + return; + el.querySelectorAll("track").forEach((e) => e.remove()); + textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => { + const track = document2.createElement("track"); + track.default = isDefault || false; + track.kind = kind; + track.label = label; + track.src = src; + track.srclang = srcLang; + if (track.default) + selectedTrack.value = i; + el.appendChild(track); + }); + }); + const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => { + const el = toValue(target); + if (!el) + return; + el.currentTime = time; + }); + const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => { + const el = toValue(target); + if (!el) + return; + isPlaying ? el.play() : el.pause(); + }); + useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime)); + useEventListener(target, "durationchange", () => duration.value = toValue(target).duration); + useEventListener(target, "progress", () => buffered.value = timeRangeToArray(toValue(target).buffered)); + useEventListener(target, "seeking", () => seeking.value = true); + useEventListener(target, "seeked", () => seeking.value = false); + useEventListener(target, ["waiting", "loadstart"], () => { + waiting.value = true; + ignorePlayingUpdates(() => playing.value = false); + }); + useEventListener(target, "loadeddata", () => waiting.value = false); + useEventListener(target, "playing", () => { + waiting.value = false; + ended.value = false; + ignorePlayingUpdates(() => playing.value = true); + }); + useEventListener(target, "ratechange", () => rate.value = toValue(target).playbackRate); + useEventListener(target, "stalled", () => stalled.value = true); + useEventListener(target, "ended", () => ended.value = true); + useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false)); + useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true)); + useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true); + useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false); + useEventListener(target, "volumechange", () => { + const el = toValue(target); + if (!el) + return; + volume.value = el.volume; + muted.value = el.muted; + }); + const listeners = []; + const stop = watch([target], () => { + const el = toValue(target); + if (!el) + return; + stop(); + listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks)); + }); + tryOnScopeDispose(() => listeners.forEach((listener) => listener())); + return { + currentTime, + duration, + waiting, + seeking, + ended, + stalled, + buffered, + playing, + rate, + // Volume + volume, + muted, + // Tracks + tracks, + selectedTrack, + enableTrack, + disableTrack, + // Picture in Picture + supportsPictureInPicture, + togglePictureInPicture, + isPictureInPicture, + // Events + onSourceError: sourceErrorEvent.on + }; +} +function getMapVue2Compat() { + const data = shallowReactive({}); + return { + get: (key) => data[key], + set: (key, value) => set(data, key, value), + has: (key) => hasOwn(data, key), + delete: (key) => del(data, key), + clear: () => { + Object.keys(data).forEach((key) => { + del(data, key); + }); + } + }; +} +function useMemoize(resolver, options) { + const initCache = () => { + if (options == null ? void 0 : options.cache) + return shallowReactive(options.cache); + if (isVue2) + return getMapVue2Compat(); + return shallowReactive(/* @__PURE__ */ new Map()); + }; + const cache = initCache(); + const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args); + const _loadData = (key, ...args) => { + cache.set(key, resolver(...args)); + return cache.get(key); + }; + const loadData = (...args) => _loadData(generateKey(...args), ...args); + const deleteData = (...args) => { + cache.delete(generateKey(...args)); + }; + const clearData = () => { + cache.clear(); + }; + const memoized = (...args) => { + const key = generateKey(...args); + if (cache.has(key)) + return cache.get(key); + return _loadData(key, ...args); + }; + memoized.load = loadData; + memoized.delete = deleteData; + memoized.clear = clearData; + memoized.generateKey = generateKey; + memoized.cache = cache; + return memoized; +} +function useMemory(options = {}) { + const memory = ref(); + const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance); + if (isSupported.value) { + const { interval = 1e3 } = options; + useIntervalFn(() => { + memory.value = performance.memory; + }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback }); + } + return { isSupported, memory }; +} +var UseMouseBuiltinExtractors = { + page: (event) => [event.pageX, event.pageY], + client: (event) => [event.clientX, event.clientY], + screen: (event) => [event.screenX, event.screenY], + movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY] +}; +function useMouse(options = {}) { + const { + type = "page", + touch = true, + resetOnTouchEnds = false, + initialValue = { x: 0, y: 0 }, + window: window2 = defaultWindow, + target = window2, + scroll = true, + eventFilter + } = options; + let _prevMouseEvent = null; + const x = ref(initialValue.x); + const y = ref(initialValue.y); + const sourceType = ref(null); + const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type]; + const mouseHandler = (event) => { + const result = extractor(event); + _prevMouseEvent = event; + if (result) { + [x.value, y.value] = result; + sourceType.value = "mouse"; + } + }; + const touchHandler = (event) => { + if (event.touches.length > 0) { + const result = extractor(event.touches[0]); + if (result) { + [x.value, y.value] = result; + sourceType.value = "touch"; + } + } + }; + const scrollHandler = () => { + if (!_prevMouseEvent || !window2) + return; + const pos = extractor(_prevMouseEvent); + if (_prevMouseEvent instanceof MouseEvent && pos) { + x.value = pos[0] + window2.scrollX; + y.value = pos[1] + window2.scrollY; + } + }; + const reset = () => { + x.value = initialValue.x; + y.value = initialValue.y; + }; + const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event); + const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event); + const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler(); + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions); + if (touch && type !== "movement") { + useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions); + if (resetOnTouchEnds) + useEventListener(target, "touchend", reset, listenerOptions); + } + if (scroll && type === "page") + useEventListener(window2, "scroll", scrollHandlerWrapper, { passive: true }); + } + return { + x, + y, + sourceType + }; +} +function useMouseInElement(target, options = {}) { + const { + handleOutside = true, + window: window2 = defaultWindow + } = options; + const type = options.type || "page"; + const { x, y, sourceType } = useMouse(options); + const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body); + const elementX = ref(0); + const elementY = ref(0); + const elementPositionX = ref(0); + const elementPositionY = ref(0); + const elementHeight = ref(0); + const elementWidth = ref(0); + const isOutside = ref(true); + let stop = () => { + }; + if (window2) { + stop = watch( + [targetRef, x, y], + () => { + const el = unrefElement(targetRef); + if (!el) + return; + const { + left, + top, + width, + height + } = el.getBoundingClientRect(); + elementPositionX.value = left + (type === "page" ? window2.pageXOffset : 0); + elementPositionY.value = top + (type === "page" ? window2.pageYOffset : 0); + elementHeight.value = height; + elementWidth.value = width; + const elX = x.value - elementPositionX.value; + const elY = y.value - elementPositionY.value; + isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height; + if (handleOutside || !isOutside.value) { + elementX.value = elX; + elementY.value = elY; + } + }, + { immediate: true } + ); + useEventListener(document, "mouseleave", () => { + isOutside.value = true; + }); + } + return { + x, + y, + sourceType, + elementX, + elementY, + elementPositionX, + elementPositionY, + elementHeight, + elementWidth, + isOutside, + stop + }; +} +function useMousePressed(options = {}) { + const { + touch = true, + drag = true, + capture = false, + initialValue = false, + window: window2 = defaultWindow + } = options; + const pressed = ref(initialValue); + const sourceType = ref(null); + if (!window2) { + return { + pressed, + sourceType + }; + } + const onPressed = (srcType) => () => { + pressed.value = true; + sourceType.value = srcType; + }; + const onReleased = () => { + pressed.value = false; + sourceType.value = null; + }; + const target = computed(() => unrefElement(options.target) || window2); + useEventListener(target, "mousedown", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "mouseleave", onReleased, { passive: true, capture }); + useEventListener(window2, "mouseup", onReleased, { passive: true, capture }); + if (drag) { + useEventListener(target, "dragstart", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "drop", onReleased, { passive: true, capture }); + useEventListener(window2, "dragend", onReleased, { passive: true, capture }); + } + if (touch) { + useEventListener(target, "touchstart", onPressed("touch"), { passive: true, capture }); + useEventListener(window2, "touchend", onReleased, { passive: true, capture }); + useEventListener(window2, "touchcancel", onReleased, { passive: true, capture }); + } + return { + pressed, + sourceType + }; +} +function useNavigatorLanguage(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "language" in navigator); + const language = ref(navigator == null ? void 0 : navigator.language); + useEventListener(window2, "languagechange", () => { + if (navigator) + language.value = navigator.language; + }); + return { + isSupported, + language + }; +} +function useNetwork(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "connection" in navigator); + const isOnline = ref(true); + const saveData = ref(false); + const offlineAt = ref(void 0); + const onlineAt = ref(void 0); + const downlink = ref(void 0); + const downlinkMax = ref(void 0); + const rtt = ref(void 0); + const effectiveType = ref(void 0); + const type = ref("unknown"); + const connection = isSupported.value && navigator.connection; + function updateNetworkInformation() { + if (!navigator) + return; + isOnline.value = navigator.onLine; + offlineAt.value = isOnline.value ? void 0 : Date.now(); + onlineAt.value = isOnline.value ? Date.now() : void 0; + if (connection) { + downlink.value = connection.downlink; + downlinkMax.value = connection.downlinkMax; + effectiveType.value = connection.effectiveType; + rtt.value = connection.rtt; + saveData.value = connection.saveData; + type.value = connection.type; + } + } + if (window2) { + useEventListener(window2, "offline", () => { + isOnline.value = false; + offlineAt.value = Date.now(); + }); + useEventListener(window2, "online", () => { + isOnline.value = true; + onlineAt.value = Date.now(); + }); + } + if (connection) + useEventListener(connection, "change", updateNetworkInformation, false); + updateNetworkInformation(); + return { + isSupported, + isOnline, + saveData, + offlineAt, + onlineAt, + downlink, + downlinkMax, + effectiveType, + rtt, + type + }; +} +function useNow(options = {}) { + const { + controls: exposeControls = false, + interval = "requestAnimationFrame" + } = options; + const now2 = ref(/* @__PURE__ */ new Date()); + const update = () => now2.value = /* @__PURE__ */ new Date(); + const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true }); + if (exposeControls) { + return { + now: now2, + ...controls + }; + } else { + return now2; + } +} +function useObjectUrl(object) { + const url = ref(); + const release = () => { + if (url.value) + URL.revokeObjectURL(url.value); + url.value = void 0; + }; + watch( + () => toValue(object), + (newObject) => { + release(); + if (newObject) + url.value = URL.createObjectURL(newObject); + }, + { immediate: true } + ); + tryOnScopeDispose(release); + return readonly(url); +} +function useClamp(value, min, max) { + if (typeof value === "function" || isReadonly(value)) + return computed(() => clamp(toValue(value), toValue(min), toValue(max))); + const _value = ref(value); + return computed({ + get() { + return _value.value = clamp(_value.value, toValue(min), toValue(max)); + }, + set(value2) { + _value.value = clamp(value2, toValue(min), toValue(max)); + } + }); +} +function useOffsetPagination(options) { + const { + total = Number.POSITIVE_INFINITY, + pageSize = 10, + page = 1, + onPageChange = noop, + onPageSizeChange = noop, + onPageCountChange = noop + } = options; + const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY); + const pageCount = computed(() => Math.max( + 1, + Math.ceil(toValue(total) / toValue(currentPageSize)) + )); + const currentPage = useClamp(page, 1, pageCount); + const isFirstPage = computed(() => currentPage.value === 1); + const isLastPage = computed(() => currentPage.value === pageCount.value); + if (isRef(page)) { + syncRef(page, currentPage, { + direction: isReadonly(page) ? "ltr" : "both" + }); + } + if (isRef(pageSize)) { + syncRef(pageSize, currentPageSize, { + direction: isReadonly(pageSize) ? "ltr" : "both" + }); + } + function prev() { + currentPage.value--; + } + function next() { + currentPage.value++; + } + const returnValue = { + currentPage, + currentPageSize, + pageCount, + isFirstPage, + isLastPage, + prev, + next + }; + watch(currentPage, () => { + onPageChange(reactive(returnValue)); + }); + watch(currentPageSize, () => { + onPageSizeChange(reactive(returnValue)); + }); + watch(pageCount, () => { + onPageCountChange(reactive(returnValue)); + }); + return returnValue; +} +function useOnline(options = {}) { + const { isOnline } = useNetwork(options); + return isOnline; +} +function usePageLeave(options = {}) { + const { window: window2 = defaultWindow } = options; + const isLeft = ref(false); + const handler = (event) => { + if (!window2) + return; + event = event || window2.event; + const from = event.relatedTarget || event.toElement; + isLeft.value = !from; + }; + if (window2) { + useEventListener(window2, "mouseout", handler, { passive: true }); + useEventListener(window2.document, "mouseleave", handler, { passive: true }); + useEventListener(window2.document, "mouseenter", handler, { passive: true }); + } + return isLeft; +} +function useScreenOrientation(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "screen" in window2 && "orientation" in window2.screen); + const screenOrientation = isSupported.value ? window2.screen.orientation : {}; + const orientation = ref(screenOrientation.type); + const angle = ref(screenOrientation.angle || 0); + if (isSupported.value) { + useEventListener(window2, "orientationchange", () => { + orientation.value = screenOrientation.type; + angle.value = screenOrientation.angle; + }); + } + const lockOrientation = (type) => { + if (isSupported.value && typeof screenOrientation.lock === "function") + return screenOrientation.lock(type); + return Promise.reject(new Error("Not supported")); + }; + const unlockOrientation = () => { + if (isSupported.value && typeof screenOrientation.unlock === "function") + screenOrientation.unlock(); + }; + return { + isSupported, + orientation, + angle, + lockOrientation, + unlockOrientation + }; +} +function useParallax(target, options = {}) { + const { + deviceOrientationTiltAdjust = (i) => i, + deviceOrientationRollAdjust = (i) => i, + mouseTiltAdjust = (i) => i, + mouseRollAdjust = (i) => i, + window: window2 = defaultWindow + } = options; + const orientation = reactive(useDeviceOrientation({ window: window2 })); + const screenOrientation = reactive(useScreenOrientation({ window: window2 })); + const { + elementX: x, + elementY: y, + elementWidth: width, + elementHeight: height + } = useMouseInElement(target, { handleOutside: false, window: window2 }); + const source = computed(() => { + if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) + return "deviceOrientation"; + return "mouse"; + }); + const roll = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.gamma / 90; + break; + case "landscape-secondary": + value = -orientation.gamma / 90; + break; + case "portrait-primary": + value = -orientation.beta / 90; + break; + case "portrait-secondary": + value = orientation.beta / 90; + break; + default: + value = -orientation.beta / 90; + } + return deviceOrientationRollAdjust(value); + } else { + const value = -(y.value - height.value / 2) / height.value; + return mouseRollAdjust(value); + } + }); + const tilt = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.beta / 90; + break; + case "landscape-secondary": + value = -orientation.beta / 90; + break; + case "portrait-primary": + value = orientation.gamma / 90; + break; + case "portrait-secondary": + value = -orientation.gamma / 90; + break; + default: + value = orientation.gamma / 90; + } + return deviceOrientationTiltAdjust(value); + } else { + const value = (x.value - width.value / 2) / width.value; + return mouseTiltAdjust(value); + } + }); + return { roll, tilt, source }; +} +function useParentElement(element = useCurrentElement()) { + const parentElement = shallowRef(); + const update = () => { + const el = unrefElement(element); + if (el) + parentElement.value = el.parentElement; + }; + tryOnMounted(update); + watch(() => toValue(element), update); + return parentElement; +} +function usePerformanceObserver(options, callback) { + const { + window: window2 = defaultWindow, + immediate = true, + ...performanceOptions + } = options; + const isSupported = useSupported(() => window2 && "PerformanceObserver" in window2); + let observer; + const stop = () => { + observer == null ? void 0 : observer.disconnect(); + }; + const start = () => { + if (isSupported.value) { + stop(); + observer = new PerformanceObserver(callback); + observer.observe(performanceOptions); + } + }; + tryOnScopeDispose(stop); + if (immediate) + start(); + return { + isSupported, + start, + stop + }; +} +var defaultState = { + x: 0, + y: 0, + pointerId: 0, + pressure: 0, + tiltX: 0, + tiltY: 0, + width: 0, + height: 0, + twist: 0, + pointerType: null +}; +var keys = Object.keys(defaultState); +function usePointer(options = {}) { + const { + target = defaultWindow + } = options; + const isInside = ref(false); + const state = ref(options.initialValue || {}); + Object.assign(state.value, defaultState, state.value); + const handler = (event) => { + isInside.value = true; + if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) + return; + state.value = objectPick(event, keys, false); + }; + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["pointerdown", "pointermove", "pointerup"], handler, listenerOptions); + useEventListener(target, "pointerleave", () => isInside.value = false, listenerOptions); + } + return { + ...toRefs2(state), + isInside + }; +} +function usePointerLock(target, options = {}) { + const { document: document2 = defaultDocument } = options; + const isSupported = useSupported(() => document2 && "pointerLockElement" in document2); + const element = ref(); + const triggerElement = ref(); + let targetElement; + if (isSupported.value) { + useEventListener(document2, "pointerlockchange", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + element.value = document2.pointerLockElement; + if (!element.value) + targetElement = triggerElement.value = null; + } + }); + useEventListener(document2, "pointerlockerror", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + const action = document2.pointerLockElement ? "release" : "acquire"; + throw new Error(`Failed to ${action} pointer lock.`); + } + }); + } + async function lock(e) { + var _a; + if (!isSupported.value) + throw new Error("Pointer Lock API is not supported by your browser."); + triggerElement.value = e instanceof Event ? e.currentTarget : null; + targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e); + if (!targetElement) + throw new Error("Target element undefined."); + targetElement.requestPointerLock(); + return await until(element).toBe(targetElement); + } + async function unlock() { + if (!element.value) + return false; + document2.exitPointerLock(); + await until(element).toBeNull(); + return true; + } + return { + isSupported, + element, + triggerElement, + lock, + unlock + }; +} +function usePointerSwipe(target, options = {}) { + const targetRef = toRef2(target); + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + disableTextSelect = false + } = options; + const posStart = reactive({ x: 0, y: 0 }); + const updatePosStart = (x, y) => { + posStart.x = x; + posStart.y = y; + }; + const posEnd = reactive({ x: 0, y: 0 }); + const updatePosEnd = (x, y) => { + posEnd.x = x; + posEnd.y = y; + }; + const distanceX = computed(() => posStart.x - posEnd.x); + const distanceY = computed(() => posStart.y - posEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold); + const isSwiping = ref(false); + const isPointerDown = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(distanceX.value) > abs(distanceY.value)) { + return distanceX.value > 0 ? "left" : "right"; + } else { + return distanceY.value > 0 ? "up" : "down"; + } + }); + const eventIsAllowed = (e) => { + var _a, _b, _c; + const isReleasingButton = e.buttons === 0; + const isPrimaryButton = e.buttons === 1; + return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true; + }; + const stops = [ + useEventListener(target, "pointerdown", (e) => { + if (!eventIsAllowed(e)) + return; + isPointerDown.value = true; + const eventTarget = e.target; + eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId); + const { clientX: x, clientY: y } = e; + updatePosStart(x, y); + updatePosEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }), + useEventListener(target, "pointermove", (e) => { + if (!eventIsAllowed(e)) + return; + if (!isPointerDown.value) + return; + const { clientX: x, clientY: y } = e; + updatePosEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }), + useEventListener(target, "pointerup", (e) => { + if (!eventIsAllowed(e)) + return; + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isPointerDown.value = false; + isSwiping.value = false; + }) + ]; + tryOnMounted(() => { + var _a, _b, _c, _d, _e, _f, _g, _h; + (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none"); + if (disableTextSelect) { + (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty("-webkit-user-select", "none"); + (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty("-ms-user-select", "none"); + (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty("user-select", "none"); + } + }); + const stop = () => stops.forEach((s) => s()); + return { + isSwiping: readonly(isSwiping), + direction: readonly(direction), + posStart: readonly(posStart), + posEnd: readonly(posEnd), + distanceX, + distanceY, + stop + }; +} +function usePreferredColorScheme(options) { + const isLight = useMediaQuery("(prefers-color-scheme: light)", options); + const isDark = useMediaQuery("(prefers-color-scheme: dark)", options); + return computed(() => { + if (isDark.value) + return "dark"; + if (isLight.value) + return "light"; + return "no-preference"; + }); +} +function usePreferredContrast(options) { + const isMore = useMediaQuery("(prefers-contrast: more)", options); + const isLess = useMediaQuery("(prefers-contrast: less)", options); + const isCustom = useMediaQuery("(prefers-contrast: custom)", options); + return computed(() => { + if (isMore.value) + return "more"; + if (isLess.value) + return "less"; + if (isCustom.value) + return "custom"; + return "no-preference"; + }); +} +function usePreferredLanguages(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(["en"]); + const navigator = window2.navigator; + const value = ref(navigator.languages); + useEventListener(window2, "languagechange", () => { + value.value = navigator.languages; + }); + return value; +} +function usePreferredReducedMotion(options) { + const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options); + return computed(() => { + if (isReduced.value) + return "reduce"; + return "no-preference"; + }); +} +function usePrevious(value, initialValue) { + const previous = shallowRef(initialValue); + watch( + toRef2(value), + (_, oldValue) => { + previous.value = oldValue; + }, + { flush: "sync" } + ); + return readonly(previous); +} +var topVarName = "--vueuse-safe-area-top"; +var rightVarName = "--vueuse-safe-area-right"; +var bottomVarName = "--vueuse-safe-area-bottom"; +var leftVarName = "--vueuse-safe-area-left"; +function useScreenSafeArea() { + const top = ref(""); + const right = ref(""); + const bottom = ref(""); + const left = ref(""); + if (isClient) { + const topCssVar = useCssVar(topVarName); + const rightCssVar = useCssVar(rightVarName); + const bottomCssVar = useCssVar(bottomVarName); + const leftCssVar = useCssVar(leftVarName); + topCssVar.value = "env(safe-area-inset-top, 0px)"; + rightCssVar.value = "env(safe-area-inset-right, 0px)"; + bottomCssVar.value = "env(safe-area-inset-bottom, 0px)"; + leftCssVar.value = "env(safe-area-inset-left, 0px)"; + update(); + useEventListener("resize", useDebounceFn(update)); + } + function update() { + top.value = getValue(topVarName); + right.value = getValue(rightVarName); + bottom.value = getValue(bottomVarName); + left.value = getValue(leftVarName); + } + return { + top, + right, + bottom, + left, + update + }; +} +function getValue(position) { + return getComputedStyle(document.documentElement).getPropertyValue(position); +} +function useScriptTag(src, onLoaded = noop, options = {}) { + const { + immediate = true, + manual = false, + type = "text/javascript", + async = true, + crossOrigin, + referrerPolicy, + noModule, + defer, + document: document2 = defaultDocument, + attrs = {} + } = options; + const scriptTag = ref(null); + let _promise = null; + const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => { + const resolveWithElement = (el2) => { + scriptTag.value = el2; + resolve(el2); + return el2; + }; + if (!document2) { + resolve(false); + return; + } + let shouldAppend = false; + let el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (!el) { + el = document2.createElement("script"); + el.type = type; + el.async = async; + el.src = toValue(src); + if (defer) + el.defer = defer; + if (crossOrigin) + el.crossOrigin = crossOrigin; + if (noModule) + el.noModule = noModule; + if (referrerPolicy) + el.referrerPolicy = referrerPolicy; + Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value)); + shouldAppend = true; + } else if (el.hasAttribute("data-loaded")) { + resolveWithElement(el); + } + el.addEventListener("error", (event) => reject(event)); + el.addEventListener("abort", (event) => reject(event)); + el.addEventListener("load", () => { + el.setAttribute("data-loaded", "true"); + onLoaded(el); + resolveWithElement(el); + }); + if (shouldAppend) + el = document2.head.appendChild(el); + if (!waitForScriptLoad) + resolveWithElement(el); + }); + const load = (waitForScriptLoad = true) => { + if (!_promise) + _promise = loadScript(waitForScriptLoad); + return _promise; + }; + const unload = () => { + if (!document2) + return; + _promise = null; + if (scriptTag.value) + scriptTag.value = null; + const el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (el) + document2.head.removeChild(el); + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnUnmounted(unload); + return { scriptTag, load, unload }; +} +function checkOverflowScroll(ele) { + const style = window.getComputedStyle(ele); + if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) { + return true; + } else { + const parent = ele.parentNode; + if (!parent || parent.tagName === "BODY") + return false; + return checkOverflowScroll(parent); + } +} +function preventDefault(rawEvent) { + const e = rawEvent || window.event; + const _target = e.target; + if (checkOverflowScroll(_target)) + return false; + if (e.touches.length > 1) + return true; + if (e.preventDefault) + e.preventDefault(); + return false; +} +var elInitialOverflow = /* @__PURE__ */ new WeakMap(); +function useScrollLock(element, initialState = false) { + const isLocked = ref(initialState); + let stopTouchMoveListener = null; + let initialOverflow; + watch(toRef2(element), (el) => { + const target = resolveElement(toValue(el)); + if (target) { + const ele = target; + if (!elInitialOverflow.get(ele)) + elInitialOverflow.set(ele, initialOverflow); + if (isLocked.value) + ele.style.overflow = "hidden"; + } + }, { + immediate: true + }); + const lock = () => { + const el = resolveElement(toValue(element)); + if (!el || isLocked.value) + return; + if (isIOS) { + stopTouchMoveListener = useEventListener( + el, + "touchmove", + (e) => { + preventDefault(e); + }, + { passive: false } + ); + } + el.style.overflow = "hidden"; + isLocked.value = true; + }; + const unlock = () => { + var _a; + const el = resolveElement(toValue(element)); + if (!el || !isLocked.value) + return; + isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener()); + el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : ""; + elInitialOverflow.delete(el); + isLocked.value = false; + }; + tryOnScopeDispose(unlock); + return computed({ + get() { + return isLocked.value; + }, + set(v) { + if (v) + lock(); + else + unlock(); + } + }); +} +function useSessionStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.sessionStorage, options); +} +function useShare(shareOptions = {}, options = {}) { + const { navigator = defaultNavigator } = options; + const _navigator = navigator; + const isSupported = useSupported(() => _navigator && "canShare" in _navigator); + const share = async (overrideOptions = {}) => { + if (isSupported.value) { + const data = { + ...toValue(shareOptions), + ...toValue(overrideOptions) + }; + let granted = true; + if (data.files && _navigator.canShare) + granted = _navigator.canShare({ files: data.files }); + if (granted) + return _navigator.share(data); + } + }; + return { + isSupported, + share + }; +} +var defaultSortFn = (source, compareFn) => source.sort(compareFn); +var defaultCompare = (a, b) => a - b; +function useSorted(...args) { + var _a, _b, _c, _d; + const [source] = args; + let compareFn = defaultCompare; + let options = {}; + if (args.length === 2) { + if (typeof args[1] === "object") { + options = args[1]; + compareFn = (_a = options.compareFn) != null ? _a : defaultCompare; + } else { + compareFn = (_b = args[1]) != null ? _b : defaultCompare; + } + } else if (args.length > 2) { + compareFn = (_c = args[1]) != null ? _c : defaultCompare; + options = (_d = args[2]) != null ? _d : {}; + } + const { + dirty = false, + sortFn = defaultSortFn + } = options; + if (!dirty) + return computed(() => sortFn([...toValue(source)], compareFn)); + watchEffect(() => { + const result = sortFn(toValue(source), compareFn); + if (isRef(source)) + source.value = result; + else + source.splice(0, source.length, ...result); + }); + return source; +} +function useSpeechRecognition(options = {}) { + const { + interimResults = true, + continuous = true, + window: window2 = defaultWindow + } = options; + const lang = toRef2(options.lang || "en-US"); + const isListening = ref(false); + const isFinal = ref(false); + const result = ref(""); + const error = shallowRef(void 0); + const toggle = (value = !isListening.value) => { + isListening.value = value; + }; + const start = () => { + isListening.value = true; + }; + const stop = () => { + isListening.value = false; + }; + const SpeechRecognition = window2 && (window2.SpeechRecognition || window2.webkitSpeechRecognition); + const isSupported = useSupported(() => SpeechRecognition); + let recognition; + if (isSupported.value) { + recognition = new SpeechRecognition(); + recognition.continuous = continuous; + recognition.interimResults = interimResults; + recognition.lang = toValue(lang); + recognition.onstart = () => { + isFinal.value = false; + }; + watch(lang, (lang2) => { + if (recognition && !isListening.value) + recognition.lang = lang2; + }); + recognition.onresult = (event) => { + const transcript = Array.from(event.results).map((result2) => { + isFinal.value = result2.isFinal; + return result2[0]; + }).map((result2) => result2.transcript).join(""); + result.value = transcript; + error.value = void 0; + }; + recognition.onerror = (event) => { + error.value = event; + }; + recognition.onend = () => { + isListening.value = false; + recognition.lang = toValue(lang); + }; + watch(isListening, () => { + if (isListening.value) + recognition.start(); + else + recognition.stop(); + }); + } + tryOnScopeDispose(() => { + isListening.value = false; + }); + return { + isSupported, + isListening, + isFinal, + recognition, + result, + error, + toggle, + start, + stop + }; +} +function useSpeechSynthesis(text, options = {}) { + const { + pitch = 1, + rate = 1, + volume = 1, + window: window2 = defaultWindow + } = options; + const synth = window2 && window2.speechSynthesis; + const isSupported = useSupported(() => synth); + const isPlaying = ref(false); + const status = ref("init"); + const spokenText = toRef2(text || ""); + const lang = toRef2(options.lang || "en-US"); + const error = shallowRef(void 0); + const toggle = (value = !isPlaying.value) => { + isPlaying.value = value; + }; + const bindEventsForUtterance = (utterance2) => { + utterance2.lang = toValue(lang); + utterance2.voice = toValue(options.voice) || null; + utterance2.pitch = toValue(pitch); + utterance2.rate = toValue(rate); + utterance2.volume = volume; + utterance2.onstart = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onpause = () => { + isPlaying.value = false; + status.value = "pause"; + }; + utterance2.onresume = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onend = () => { + isPlaying.value = false; + status.value = "end"; + }; + utterance2.onerror = (event) => { + error.value = event; + }; + }; + const utterance = computed(() => { + isPlaying.value = false; + status.value = "init"; + const newUtterance = new SpeechSynthesisUtterance(spokenText.value); + bindEventsForUtterance(newUtterance); + return newUtterance; + }); + const speak = () => { + synth.cancel(); + utterance && synth.speak(utterance.value); + }; + const stop = () => { + synth.cancel(); + isPlaying.value = false; + }; + if (isSupported.value) { + bindEventsForUtterance(utterance.value); + watch(lang, (lang2) => { + if (utterance.value && !isPlaying.value) + utterance.value.lang = lang2; + }); + if (options.voice) { + watch(options.voice, () => { + synth.cancel(); + }); + } + watch(isPlaying, () => { + if (isPlaying.value) + synth.resume(); + else + synth.pause(); + }); + } + tryOnScopeDispose(() => { + isPlaying.value = false; + }); + return { + isSupported, + isPlaying, + status, + utterance, + error, + stop, + toggle, + speak + }; +} +function useStepper(steps, initialStep) { + const stepsRef = ref(steps); + const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value)); + const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0])); + const current = computed(() => at(index.value)); + const isFirst = computed(() => index.value === 0); + const isLast = computed(() => index.value === stepNames.value.length - 1); + const next = computed(() => stepNames.value[index.value + 1]); + const previous = computed(() => stepNames.value[index.value - 1]); + function at(index2) { + if (Array.isArray(stepsRef.value)) + return stepsRef.value[index2]; + return stepsRef.value[stepNames.value[index2]]; + } + function get2(step) { + if (!stepNames.value.includes(step)) + return; + return at(stepNames.value.indexOf(step)); + } + function goTo(step) { + if (stepNames.value.includes(step)) + index.value = stepNames.value.indexOf(step); + } + function goToNext() { + if (isLast.value) + return; + index.value++; + } + function goToPrevious() { + if (isFirst.value) + return; + index.value--; + } + function goBackTo(step) { + if (isAfter(step)) + goTo(step); + } + function isNext(step) { + return stepNames.value.indexOf(step) === index.value + 1; + } + function isPrevious(step) { + return stepNames.value.indexOf(step) === index.value - 1; + } + function isCurrent(step) { + return stepNames.value.indexOf(step) === index.value; + } + function isBefore(step) { + return index.value < stepNames.value.indexOf(step); + } + function isAfter(step) { + return index.value > stepNames.value.indexOf(step); + } + return { + steps: stepsRef, + stepNames, + index, + current, + next, + previous, + isFirst, + isLast, + at, + get: get2, + goTo, + goToNext, + goToPrevious, + goBackTo, + isNext, + isPrevious, + isCurrent, + isBefore, + isAfter + }; +} +function useStorageAsync(key, initialValue, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + } + } = options; + const rawInit = toValue(initialValue); + const type = guessSerializerType(rawInit); + const data = (shallow ? shallowRef : ref)(initialValue); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorageAsync", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + async function read(event) { + if (!storage || event && event.key !== key) + return; + try { + const rawValue = event ? event.newValue : await storage.getItem(key); + if (rawValue == null) { + data.value = rawInit; + if (writeDefaults && rawInit !== null) + await storage.setItem(key, await serializer.write(rawInit)); + } else if (mergeDefaults) { + const value = await serializer.read(rawValue); + if (typeof mergeDefaults === "function") + data.value = mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + data.value = { ...rawInit, ...value }; + else + data.value = value; + } else { + data.value = await serializer.read(rawValue); + } + } catch (e) { + onError(e); + } + } + read(); + if (window2 && listenToStorageChanges) + useEventListener(window2, "storage", (e) => Promise.resolve().then(() => read(e))); + if (storage) { + watchWithFilter( + data, + async () => { + try { + if (data.value == null) + await storage.removeItem(key); + else + await storage.setItem(key, await serializer.write(data.value)); + } catch (e) { + onError(e); + } + }, + { + flush, + deep, + eventFilter + } + ); + } + return data; +} +var _id = 0; +function useStyleTag(css, options = {}) { + const isLoaded = ref(false); + const { + document: document2 = defaultDocument, + immediate = true, + manual = false, + id = `vueuse_styletag_${++_id}` + } = options; + const cssRef = ref(css); + let stop = () => { + }; + const load = () => { + if (!document2) + return; + const el = document2.getElementById(id) || document2.createElement("style"); + if (!el.isConnected) { + el.id = id; + if (options.media) + el.media = options.media; + document2.head.appendChild(el); + } + if (isLoaded.value) + return; + stop = watch( + cssRef, + (value) => { + el.textContent = value; + }, + { immediate: true } + ); + isLoaded.value = true; + }; + const unload = () => { + if (!document2 || !isLoaded.value) + return; + stop(); + document2.head.removeChild(document2.getElementById(id)); + isLoaded.value = false; + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnScopeDispose(unload); + return { + id, + css: cssRef, + unload, + load, + isLoaded: readonly(isLoaded) + }; +} +function useSwipe(target, options = {}) { + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + passive = true, + window: window2 = defaultWindow + } = options; + const coordsStart = reactive({ x: 0, y: 0 }); + const coordsEnd = reactive({ x: 0, y: 0 }); + const diffX = computed(() => coordsStart.x - coordsEnd.x); + const diffY = computed(() => coordsStart.y - coordsEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold); + const isSwiping = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(diffX.value) > abs(diffY.value)) { + return diffX.value > 0 ? "left" : "right"; + } else { + return diffY.value > 0 ? "up" : "down"; + } + }); + const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY]; + const updateCoordsStart = (x, y) => { + coordsStart.x = x; + coordsStart.y = y; + }; + const updateCoordsEnd = (x, y) => { + coordsEnd.x = x; + coordsEnd.y = y; + }; + let listenerOptions; + const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document); + if (!passive) + listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true }; + else + listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false }; + const onTouchEnd = (e) => { + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isSwiping.value = false; + }; + const stops = [ + useEventListener(target, "touchstart", (e) => { + if (e.touches.length !== 1) + return; + if (listenerOptions.capture && !listenerOptions.passive) + e.preventDefault(); + const [x, y] = getTouchEventCoords(e); + updateCoordsStart(x, y); + updateCoordsEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }, listenerOptions), + useEventListener(target, "touchmove", (e) => { + if (e.touches.length !== 1) + return; + const [x, y] = getTouchEventCoords(e); + updateCoordsEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }, listenerOptions), + useEventListener(target, ["touchend", "touchcancel"], onTouchEnd, listenerOptions) + ]; + const stop = () => stops.forEach((s) => s()); + return { + isPassiveEventSupported, + isSwiping, + direction, + coordsStart, + coordsEnd, + lengthX: diffX, + lengthY: diffY, + stop + }; +} +function checkPassiveEventSupport(document2) { + if (!document2) + return false; + let supportsPassive = false; + const optionsBlock = { + get passive() { + supportsPassive = true; + return false; + } + }; + document2.addEventListener("x", noop, optionsBlock); + document2.removeEventListener("x", noop); + return supportsPassive; +} +function useTemplateRefsList() { + const refs = ref([]); + refs.value.set = (el) => { + if (el) + refs.value.push(el); + }; + onBeforeUpdate(() => { + refs.value.length = 0; + }); + return refs; +} +function useTextDirection(options = {}) { + const { + document: document2 = defaultDocument, + selector = "html", + observe = false, + initialValue = "ltr" + } = options; + function getValue2() { + var _a, _b; + return (_b = (_a = document2 == null ? void 0 : document2.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue; + } + const dir = ref(getValue2()); + tryOnMounted(() => dir.value = getValue2()); + if (observe && document2) { + useMutationObserver( + document2.querySelector(selector), + () => dir.value = getValue2(), + { attributes: true } + ); + } + return computed({ + get() { + return dir.value; + }, + set(v) { + var _a, _b; + dir.value = v; + if (!document2) + return; + if (dir.value) + (_a = document2.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value); + else + (_b = document2.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir"); + } + }); +} +function getRangesFromSelection(selection) { + var _a; + const rangeCount = (_a = selection.rangeCount) != null ? _a : 0; + return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i)); +} +function useTextSelection(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const selection = ref(null); + const text = computed(() => { + var _a, _b; + return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : ""; + }); + const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []); + const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect())); + function onSelectionChange() { + selection.value = null; + if (window2) + selection.value = window2.getSelection(); + } + if (window2) + useEventListener(window2.document, "selectionchange", onSelectionChange); + return { + text, + rects, + ranges, + selection + }; +} +function useTextareaAutosize(options) { + var _a; + const textarea = ref(options == null ? void 0 : options.element); + const input = ref(options == null ? void 0 : options.input); + const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : "height"; + const textareaScrollHeight = ref(1); + function triggerResize() { + var _a2, _b; + if (!textarea.value) + return; + let height = ""; + textarea.value.style[styleProp] = "1px"; + textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight; + if (options == null ? void 0 : options.styleTarget) + toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`; + else + height = `${textareaScrollHeight.value}px`; + textarea.value.style[styleProp] = height; + (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options); + } + watch([input, textarea], () => nextTick(triggerResize), { immediate: true }); + useResizeObserver(textarea, () => triggerResize()); + if (options == null ? void 0 : options.watch) + watch(options.watch, triggerResize, { immediate: true, deep: true }); + return { + textarea, + input, + triggerResize + }; +} +function useThrottledRefHistory(source, options = {}) { + const { throttle = 200, trailing = true } = options; + const filter = throttleFilter(throttle, trailing); + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +var DEFAULT_UNITS = [ + { max: 6e4, value: 1e3, name: "second" }, + { max: 276e4, value: 6e4, name: "minute" }, + { max: 72e6, value: 36e5, name: "hour" }, + { max: 5184e5, value: 864e5, name: "day" }, + { max: 24192e5, value: 6048e5, name: "week" }, + { max: 28512e6, value: 2592e6, name: "month" }, + { max: Number.POSITIVE_INFINITY, value: 31536e6, name: "year" } +]; +var DEFAULT_MESSAGES = { + justNow: "just now", + past: (n) => n.match(/\d/) ? `${n} ago` : n, + future: (n) => n.match(/\d/) ? `in ${n}` : n, + month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`, + year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`, + day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`, + week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`, + hour: (n) => `${n} hour${n > 1 ? "s" : ""}`, + minute: (n) => `${n} minute${n > 1 ? "s" : ""}`, + second: (n) => `${n} second${n > 1 ? "s" : ""}`, + invalid: "" +}; +function DEFAULT_FORMATTER(date) { + return date.toISOString().slice(0, 10); +} +function useTimeAgo(time, options = {}) { + const { + controls: exposeControls = false, + updateInterval = 3e4 + } = options; + const { now: now2, ...controls } = useNow({ interval: updateInterval, controls: true }); + const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now2))); + if (exposeControls) { + return { + timeAgo, + ...controls + }; + } else { + return timeAgo; + } +} +function formatTimeAgo(from, options = {}, now2 = Date.now()) { + var _a; + const { + max, + messages = DEFAULT_MESSAGES, + fullDateFormatter = DEFAULT_FORMATTER, + units = DEFAULT_UNITS, + showSecond = false, + rounding = "round" + } = options; + const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding]; + const diff = +now2 - +from; + const absDiff = Math.abs(diff); + function getValue2(diff2, unit) { + return roundFn(Math.abs(diff2) / unit.value); + } + function format(diff2, unit) { + const val = getValue2(diff2, unit); + const past = diff2 > 0; + const str = applyFormat(unit.name, val, past); + return applyFormat(past ? "past" : "future", str, past); + } + function applyFormat(name, val, isPast) { + const formatter = messages[name]; + if (typeof formatter === "function") + return formatter(val, isPast); + return formatter.replace("{0}", val.toString()); + } + if (absDiff < 6e4 && !showSecond) + return messages.justNow; + if (typeof max === "number" && absDiff > max) + return fullDateFormatter(new Date(from)); + if (typeof max === "string") { + const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max; + if (unitMax && absDiff > unitMax) + return fullDateFormatter(new Date(from)); + } + for (const [idx, unit] of units.entries()) { + const val = getValue2(diff, unit); + if (val <= 0 && units[idx - 1]) + return format(diff, units[idx - 1]); + if (absDiff < unit.max) + return format(diff, unit); + } + return messages.invalid; +} +function useTimeoutPoll(fn, interval, timeoutPollOptions) { + const { start } = useTimeoutFn(loop, interval, { immediate: false }); + const isActive = ref(false); + async function loop() { + if (!isActive.value) + return; + await fn(); + start(); + } + function resume() { + if (!isActive.value) { + isActive.value = true; + loop(); + } + } + function pause() { + isActive.value = false; + } + if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useTimestamp(options = {}) { + const { + controls: exposeControls = false, + offset = 0, + immediate = true, + interval = "requestAnimationFrame", + callback + } = options; + const ts = ref(timestamp() + offset); + const update = () => ts.value = timestamp() + offset; + const cb = callback ? () => { + update(); + callback(ts.value); + } : update; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + if (exposeControls) { + return { + timestamp: ts, + ...controls + }; + } else { + return ts; + } +} +function useTitle(newTitle = null, options = {}) { + var _a, _b, _c; + const { + document: document2 = defaultDocument, + restoreOnUnmount = (t) => t + } = options; + const originalTitle = (_a = document2 == null ? void 0 : document2.title) != null ? _a : ""; + const title = toRef2((_b = newTitle != null ? newTitle : document2 == null ? void 0 : document2.title) != null ? _b : null); + const isReadonly2 = newTitle && typeof newTitle === "function"; + function format(t) { + if (!("titleTemplate" in options)) + return t; + const template = options.titleTemplate || "%s"; + return typeof template === "function" ? template(t) : toValue(template).replace(/%s/g, t); + } + watch( + title, + (t, o) => { + if (t !== o && document2) + document2.title = format(typeof t === "string" ? t : ""); + }, + { immediate: true } + ); + if (options.observe && !options.titleTemplate && document2 && !isReadonly2) { + useMutationObserver( + (_c = document2.head) == null ? void 0 : _c.querySelector("title"), + () => { + if (document2 && document2.title !== title.value) + title.value = format(document2.title); + }, + { childList: true } + ); + } + tryOnBeforeUnmount(() => { + if (restoreOnUnmount) { + const restoredTitle = restoreOnUnmount(originalTitle, title.value || ""); + if (restoredTitle != null && document2) + document2.title = restoredTitle; + } + }); + return title; +} +var _TransitionPresets = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +var TransitionPresets = Object.assign({}, { linear: identity }, _TransitionPresets); +function createEasingFunction([p0, p1, p2, p3]) { + const a = (a1, a2) => 1 - 3 * a2 + 3 * a1; + const b = (a1, a2) => 3 * a2 - 6 * a1; + const c = (a1) => 3 * a1; + const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t; + const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1); + const getTforX = (x) => { + let aGuessT = x; + for (let i = 0; i < 4; ++i) { + const currentSlope = getSlope(aGuessT, p0, p2); + if (currentSlope === 0) + return aGuessT; + const currentX = calcBezier(aGuessT, p0, p2) - x; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + }; + return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3); +} +function lerp(a, b, alpha) { + return a + alpha * (b - a); +} +function toVec(t) { + return (typeof t === "number" ? [t] : t) || []; +} +function executeTransition(source, from, to, options = {}) { + var _a, _b; + const fromVal = toValue(from); + const toVal = toValue(to); + const v1 = toVec(fromVal); + const v2 = toVec(toVal); + const duration = (_a = toValue(options.duration)) != null ? _a : 1e3; + const startedAt = Date.now(); + const endAt = Date.now() + duration; + const trans = typeof options.transition === "function" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity; + const ease = typeof trans === "function" ? trans : createEasingFunction(trans); + return new Promise((resolve) => { + source.value = fromVal; + const tick = () => { + var _a2; + if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) { + resolve(); + return; + } + const now2 = Date.now(); + const alpha = ease((now2 - startedAt) / duration); + const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha)); + if (Array.isArray(source.value)) + source.value = arr.map((n, i) => { + var _a3, _b2; + return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha); + }); + else if (typeof source.value === "number") + source.value = arr[0]; + if (now2 < endAt) { + requestAnimationFrame(tick); + } else { + source.value = toVal; + resolve(); + } + }; + tick(); + }); +} +function useTransition(source, options = {}) { + let currentId = 0; + const sourceVal = () => { + const v = toValue(source); + return typeof v === "number" ? v : v.map(toValue); + }; + const outputRef = ref(sourceVal()); + watch(sourceVal, async (to) => { + var _a, _b; + if (toValue(options.disabled)) + return; + const id = ++currentId; + if (options.delay) + await promiseTimeout(toValue(options.delay)); + if (id !== currentId) + return; + const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to); + (_a = options.onStarted) == null ? void 0 : _a.call(options); + await executeTransition(outputRef, outputRef.value, toVal, { + ...options, + abort: () => { + var _a2; + return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options)); + } + }); + (_b = options.onFinished) == null ? void 0 : _b.call(options); + }, { deep: true }); + watch(() => toValue(options.disabled), (disabled) => { + if (disabled) { + currentId++; + outputRef.value = sourceVal(); + } + }); + tryOnScopeDispose(() => { + currentId++; + }); + return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value); +} +function useUrlSearchParams(mode = "history", options = {}) { + const { + initialValue = {}, + removeNullishValues = true, + removeFalsyValues = false, + write: enableWrite = true, + window: window2 = defaultWindow + } = options; + if (!window2) + return reactive(initialValue); + const state = reactive({}); + function getRawParams() { + if (mode === "history") { + return window2.location.search || ""; + } else if (mode === "hash") { + const hash = window2.location.hash || ""; + const index = hash.indexOf("?"); + return index > 0 ? hash.slice(index) : ""; + } else { + return (window2.location.hash || "").replace(/^#/, ""); + } + } + function constructQuery(params) { + const stringified = params.toString(); + if (mode === "history") + return `${stringified ? `?${stringified}` : ""}${window2.location.hash || ""}`; + if (mode === "hash-params") + return `${window2.location.search || ""}${stringified ? `#${stringified}` : ""}`; + const hash = window2.location.hash || "#"; + const index = hash.indexOf("?"); + if (index > 0) + return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`; + return `${hash}${stringified ? `?${stringified}` : ""}`; + } + function read() { + return new URLSearchParams(getRawParams()); + } + function updateState(params) { + const unusedKeys = new Set(Object.keys(state)); + for (const key of params.keys()) { + const paramsForKey = params.getAll(key); + state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || ""; + unusedKeys.delete(key); + } + Array.from(unusedKeys).forEach((key) => delete state[key]); + } + const { pause, resume } = watchPausable( + state, + () => { + const params = new URLSearchParams(""); + Object.keys(state).forEach((key) => { + const mapEntry = state[key]; + if (Array.isArray(mapEntry)) + mapEntry.forEach((value) => params.append(key, value)); + else if (removeNullishValues && mapEntry == null) + params.delete(key); + else if (removeFalsyValues && !mapEntry) + params.delete(key); + else + params.set(key, mapEntry); + }); + write(params); + }, + { deep: true } + ); + function write(params, shouldUpdate) { + pause(); + if (shouldUpdate) + updateState(params); + window2.history.replaceState( + window2.history.state, + window2.document.title, + window2.location.pathname + constructQuery(params) + ); + resume(); + } + function onChanged() { + if (!enableWrite) + return; + write(read(), true); + } + useEventListener(window2, "popstate", onChanged, false); + if (mode !== "history") + useEventListener(window2, "hashchange", onChanged, false); + const initial = read(); + if (initial.keys().next().value) + updateState(initial); + else + Object.assign(state, initialValue); + return state; +} +function useUserMedia(options = {}) { + var _a, _b; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true); + const constraints = ref(options.constraints); + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia; + }); + const stream = shallowRef(); + function getDeviceOptions(type) { + switch (type) { + case "video": { + if (constraints.value) + return constraints.value.video || false; + break; + } + case "audio": { + if (constraints.value) + return constraints.value.audio || false; + break; + } + } + } + async function _start() { + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getUserMedia({ + video: getDeviceOptions("video"), + audio: getDeviceOptions("audio") + }); + return stream.value; + } + function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + async function restart() { + _stop(); + return await start(); + } + watch( + enabled, + (v) => { + if (v) + _start(); + else + _stop(); + }, + { immediate: true } + ); + watch( + constraints, + () => { + if (autoSwitch.value && stream.value) + restart(); + }, + { immediate: true } + ); + tryOnScopeDispose(() => { + stop(); + }); + return { + isSupported, + stream, + start, + stop, + restart, + constraints, + enabled, + autoSwitch + }; +} +function useVModel(props, key, emit, options = {}) { + var _a, _b, _c, _d, _e; + const { + clone = false, + passive = false, + eventName, + deep = false, + defaultValue, + shouldEmit + } = options; + const vm = getCurrentInstance(); + const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); + let event = eventName; + if (!key) { + if (isVue2) { + const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model; + key = (modelOptions == null ? void 0 : modelOptions.value) || "value"; + if (!eventName) + event = (modelOptions == null ? void 0 : modelOptions.event) || "input"; + } else { + key = "modelValue"; + } + } + event = event || `update:${key.toString()}`; + const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); + const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; + const triggerEmit = (value) => { + if (shouldEmit) { + if (shouldEmit(value)) + _emit(event, value); + } else { + _emit(event, value); + } + }; + if (passive) { + const initialValue = getValue2(); + const proxy = ref(initialValue); + let isUpdating = false; + watch( + () => props[key], + (v) => { + if (!isUpdating) { + isUpdating = true; + proxy.value = cloneFn(v); + nextTick(() => isUpdating = false); + } + } + ); + watch( + proxy, + (v) => { + if (!isUpdating && (v !== props[key] || deep)) + triggerEmit(v); + }, + { deep } + ); + return proxy; + } else { + return computed({ + get() { + return getValue2(); + }, + set(value) { + triggerEmit(value); + } + }); + } +} +function useVModels(props, emit, options = {}) { + const ret = {}; + for (const key in props) { + ret[key] = useVModel( + props, + key, + emit, + options + ); + } + return ret; +} +function useVibrate(options) { + const { + pattern = [], + interval = 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator); + const patternRef = toRef2(pattern); + let intervalControls; + const vibrate = (pattern2 = patternRef.value) => { + if (isSupported.value) + navigator.vibrate(pattern2); + }; + const stop = () => { + if (isSupported.value) + navigator.vibrate(0); + intervalControls == null ? void 0 : intervalControls.pause(); + }; + if (interval > 0) { + intervalControls = useIntervalFn( + vibrate, + interval, + { + immediate: false, + immediateCallback: false + } + ); + } + return { + isSupported, + pattern, + intervalControls, + vibrate, + stop + }; +} +function useVirtualList(list, options) { + const { containerStyle, wrapperProps, scrollTo: scrollTo2, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list); + return { + list: currentList, + scrollTo: scrollTo2, + containerProps: { + ref: containerRef, + onScroll: () => { + calculateRange(); + }, + style: containerStyle + }, + wrapperProps + }; +} +function useVirtualListResources(list) { + const containerRef = ref(null); + const size = useElementSize(containerRef); + const currentList = ref([]); + const source = shallowRef(list); + const state = ref({ start: 0, end: 10 }); + return { state, source, currentList, size, containerRef }; +} +function createGetViewCapacity(state, source, itemSize) { + return (containerSize) => { + if (typeof itemSize === "number") + return Math.ceil(containerSize / itemSize); + const { start = 0 } = state.value; + let sum = 0; + let capacity = 0; + for (let i = start; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + capacity = i; + if (sum > containerSize) + break; + } + return capacity - start; + }; +} +function createGetOffset(source, itemSize) { + return (scrollDirection) => { + if (typeof itemSize === "number") + return Math.floor(scrollDirection / itemSize) + 1; + let sum = 0; + let offset = 0; + for (let i = 0; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + if (sum >= scrollDirection) { + offset = i; + break; + } + } + return offset + 1; + }; +} +function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) { + return () => { + const element = containerRef.value; + if (element) { + const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft); + const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth); + const from = offset - overscan; + const to = offset + viewCapacity + overscan; + state.value = { + start: from < 0 ? 0 : from, + end: to > source.value.length ? source.value.length : to + }; + currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({ + data: ele, + index: index + state.value.start + })); + } + }; +} +function createGetDistance(itemSize, source) { + return (index) => { + if (typeof itemSize === "number") { + const size2 = index * itemSize; + return size2; + } + const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0); + return size; + }; +} +function useWatchForSizes(size, list, calculateRange) { + watch([size.width, size.height, list], () => { + calculateRange(); + }); +} +function createComputedTotalSize(itemSize, source) { + return computed(() => { + if (typeof itemSize === "number") + return source.value.length * itemSize; + return source.value.reduce((sum, _, index) => sum + itemSize(index), 0); + }); +} +var scrollToDictionaryForElementScrollKey = { + horizontal: "scrollLeft", + vertical: "scrollTop" +}; +function createScrollTo(type, calculateRange, getDistance, containerRef) { + return (index) => { + if (containerRef.value) { + containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index); + calculateRange(); + } + }; +} +function useHorizontalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowX: "auto" }; + const { itemWidth, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemWidth); + const getOffset = createGetOffset(source, itemWidth); + const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources); + const getDistanceLeft = createGetDistance(itemWidth, source); + const offsetLeft = computed(() => getDistanceLeft(state.value.start)); + const totalWidth = createComputedTotalSize(itemWidth, source); + useWatchForSizes(size, list, calculateRange); + const scrollTo2 = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef); + const wrapperProps = computed(() => { + return { + style: { + height: "100%", + width: `${totalWidth.value - offsetLeft.value}px`, + marginLeft: `${offsetLeft.value}px`, + display: "flex" + } + }; + }); + return { + scrollTo: scrollTo2, + calculateRange, + wrapperProps, + containerStyle, + currentList, + containerRef + }; +} +function useVerticalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowY: "auto" }; + const { itemHeight, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemHeight); + const getOffset = createGetOffset(source, itemHeight); + const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources); + const getDistanceTop = createGetDistance(itemHeight, source); + const offsetTop = computed(() => getDistanceTop(state.value.start)); + const totalHeight = createComputedTotalSize(itemHeight, source); + useWatchForSizes(size, list, calculateRange); + const scrollTo2 = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef); + const wrapperProps = computed(() => { + return { + style: { + width: "100%", + height: `${totalHeight.value - offsetTop.value}px`, + marginTop: `${offsetTop.value}px` + } + }; + }); + return { + calculateRange, + scrollTo: scrollTo2, + containerStyle, + wrapperProps, + currentList, + containerRef + }; +} +function useWakeLock(options = {}) { + const { + navigator = defaultNavigator, + document: document2 = defaultDocument + } = options; + let wakeLock; + const isSupported = useSupported(() => navigator && "wakeLock" in navigator); + const isActive = ref(false); + async function onVisibilityChange() { + if (!isSupported.value || !wakeLock) + return; + if (document2 && document2.visibilityState === "visible") + wakeLock = await navigator.wakeLock.request("screen"); + isActive.value = !wakeLock.released; + } + if (document2) + useEventListener(document2, "visibilitychange", onVisibilityChange, { passive: true }); + async function request(type) { + if (!isSupported.value) + return; + wakeLock = await navigator.wakeLock.request(type); + isActive.value = !wakeLock.released; + } + async function release() { + if (!isSupported.value || !wakeLock) + return; + await wakeLock.release(); + isActive.value = !wakeLock.released; + wakeLock = null; + } + return { + isSupported, + isActive, + request, + release + }; +} +function useWebNotification(options = {}) { + const { + window: window2 = defaultWindow, + requestPermissions: _requestForPermissions = true + } = options; + const defaultWebNotificationOptions = options; + const isSupported = useSupported(() => !!window2 && "Notification" in window2); + const permissionGranted = ref(isSupported.value && "permission" in Notification && Notification.permission === "granted"); + const notification = ref(null); + const ensurePermissions = async () => { + if (!isSupported.value) + return; + if (!permissionGranted.value && Notification.permission !== "denied") { + const result = await Notification.requestPermission(); + if (result === "granted") + permissionGranted.value = true; + } + return permissionGranted.value; + }; + const { on: onClick, trigger: clickTrigger } = createEventHook(); + const { on: onShow, trigger: showTrigger } = createEventHook(); + const { on: onError, trigger: errorTrigger } = createEventHook(); + const { on: onClose, trigger: closeTrigger } = createEventHook(); + const show = async (overrides) => { + if (!isSupported.value || !permissionGranted.value) + return; + const options2 = Object.assign({}, defaultWebNotificationOptions, overrides); + notification.value = new Notification(options2.title || "", options2); + notification.value.onclick = clickTrigger; + notification.value.onshow = showTrigger; + notification.value.onerror = errorTrigger; + notification.value.onclose = closeTrigger; + return notification.value; + }; + const close = () => { + if (notification.value) + notification.value.close(); + notification.value = null; + }; + if (_requestForPermissions) + tryOnMounted(ensurePermissions); + tryOnScopeDispose(close); + if (isSupported.value && window2) { + const document2 = window2.document; + useEventListener(document2, "visibilitychange", (e) => { + e.preventDefault(); + if (document2.visibilityState === "visible") { + close(); + } + }); + } + return { + isSupported, + notification, + ensurePermissions, + permissionGranted, + show, + close, + onClick, + onShow, + onError, + onClose + }; +} +var DEFAULT_PING_MESSAGE = "ping"; +function resolveNestedOptions(options) { + if (options === true) + return {}; + return options; +} +function useWebSocket(url, options = {}) { + const { + onConnected, + onDisconnected, + onError, + onMessage, + immediate = true, + autoClose = true, + protocols = [] + } = options; + const data = ref(null); + const status = ref("CLOSED"); + const wsRef = ref(); + const urlRef = toRef2(url); + let heartbeatPause; + let heartbeatResume; + let explicitlyClosed = false; + let retried = 0; + let bufferedData = []; + let pongTimeoutWait; + const _sendBuffer = () => { + if (bufferedData.length && wsRef.value && status.value === "OPEN") { + for (const buffer of bufferedData) + wsRef.value.send(buffer); + bufferedData = []; + } + }; + const resetHeartbeat = () => { + clearTimeout(pongTimeoutWait); + pongTimeoutWait = void 0; + }; + const close = (code = 1e3, reason) => { + if (!isClient || !wsRef.value) + return; + explicitlyClosed = true; + resetHeartbeat(); + heartbeatPause == null ? void 0 : heartbeatPause(); + wsRef.value.close(code, reason); + wsRef.value = void 0; + }; + const send = (data2, useBuffer = true) => { + if (!wsRef.value || status.value !== "OPEN") { + if (useBuffer) + bufferedData.push(data2); + return false; + } + _sendBuffer(); + wsRef.value.send(data2); + return true; + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const ws = new WebSocket(urlRef.value, protocols); + wsRef.value = ws; + status.value = "CONNECTING"; + ws.onopen = () => { + status.value = "OPEN"; + onConnected == null ? void 0 : onConnected(ws); + heartbeatResume == null ? void 0 : heartbeatResume(); + _sendBuffer(); + }; + ws.onclose = (ev) => { + status.value = "CLOSED"; + onDisconnected == null ? void 0 : onDisconnected(ws, ev); + if (!explicitlyClosed && options.autoReconnect) { + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + ws.onerror = (e) => { + onError == null ? void 0 : onError(ws, e); + }; + ws.onmessage = (e) => { + if (options.heartbeat) { + resetHeartbeat(); + const { + message = DEFAULT_PING_MESSAGE + } = resolveNestedOptions(options.heartbeat); + if (e.data === message) + return; + } + data.value = e.data; + onMessage == null ? void 0 : onMessage(ws, e); + }; + }; + if (options.heartbeat) { + const { + message = DEFAULT_PING_MESSAGE, + interval = 1e3, + pongTimeout = 1e3 + } = resolveNestedOptions(options.heartbeat); + const { pause, resume } = useIntervalFn( + () => { + send(message, false); + if (pongTimeoutWait != null) + return; + pongTimeoutWait = setTimeout(() => { + close(); + explicitlyClosed = false; + }, pongTimeout); + }, + interval, + { immediate: false } + ); + heartbeatPause = pause; + heartbeatResume = resume; + } + if (autoClose) { + if (isClient) + useEventListener("beforeunload", () => close()); + tryOnScopeDispose(close); + } + const open = () => { + if (!isClient && !isWorker) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + open(); + return { + data, + status, + close, + send, + open, + ws: wsRef + }; +} +function useWebWorker(arg0, workerOptions, options) { + const { + window: window2 = defaultWindow + } = options != null ? options : {}; + const data = ref(null); + const worker = shallowRef(); + const post = (...args) => { + if (!worker.value) + return; + worker.value.postMessage(...args); + }; + const terminate = function terminate2() { + if (!worker.value) + return; + worker.value.terminate(); + }; + if (window2) { + if (typeof arg0 === "string") + worker.value = new Worker(arg0, workerOptions); + else if (typeof arg0 === "function") + worker.value = arg0(); + else + worker.value = arg0; + worker.value.onmessage = (e) => { + data.value = e.data; + }; + tryOnScopeDispose(() => { + if (worker.value) + worker.value.terminate(); + }); + } + return { + data, + post, + terminate, + worker + }; +} +function jobRunner(userFunc) { + return (e) => { + const userFuncArgs = e.data[0]; + return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => { + postMessage(["SUCCESS", result]); + }).catch((error) => { + postMessage(["ERROR", error]); + }); + }; +} +function depsParser(deps) { + if (deps.length === 0) + return ""; + const depsString = deps.map((dep) => `'${dep}'`).toString(); + return `importScripts(${depsString})`; +} +function createWorkerBlobUrl(fn, deps) { + const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`; + const blob = new Blob([blobCode], { type: "text/javascript" }); + const url = URL.createObjectURL(blob); + return url; +} +function useWebWorkerFn(fn, options = {}) { + const { + dependencies = [], + timeout, + window: window2 = defaultWindow + } = options; + const worker = ref(); + const workerStatus = ref("PENDING"); + const promise = ref({}); + const timeoutId = ref(); + const workerTerminate = (status = "PENDING") => { + if (worker.value && worker.value._url && window2) { + worker.value.terminate(); + URL.revokeObjectURL(worker.value._url); + promise.value = {}; + worker.value = void 0; + window2.clearTimeout(timeoutId.value); + workerStatus.value = status; + } + }; + workerTerminate(); + tryOnScopeDispose(workerTerminate); + const generateWorker = () => { + const blobUrl = createWorkerBlobUrl(fn, dependencies); + const newWorker = new Worker(blobUrl); + newWorker._url = blobUrl; + newWorker.onmessage = (e) => { + const { resolve = () => { + }, reject = () => { + } } = promise.value; + const [status, result] = e.data; + switch (status) { + case "SUCCESS": + resolve(result); + workerTerminate(status); + break; + default: + reject(result); + workerTerminate("ERROR"); + break; + } + }; + newWorker.onerror = (e) => { + const { reject = () => { + } } = promise.value; + e.preventDefault(); + reject(e); + workerTerminate("ERROR"); + }; + if (timeout) { + timeoutId.value = setTimeout( + () => workerTerminate("TIMEOUT_EXPIRED"), + timeout + ); + } + return newWorker; + }; + const callWorker = (...fnArgs) => new Promise((resolve, reject) => { + promise.value = { + resolve, + reject + }; + worker.value && worker.value.postMessage([[...fnArgs]]); + workerStatus.value = "RUNNING"; + }); + const workerFn = (...fnArgs) => { + if (workerStatus.value === "RUNNING") { + console.error( + "[useWebWorkerFn] You can only run one instance of the worker at a time." + ); + return Promise.reject(); + } + worker.value = generateWorker(); + return callWorker(...fnArgs); + }; + return { + workerFn, + workerStatus, + workerTerminate + }; +} +function useWindowFocus(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(false); + const focused = ref(window2.document.hasFocus()); + useEventListener(window2, "blur", () => { + focused.value = false; + }); + useEventListener(window2, "focus", () => { + focused.value = true; + }); + return focused; +} +function useWindowScroll(options = {}) { + const { window: window2 = defaultWindow, behavior = "auto" } = options; + if (!window2) { + return { + x: ref(0), + y: ref(0) + }; + } + const internalX = ref(window2.scrollX); + const internalY = ref(window2.scrollY); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo({ left: x2, behavior }); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo({ top: y2, behavior }); + } + }); + useEventListener( + window2, + "scroll", + () => { + internalX.value = window2.scrollX; + internalY.value = window2.scrollY; + }, + { + capture: false, + passive: true + } + ); + return { x, y }; +} +function useWindowSize(options = {}) { + const { + window: window2 = defaultWindow, + initialWidth = Number.POSITIVE_INFINITY, + initialHeight = Number.POSITIVE_INFINITY, + listenOrientation = true, + includeScrollbar = true + } = options; + const width = ref(initialWidth); + const height = ref(initialHeight); + const update = () => { + if (window2) { + if (includeScrollbar) { + width.value = window2.innerWidth; + height.value = window2.innerHeight; + } else { + width.value = window2.document.documentElement.clientWidth; + height.value = window2.document.documentElement.clientHeight; + } + } + }; + update(); + tryOnMounted(update); + useEventListener("resize", update, { passive: true }); + if (listenOrientation) { + const matches = useMediaQuery("(orientation: portrait)"); + watch(matches, () => update()); + } + return { width, height }; +} + +export { + computedEager, + computedWithControl, + tryOnScopeDispose, + createEventHook, + createGlobalState, + provideLocal, + injectLocal, + createInjectionState, + createSharedComposable, + extendRef, + get, + isDefined, + makeDestructurable, + toValue, + resolveUnref, + reactify, + reactifyObject, + toReactive, + reactiveComputed, + reactiveOmit, + isClient, + isWorker, + isDef, + notNullish, + assert, + isObject, + now, + timestamp, + clamp, + noop, + rand, + hasOwn, + isIOS, + createFilterWrapper, + bypassFilter, + debounceFilter, + throttleFilter, + pausableFilter, + directiveHooks, + hyphenate, + camelize, + promiseTimeout, + identity, + createSingletonPromise, + invoke, + containsProp, + increaseWithUnit, + objectPick, + objectOmit, + objectEntries, + getLifeCycleTarget, + toRef2 as toRef, + resolveRef, + reactivePick, + refAutoReset, + useDebounceFn, + refDebounced, + refDefault, + useThrottleFn, + refThrottled, + refWithControl, + controlledRef, + set2 as set, + watchWithFilter, + watchPausable, + syncRef, + syncRefs, + toRefs2 as toRefs, + tryOnBeforeMount, + tryOnBeforeUnmount, + tryOnMounted, + tryOnUnmounted, + until, + useArrayDifference, + useArrayEvery, + useArrayFilter, + useArrayFind, + useArrayFindIndex, + useArrayFindLast, + useArrayIncludes, + useArrayJoin, + useArrayMap, + useArrayReduce, + useArraySome, + useArrayUnique, + useCounter, + formatDate, + normalizeDate, + useDateFormat, + useIntervalFn, + useInterval, + useLastChanged, + useTimeoutFn, + useTimeout, + useToNumber, + useToString, + useToggle, + watchArray, + watchAtMost, + watchDebounced, + watchDeep, + watchIgnorable, + watchImmediate, + watchOnce, + watchThrottled, + watchTriggerable, + whenever, + computedAsync, + computedInject, + createReusableTemplate, + createTemplatePromise, + createUnrefFn, + unrefElement, + defaultWindow, + defaultDocument, + defaultNavigator, + defaultLocation, + useEventListener, + onClickOutside, + onKeyStroke, + onKeyDown, + onKeyPressed, + onKeyUp, + onLongPress, + onStartTyping, + templateRef, + useActiveElement, + useMounted, + useSupported, + useRafFn, + useAnimate, + useAsyncQueue, + useAsyncState, + useBase64, + useBattery, + useBluetooth, + useMediaQuery, + breakpointsTailwind, + breakpointsBootstrapV5, + breakpointsVuetifyV2, + breakpointsVuetifyV3, + breakpointsVuetify, + breakpointsAntDesign, + breakpointsQuasar, + breakpointsSematic, + breakpointsMasterCss, + breakpointsPrimeFlex, + useBreakpoints, + useBroadcastChannel, + useBrowserLocation, + useCached, + usePermission, + useClipboard, + useClipboardItems, + cloneFnJSON, + useCloned, + getSSRHandler, + setSSRHandler, + StorageSerializers, + customStorageEventName, + useStorage, + usePreferredDark, + useColorMode, + useConfirmDialog, + useMutationObserver, + useCssVar, + useCurrentElement, + useCycleList, + useDark, + useManualRefHistory, + useRefHistory, + useDebouncedRefHistory, + useDeviceMotion, + useDeviceOrientation, + useDevicePixelRatio, + useDevicesList, + useDisplayMedia, + useDocumentVisibility, + useDraggable, + useDropZone, + useResizeObserver, + useElementBounding, + useElementByPoint, + useElementHover, + useElementSize, + useIntersectionObserver, + useElementVisibility, + useEventBus, + useEventSource, + useEyeDropper, + useFavicon, + createFetch, + useFetch, + useFileDialog, + useFileSystemAccess, + useFocus, + useFocusWithin, + useFps, + useFullscreen, + mapGamepadToXbox360Controller, + useGamepad, + useGeolocation, + useIdle, + useImage, + useScroll, + useInfiniteScroll, + useKeyModifier, + useLocalStorage, + DefaultMagicKeysAliasMap, + useMagicKeys, + useMediaControls, + useMemoize, + useMemory, + useMouse, + useMouseInElement, + useMousePressed, + useNavigatorLanguage, + useNetwork, + useNow, + useObjectUrl, + useOffsetPagination, + useOnline, + usePageLeave, + useScreenOrientation, + useParallax, + useParentElement, + usePerformanceObserver, + usePointer, + usePointerLock, + usePointerSwipe, + usePreferredColorScheme, + usePreferredContrast, + usePreferredLanguages, + usePreferredReducedMotion, + usePrevious, + useScreenSafeArea, + useScriptTag, + useScrollLock, + useSessionStorage, + useShare, + useSorted, + useSpeechRecognition, + useSpeechSynthesis, + useStepper, + useStorageAsync, + useStyleTag, + useSwipe, + useTemplateRefsList, + useTextDirection, + useTextSelection, + useTextareaAutosize, + useThrottledRefHistory, + useTimeAgo, + formatTimeAgo, + useTimeoutPoll, + useTimestamp, + useTitle, + TransitionPresets, + executeTransition, + useTransition, + useUrlSearchParams, + useUserMedia, + useVModel, + useVModels, + useVibrate, + useVirtualList, + useWakeLock, + useWebNotification, + useWebSocket, + useWebWorker, + useWebWorkerFn, + useWindowFocus, + useWindowScroll, + useWindowSize +}; +//# sourceMappingURL=chunk-GETBQIRZ.js.map diff --git a/config/.vitepress/cache/deps/chunk-GETBQIRZ.js.map b/config/.vitepress/cache/deps/chunk-GETBQIRZ.js.map new file mode 100644 index 0000000..f9ef625 --- /dev/null +++ b/config/.vitepress/cache/deps/chunk-GETBQIRZ.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.19/node_modules/vue-demi/lib/index.mjs", "../../../../node_modules/.pnpm/@vueuse+shared@10.8.0_vue@3.4.19/node_modules/@vueuse/shared/index.mjs", "../../../../node_modules/.pnpm/@vueuse+core@10.8.0_vue@3.4.19/node_modules/@vueuse/core/index.mjs"], + "sourcesContent": ["import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n", "import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, notNullish, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && permissionRead.value !== \"denied\") {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && permissionWrite.value !== \"denied\")\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n return data;\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n const dispatchWriteEvent = (newValue) => {\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n };\n if (v == null) {\n dispatchWriteEvent(null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && window && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })),\n index: gamepad.index\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, initialOverflow);\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n var _a;\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : \"\";\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a2, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n"], + "mappings": "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", + "names": ["get", "set", "ref", "keys", "invoke", "toRef", "toRefs", "events", "window", "document", "timestamp", "getValue", "defaults", "toRef", "set", "onUpdated", "preventDefault", "toRefs", "now", "scrollTo", "keys", "get", "isReadonly"] +} diff --git a/config/.vitepress/cache/deps/chunk-UTGH4N2I.js b/config/.vitepress/cache/deps/chunk-UTGH4N2I.js new file mode 100644 index 0000000..3e582cd --- /dev/null +++ b/config/.vitepress/cache/deps/chunk-UTGH4N2I.js @@ -0,0 +1,11388 @@ +// node_modules/.pnpm/@vue+shared@3.4.19/node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const set2 = new Set(str.split(",")); + return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val); +} +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +var capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +var toHandlerKey = cacheStringFunction((str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; +}); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](arg); + } +}; +var def = (obj, key, value) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error"; +var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + let ret = ""; + if (!styles || isString(styles)) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + if (isString(value) || typeof value === "number") { + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isMathMLTag = makeMap(MATH_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +var isKnownHtmlAttr = makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +var isKnownSvgAttr = makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} +function looseCompareArrays(a, b) { + if (a.length !== b.length) + return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) + return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +var stringifySymbol = (v, i = "") => { + var _a; + return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v; +}; + +// node_modules/.pnpm/@vue+reactivity@3.4.19/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +var activeEffect; +var ReactiveEffect = class { + constructor(fn, trigger2, scheduler, scope) { + this.fn = fn; + this.trigger = trigger2; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this._dirtyLevel = 4; + this._trackId = 0; + this._runnings = 0; + this._shouldSchedule = false; + this._depsLength = 0; + recordEffectScope(this, scope); + } + get dirty() { + if (this._dirtyLevel === 2 || this._dirtyLevel === 3) { + this._dirtyLevel = 1; + pauseTracking(); + for (let i = 0; i < this._depsLength; i++) { + const dep = this.deps[i]; + if (dep.computed) { + triggerComputed(dep.computed); + if (this._dirtyLevel >= 4) { + break; + } + } + } + if (this._dirtyLevel === 1) { + this._dirtyLevel = 0; + } + resetTracking(); + } + return this._dirtyLevel >= 4; + } + set dirty(v) { + this._dirtyLevel = v ? 4 : 0; + } + run() { + this._dirtyLevel = 0; + if (!this.active) { + return this.fn(); + } + let lastShouldTrack = shouldTrack; + let lastEffect = activeEffect; + try { + shouldTrack = true; + activeEffect = this; + this._runnings++; + preCleanupEffect(this); + return this.fn(); + } finally { + postCleanupEffect(this); + this._runnings--; + activeEffect = lastEffect; + shouldTrack = lastShouldTrack; + } + } + stop() { + var _a; + if (this.active) { + preCleanupEffect(this); + postCleanupEffect(this); + (_a = this.onStop) == null ? void 0 : _a.call(this); + this.active = false; + } + } +}; +function triggerComputed(computed3) { + return computed3.value; +} +function preCleanupEffect(effect2) { + effect2._trackId++; + effect2._depsLength = 0; +} +function postCleanupEffect(effect2) { + if (effect2.deps.length > effect2._depsLength) { + for (let i = effect2._depsLength; i < effect2.deps.length; i++) { + cleanupDepEffect(effect2.deps[i], effect2); + } + effect2.deps.length = effect2._depsLength; + } +} +function cleanupDepEffect(dep, effect2) { + const trackId = dep.get(effect2); + if (trackId !== void 0 && effect2._trackId !== trackId) { + dep.delete(effect2); + if (dep.size === 0) { + dep.cleanup(); + } + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn, NOOP, () => { + if (_effect.dirty) { + _effect.run(); + } + }); + if (options) { + extend(_effect, options); + if (options.scope) + recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var pauseScheduleStack = 0; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function pauseScheduling() { + pauseScheduleStack++; +} +function resetScheduling() { + pauseScheduleStack--; + while (!pauseScheduleStack && queueEffectSchedulers.length) { + queueEffectSchedulers.shift()(); + } +} +function trackEffect(effect2, dep, debuggerEventExtraInfo) { + var _a; + if (dep.get(effect2) !== effect2._trackId) { + dep.set(effect2, effect2._trackId); + const oldDep = effect2.deps[effect2._depsLength]; + if (oldDep !== dep) { + if (oldDep) { + cleanupDepEffect(oldDep, effect2); + } + effect2.deps[effect2._depsLength++] = dep; + } else { + effect2._depsLength++; + } + if (true) { + (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + } +} +var queueEffectSchedulers = []; +function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { + var _a; + pauseScheduling(); + for (const effect2 of dep.keys()) { + let tracking; + if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0); + effect2._dirtyLevel = dirtyLevel; + } + if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + if (true) { + (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + effect2.trigger(); + if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) { + effect2._shouldSchedule = false; + if (effect2.scheduler) { + queueEffectSchedulers.push(effect2.scheduler); + } + } + } + } + resetScheduling(); +} +var createDep = (cleanup, computed3) => { + const dep = /* @__PURE__ */ new Map(); + dep.cleanup = cleanup; + dep.computed = computed3; + return dep; +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep(() => depsMap.delete(key))); + } + trackEffect( + activeEffect, + dep, + true ? { + target, + type, + key + } : void 0 + ); + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + pauseScheduling(); + for (const dep of deps) { + if (dep) { + triggerEffects( + dep, + 4, + true ? { + target, + type, + key, + newValue, + oldValue, + oldTarget + } : void 0 + ); + } + } + resetScheduling(); +} +function getDepFromReactive(object, key) { + var _a; + return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + pauseScheduling(); + const res = toRaw(this)[key].apply(this, args); + resetScheduling(); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +var BaseReactiveHandler = class { + constructor(_isReadonly = false, _shallow = false) { + this._isReadonly = _isReadonly; + this._shallow = _shallow; + } + get(target, key, receiver) { + const isReadonly2 = this._isReadonly, shallow = this._shallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return shallow; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the reciever is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (shallow) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +}; +var MutableReactiveHandler = class extends BaseReactiveHandler { + constructor(shallow = false) { + super(false, shallow); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + if (!this._shallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + return false; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +}; +var ReadonlyReactiveHandler = class extends BaseReactiveHandler { + constructor(shallow = false) { + super(true, shallow); + } + set(target, key) { + if (true) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + if (true) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +}; +var mutableHandlers = new MutableReactiveHandler(); +var readonlyHandlers = new ReadonlyReactiveHandler(); +var shallowReactiveHandlers = new MutableReactiveHandler( + true +); +var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow2 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow2) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + console.warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod( + method, + false, + false + ); + readonlyInstrumentations2[method] = createIterableMethod( + method, + true, + false + ); + shallowInstrumentations2[method] = createIterableMethod( + method, + false, + true + ); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + console.warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + console.warn(`value cannot be made reactive: ${String(target)}`); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return isReactive(value) || isReadonly(value); +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + if (Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +var COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`; +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this.effect = new ReactiveEffect( + () => getter(this._value), + () => triggerRefValue( + this, + this.effect._dirtyLevel === 2 ? 2 : 3 + ) + ); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) { + triggerRefValue(self2, 4); + } + trackRefValue(self2); + if (self2.effect._dirtyLevel >= 2) { + warn(COMPUTED_SIDE_EFFECT_WARN); + triggerRefValue(self2, 2); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } + // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x + get _dirty() { + return this.effect.dirty; + } + set _dirty(v) { + this.effect.dirty = v; + } + // #endregion +}; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +function trackRefValue(ref2) { + var _a; + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + trackEffect( + activeEffect, + (_a = ref2.dep) != null ? _a : ref2.dep = createDep( + () => ref2.dep = void 0, + ref2 instanceof ComputedRefImpl ? ref2 : void 0 + ), + true ? { + target: ref2, + type: "get", + key: "value" + } : void 0 + ); + } +} +function triggerRefValue(ref2, dirtyLevel = 4, newVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + triggerEffects( + dep, + dirtyLevel, + true ? { + target: ref2, + type: "set", + key: "value", + newValue: newVal + } : void 0 + ); + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, 4, newVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, 4, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + console.warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +var GetterRefImpl = class { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +}; +function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); +} +var TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +var TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +// node_modules/.pnpm/@vue+runtime-core@3.4.19/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn$1(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + msg + args.join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) + return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER" +}; +var ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ." +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.pre) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { + continue; + } + activePostFlushCbs[postFlushIndex](); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) + return -1; + if (b.pre && !a.pre) + return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.effect.dirty = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) + return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + instance.parent.effect.dirty = true; + queueJob(instance.parent.update); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +var devtools$1; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) + return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) + return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + props, + propsOptions: [propsOptions], + slots, + attrs, + emit: emit2, + render: render2, + renderCache, + data, + setupState, + ctx, + inheritAttrs + } = instance; + let result; + let fallthroughAttrs; + const prev = setCurrentRenderingInstance(instance); + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render2.call( + thisProxy, + proxyToUse, + renderCache, + props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render22 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + props, + true ? { + get attrs() { + markAttrsAccessed(); + return attrs; + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 } + ) : render22( + props, + null + /* we know it doesn't need it */ + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +var isSuspense = (type) => type.__isSuspense; +var suspenseId = 0; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0) { + n2.suspense = n1.suspense; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove: remove2 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) !== suspense.hiddenContainer) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + var _a; + return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; +} +var ssrContextKey = Symbol.for("v-scx"); +var useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + if (!ctx) { + warn$1( + `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` + ); + } + return ctx; + } +}; +function watchEffect(effect2, options) { + return doWatch(effect2, null, options); +} +function watchPostEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "post" }) : { flush: "post" } + ); +} +function watchSyncEffect(effect2, options) { + return doWatch( + effect2, + null, + true ? extend({}, options, { flush: "sync" }) : { flush: "sync" } + ); +} +var INITIAL_WATCHER_VALUE = {}; +function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); +} +function doWatch(source, cb, { + immediate, + deep, + flush, + once, + onTrack, + onTrigger +} = EMPTY_OBJ) { + if (cb && once) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + unwatch(); + }; + } + if (deep !== void 0 && typeof deep === "number") { + warn$1( + `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.` + ); + } + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const warnInvalidSource = (s) => { + warn$1( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const instance = currentInstance; + const reactiveGetter = (source2) => deep === true ? source2 : ( + // for deep: false, only traverse root-level properties + traverse(source2, deep === false ? 1 : void 0) + ); + let getter; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return callWithErrorHandling(s, instance, 2); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = () => callWithErrorHandling(source, instance, 2); + } else { + getter = () => { + if (cleanup) { + cleanup(); + } + return callWithAsyncErrorHandling( + source, + instance, + 3, + [onCleanup] + ); + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + getter = () => traverse(baseGetter()); + } + let cleanup; + let onCleanup = (fn) => { + cleanup = effect2.onStop = () => { + callWithErrorHandling(fn, instance, 4); + cleanup = effect2.onStop = void 0; + }; + }; + let ssrCleanup; + if (isInSSRComponentSetup) { + onCleanup = NOOP; + if (!cb) { + getter(); + } else if (immediate) { + callWithAsyncErrorHandling(cb, instance, 3, [ + getter(), + isMultiSource ? [] : void 0, + onCleanup + ]); + } + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else { + return NOOP; + } + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = () => { + if (!effect2.active || !effect2.dirty) { + return; + } + if (cb) { + const newValue = effect2.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) { + if (cleanup) { + cleanup(); + } + callWithAsyncErrorHandling(cb, instance, 3, [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + onCleanup + ]); + oldValue = newValue; + } + } else { + effect2.run(); + } + }; + job.allowRecurse = !!cb; + let scheduler; + if (flush === "sync") { + scheduler = job; + } else if (flush === "post") { + scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); + } else { + job.pre = true; + if (instance) + job.id = instance.uid; + scheduler = () => queueJob(job); + } + const effect2 = new ReactiveEffect(getter, NOOP, scheduler); + const scope = getCurrentScope(); + const unwatch = () => { + effect2.stop(); + if (scope) { + remove(scope.effects, effect2); + } + }; + if (true) { + effect2.onTrack = onTrack; + effect2.onTrigger = onTrigger; + } + if (cb) { + if (immediate) { + job(); + } else { + oldValue = effect2.run(); + } + } else if (flush === "post") { + queuePostRenderEffect( + effect2.run.bind(effect2), + instance && instance.suspense + ); + } else { + effect2.run(); + } + if (ssrCleanup) + ssrCleanup.push(unwatch); + return unwatch; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} +function traverse(value, depth, currentDepth = 0, seen) { + if (!isObject(value) || value["__v_skip"]) { + return value; + } + if (depth && depth > 0) { + if (currentDepth >= depth) { + return value; + } + currentDepth++; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + if (isRef(value)) { + traverse(value.value, depth, currentDepth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, currentDepth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, currentDepth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, currentDepth, seen); + } + } + return value; +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy; + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +var leaveCbKey = Symbol("_leaveCb"); +var enterCbKey = Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +var TransitionHookValidator = [Function, Array]; +var BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +var BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + let prevTransitionKey; + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + if (false) + break; + } + } + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getKeepAliveChild(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + const enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance + ); + setTransitionHooks(innerChild, enterHooks); + const oldChild = instance.subTree; + const oldInnerChild = oldChild && getKeepAliveChild(oldChild); + let transitionKeyChanged = false; + const { getTransitionKey } = innerChild.type; + if (getTransitionKey) { + const key = getTransitionKey(); + if (prevTransitionKey === void 0) { + prevTransitionKey = key; + } else if (key !== prevTransitionKey) { + prevTransitionKey = key; + transitionKeyChanged = true; + } + } + if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { + const leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in") { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (instance.update.active !== false) { + instance.effect.dirty = true; + instance.update(); + } + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + }; + enterHooks.delayedLeave = delayedLeave; + }; + } + } + return child; + }; + } +}; +var BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook3 = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook3(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) + done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook3(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el[enterCbKey] = (cancelled) => { + if (called) + return; + called = true; + if (cancelled) { + callHook3(cancelHook, [el]); + } else { + callHook3(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey] = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove2) { + const key2 = String(vnode.key); + if (el[enterCbKey]) { + el[enterCbKey]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove2(); + } + callHook3(onBeforeLeave, [el]); + let called = false; + const done = el[leaveCbKey] = (cancelled) => { + if (called) + return; + called = true; + remove2(); + if (cancelled) { + callHook3(onLeaveCancelled, [el]); + } else { + callHook3(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + return resolveTransitionHooks(vnode2, props, state, instance); + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getKeepAliveChild(vnode) { + return isKeepAlive(vnode) ? ( + // #7121 ensure get the child component subtree in case + // it's been replaced during HMR + vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0 + ) : vnode; +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) + keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject) => { + const userRetry = () => resolve2(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.effect.dirty = true; + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +var KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + if (true) { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + if (true) { + devtoolsComponentAdded(instance2); + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && (!filter || !filter(name))) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (!current || !isSameVNodeType(cached, current)) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + if (true) { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +var KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p2) => matches(p2, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + if (target.isUnmounted) { + return; + } + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => ( + // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) + (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) +); +var onBeforeMount = createHook("bm"); +var onMounted = createHook("m"); +var onBeforeUpdate = createHook("bu"); +var onUpdated = createHook("u"); +var onBeforeUnmount = createHook("bum"); +var onUnmounted = createHook("um"); +var onServerPrefetch = createHook("sp"); +var onRenderTriggered = createHook( + "rtg" +); +var onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) + res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") + props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) + return true; + if (child.type === Comment) + return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) + return null; + if (isStatefulComponent(i)) + return getExposeProxy(i) || i.proxy; + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => { + i.effect.dirty = true; + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance, "get", key); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate + + diff --git "a/config/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.md" "b/config/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.md" new file mode 100644 index 0000000..95d5f39 --- /dev/null +++ "b/config/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.md" @@ -0,0 +1,87 @@ +--- +outline: deep +--- + +# lit + +## 一、lit 是什么 + +`lit`提供了一种方式, 可以更快\更轻量的创建一个`web component`. 在原生的`web component`的基础上, `lit`提供了更友好的响应式生命\局部样式书写方式. + +`web compoent`的生成使用`lit`实现, 具体的 UI 实现可以使用不同的技术栈(vue react angular 等) + +## 二、lit 与 web component + +| | 原生 web component | lit | +| ------------ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| 响应式声明 | 不支持 | 支持 | +| 样式隔离 | 支持 | 支持 | +| 渲染 | attachShadow | render | +| 生命周期 | connectedCallback disconnectedCallback adoptedCallback attributeChangedCallback | connectedcallback disconnectedcallback attributechangedcallback adoptedcallback | +| 响应式更新 | - | shouldUpdate willUpdae update | +| 主动触发更新 | - | haschanged requestUpdate | + +## 三、生命周期 + +- connectedCallback + - 当 DOM 从 Document 文档移除时触发 +- disconnectedCallback + - 当 DOM 挂载到 Document 文档时触发 +- shouldUpdate + - 是否允许更新 +- willUpdate + - 即将更新, 允许对响应式属性做调整 +- update + - 执行更新 + +父子组件之间生命周期的行为: + +- 第一次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback -> 父 update(shouldUpdate willUpdate update) -> 父 update(shouldUpdate willUpdate update) +- 第二次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback +- 更新时: 父节点更新时, 不会影响子节点更新. 即仅触发父 update(shouldUpdate willUpdate update) +- DOM 卸载时: 父 disconnectedCallback -> 子 disconnectedCallback + +## 四、lit + vue + +首先需要先创建一个 VUE 实例 + +```ts +@query(".container") +container!: HTMLDivElement; + +createVueComponent = () => { + const component = defineComponent({ + template: ` +
vue component
+ `, + }); + + const app = createApp(component); + app.mount(this.container); +}; +``` + +善用三个生命周期`connectedcallback disconnectedcallback update`, 通过`update`动态更新`vue 实例`. + +第一次`connectedcallback`之后会触发`update`钩子, 此时`container`已被赋值, 可以执行`createVueComponent`. + +```TS +protected update( changedProperties: PropertyValueMap | Map ): void { + super.update(changedProperties); + + if (this.container) { + unmountInstance(this); + this.createVueComponent(); + } + } +``` + +## 五、Code + +[Code 完整示例](https://github.com/swlws/ui-demo/blob/master/projects/lit-ts/src/components/s-vue-component/index.ts) + +## 六、Reference + +- [^1] [web component](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) +- [^2] [lit lifecucle](https://lit.dev/docs/components/lifecycle/) +- [^3] [dispatch CustomEvent](https://developer.mozilla.org/en-US/docs/Web/Events/Creating_and_triggering_events) diff --git "a/config/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md" "b/config/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md" new file mode 100644 index 0000000..bcd3d80 --- /dev/null +++ "b/config/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md" @@ -0,0 +1,134 @@ +--- +outline: deep +--- + +# 此去欲何-2023 年中结 + +一天下午,leader 走进办公室,对我们说,资金维持不下去了,仅能支撑到这个月了。 + +那一刻,leader 眼睛低迷、脸色暗淡,身形略微有点弯曲。办公室的光线有点暗,那一刻,似乎更暗了。 + +那一刻,似乎卸下了一个担子,但另一个更重的担子迎面而来。对于 leader、对于我们,都是如此。 + +我,一位前端攻城师,失业了。哦,创业失败,公司也没了。 + +--- + +
一月
+ +一月九号,公司算是正式结束运营。 + +十号那天兄弟们依然来到办公室,继续工作。继续做着原计划中的任务,继续打磨着我们呵护了数年的产品。十号、十一号、十二号... + +唯一的变化,是我们离开办公室的时间。以前都是九点钟离开办公室,现在是六点。 + +除了下班的时间外,其它的似乎一切没变。正常的通勤、正常的与邻居唠嗑、正常的吃肠粉、正常的... + +--- + +
二月
+ +印象中大概有十多年了,未在家中陪家人一起过元宵节了。 + +小小的元宵,大大的团圆。 + +老妈也曾怀疑,为何今年走这么晚,难得在家过了十五才离开。我一直谎称公司不忙,远程办公也是一样的,不碍事。 + +试探性地问老妈,以后想起哪里定居呢?老妈念家,想回老家了。 + +二月下旬,回了深圳。看书、爬山、与朋友喝茶,默默准备着告别。 + +--- + +
三月
+ +年后看到一些推文、群聊,到处在散发着焦虑,工作不好找、如意的工作更不好找。 + +**顺丰科技** + +可能我比较幸运吧,开始投递简历没多久,就得到了顺丰科技的邀约。由于岗位要求与我过往经历匹配度挺高的,四轮面试也比较顺利。但比较可惜的是,最终没收到 offer。 + +反思了下,可能是因为我提到内部转岗的事情,三、四轮面试时,面试官一直追着这个问题再问,可能被认为不稳定吧。 + +这段时间投递简历时,一直在有意的找安全方向岗位,毕竟接触了这么多年安全业务,也算是半个安全人哈。也有着自己的小算盘,多了解下,指不定以后做安全方向的销售呢。 + +**腾讯** + +最早接触的是`腾讯手机地图`,可惜的是人家要找的是经验丰富的移动端开发,但我对移动端零经验。不出意外的,挂了。哈哈哈哈哈,纯粹积累下面试经验 + +之后接触的是`腾讯文档`,整个面试周期还是蛮长的,将近三周时间。一、二面技术面、三面 leader 面,四面 HR。很可惜的,HR 面,薪资没谈妥,被膈应到了。 + +**心态有点炸了** + +三月份,收到的面试邀约并不多,除却顺丰、腾讯外,也面过两三家小公司,仅拿到过一家小公司的 offer,考虑许久没去这家公司。 + +惯例中的金三银四没看到,倒是感受了铜三铁四的寒气。 + +--- + +
四月
+ +一个多月的投递简历,整体感觉卷的厉害。 + +BOSS 上抛出的岗位,很多要求一兼多职,即要求 PC 开发,也要移动开发、甚至小程序开发。适合自己的岗位不多,三月下旬、四月初行情一直不太好。 + +**焦虑了** + +有一天,失眠了。白天,心慌、手不自觉的颤抖。胸中似乎有一股怒火,想发泄,无处呐喊。 + +知道自己的精神状态出问题了。一个多月的独处,每天在出租屋内,无人交谈,再加上工作不顺,压抑、抑郁了。 + +之后的几天里,一直是这种状态。没有刻意的去思考工作、去学习,但那压力如水,包裹全身。 + +人生第一次感到那么的无助,但我知道,只能靠自己。 + +**自救** + +我们的公司虽然停止营业了,但办公室还在。之前只是一直在准备复习以及面试,很少去了。 + +之后每天都去办公室,与李总、凯哥闲聊,喝茶看报聊天... + +哦,对了,还有我的猫,大黄,我把大黄也送到了办公室。每天三人一猫,渐渐的状态好多了。 + +**他救** + +发小,`宇宇`。一天,问我工作顺利否,我跟他讲焦虑了`~_~` + +接下来的几天,每晚跟我“煲电话粥”,直到有天他需要出差,着实没时间了。那几天,最期待的就是晚上闲聊,有人跟我说说话,很开心。 + +老铁,`拭心`。年后本意是想着离开一线城市,找个非一线定居的。但行情的差劲,使我迷茫、焦虑了。一天晚上找他聊关于定居的问题,一方面是取经、一方面是缓解焦虑。 + +当然,还有其他人呢,`智慧`、`小君君呀`、`萌`、`超哥`等。一向不太喜欢闲聊的我,这半个月似乎将一年的唠嗑给唠完了。 + +由衷感谢他们,陪我度过这段阴暗时光。 + +--- + +
五月
+ +辗辗转转,终究是离开了深圳 + +这次离开,若再要回去,会是何日,哪般场景呢? + +--- + +
结束语
+ +1. 常被问到如何看待自己的这段创业经历。 + +很幸运,人生中遇到李总、鑫哥、凯哥,他们是有想法、有活力、敢想敢做的可爱的人啊。一段宝贵的友情。 + +至于其它的,可以留待五年、十年后再回首,应当是另一番风景。 + +2. 机会与意外哪个会先来呢? + +我不知道呢,我所能做的就是,做好力所能及的事,强大自身。若是机会,则顺风而起;若是意外,也多几分防御的能力。 + +3. 此去欲何 + +``` +> 大圣,此去欲何? +> 踏南天,碎凌霄。 +> 若一去不回? +> 便一去不回。 +``` diff --git a/config/date/202306/note.md b/config/date/202306/note.md new file mode 100644 index 0000000..7275f38 --- /dev/null +++ b/config/date/202306/note.md @@ -0,0 +1,3 @@ +- [一个人开始废掉的表现](https://mp.weixin.qq.com/s/H0uDj7VnpldW33d2n7p2-w) + +- [debugger](https://mp.weixin.qq.com/s/l6dNUFE1b2xKzncpt4CL_A) \ No newline at end of file diff --git "a/config/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md" "b/config/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md" new file mode 100644 index 0000000..b3a31d4 --- /dev/null +++ "b/config/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md" @@ -0,0 +1,4 @@ +# 参考 + +- [Web 应用中的撤销与重做](https://zhuanlan.zhihu.com/p/43743782) +- [三种 undo/Redo 的实现](https://blog.csdn.net/wang15061955806/article/details/72652066) diff --git "a/config/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md" "b/config/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md" new file mode 100644 index 0000000..2d4c960 --- /dev/null +++ "b/config/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md" @@ -0,0 +1,69 @@ +--- +outline: deep +--- + +# 五六月那点事儿 + +导读: + +1. 工作 +2. 生活 +3. 发展 + +## 成都 + +成都啊,曾三去成都。 + +第一次,是大学临开学前,去姐姐家玩。当时的最深的印象是街道两旁好多好多的常青树,枝繁叶茂,一颗胜过一颗,生机盎然。 + +第二次,是与同学到成都听讲座。演讲的内容早已忘记,但人还依然记得。 + +第三次,还是与朋友一起闲逛成都,宽窄巷子、锦里、春熙路、电子科大... + +## 工作 + +又一次来到了成都, + +## 生活 + +## 发展 + +设计模式中的里氏替换原则,阐述了通过继承、多态对业务进行解耦,但站在个人发展的角度,更推崇聚敛,强调不可替代性。 + +一位初级工程师可以随时被替代,但要替换一位架构师,是需要花费很大代价的,现实中是不会随意替换架构师的。 + +### 前端的现状 + +技术方面,前端已过了百花齐放的阶段,技术及其周边基本上稳定了下来了。 + +- 框架 + - `虚拟DOM系列`: React Vue + - `无虚拟DOM系列`: Svelet SolidJS + - `WebComponent`: Lit +- 构建 + - `webpack` + - `vite` + - `rollup` + - `esbuild` +- 规范化 + - babel + - eslint + - prettier +- CICD + +### 前端的价值 + +曾面试某利控股,与面试官聊天时,他的观点是前端会点就行,最主要的还是后端,要更懂后端才行。他拿尤大举例子,说除非前端做到尤大的地步,否则都无所谓。 + +技术是手段,业务才是价值。通过技术辅助业务实现价值,才能体现出技术的价值。 + +当前的社会大环境下,大家都提倡将本增效,前端能做些哪些事情体现更大的`商业价值`呢? + +1. 工具类 + +- 低代码平台 + +2. 插件类 + +- VSCode 插件 +- 浏览器插件 diff --git a/config/date/202308/Chrome-Memory.md b/config/date/202308/Chrome-Memory.md new file mode 100644 index 0000000..29832cb --- /dev/null +++ b/config/date/202308/Chrome-Memory.md @@ -0,0 +1,88 @@ +--- +outline: deep +--- + +# Chrome Devtools 之 Memory + +# 前言 + +Chrome 开发者工具的“内存”面板提供了有关网页如何使用内存的信息。如果您注意到您的网站变慢了,则应将内存泄漏视为可能的原因。Chrome Memory 标签页旨在解决内存问题,包括调试 JavaScript 内存泄漏。 + +# Memory 面板 + +Memory 面板用于查找内存问题,例如内存泄漏、膨胀和垃圾回收,这些问题都会影响页面性能。通过录制快照,可以详细的查看当前页面使用情况。 + +支持快照类型: + +- heap snapshot 堆快照 +- Allocation instrumentation on timeline 时间表上的分配工具 +- Allocation sampling 分配抽样 + +## Heap Snapshot + +### 录制快照 + +路径:Chrome DevTools --> Memory --> Heap Snapshot --> Take Snapshot + +通过上述的步骤可以录制一份当前的内存快照,开发者工具支持将已录制的快照数据存储到本地文件,同时也支持将数据导入到开发者工具。 + +小技巧:通过导出、导入功能,分析不同时刻下当前站点的内存使用状态,辅助内存使用分析。 + +### 面板内容 + +加载快照后,可以进一步检查 JavaScript 对象和 DOM 节点的内存分布(在拍摄快照时)。 + +分析数据可以从多个视图查看: + +#### 概要视图(Summary View) + +可以看到一个表,其中包含从它们派生的构造函数和对象(按大小、距离和保留的对象数分组)。表字段解释: + +- Constructor:用于构造对象的 JavaScript 函数。 +- Distance:与根的距离。距离越远,物体加载和处理所需的时间就越长。 +- Shallow Size:通过特定构造函数创建的每个对象的阴影大小。 +- Retained Size:一组对象中最大的保留大小 + +#### 包含视图(Containment View) + +可以看到一张表,从对象(JavaScript 对象或 DOM 节点)的维度查看堆信息,表字段解释: + +- Object:特定的 JavaScript 对象或 DOM 节点。 +- Distance:一组节点中距离根节点最短的路径 +- Shallow Size:通过特定构造函数创建的每个对象的 Shallow Size 之和 +- Retained Size:一组对象的最大保留大小 + +#### 统计视图(Statistics View) + +环形图,显示存在的每种类型的对象总体占用的内存量。 + +## Allocation instrumentation on timeline + +录制操作期间新分配的内容 + +## Allocation sampling + +Record memory allocation using sampling method. this profile type has minimal performance overhead and can be used for long running operations. it provide good approximation of allocations broken down by javascript execution stack. + +使用采样方法记录内存分配。这种配置文件类型的性能开销最小,可以用于长时间运行的操作。它提供了 javascript 执行堆栈分解的分配的良好近似。 + +表字段解释: + +- Self Size: 函数本身使用的内存。 +- Total Size: 函数所属集合使用的内存。 +- Function: 在操作中被记录的函数。 + +# 何时会出现内存泄漏 + +- 意外的全局变量 +- Detached DOM Nodes 分离的 DOM 节点 +- 闭包 + +# 案例 + +# 总结 + +- [^1][Chrome Memory Tab: Learn to Find JavaScript Memory Leaks](https://www.bitdegree.org/learn/chrome-memory-tab#chrome-memory-tab-main-tips) +- [^2][JavaScript Memory Profiling](https://github.com/GoogleChrome/devtools-docs/blob/master/docs/javascript-memory-profiling.md) +- [^3][Record heap snapshots](https://developer.chrome.com/docs/devtools/memory-problems/heap-snapshots/) +- [^4][How to Use the Allocation Profiler Tool](https://developer.chrome.com/docs/devtools/memory-problems/allocation-profiler/) diff --git "a/config/date/202308/vue\344\271\213$destroy.md" "b/config/date/202308/vue\344\271\213$destroy.md" new file mode 100644 index 0000000..66457f9 --- /dev/null +++ "b/config/date/202308/vue\344\271\213$destroy.md" @@ -0,0 +1,64 @@ +--- +outline: deep +--- + +# vue 中的组件销毁 + +通常会在 vue 的生命周期 beforeDestroy 和 destroyed 中做些性能方面的处理,比如注销事件、清楚内存占用等。 + +vue2 中提供了`instance.$destroy`接口可以去销毁一个组件,那么`$destroy`中都做了什么呢 + +## vue2 的 $destroy + +```js +Vue.prototype.$destroy = function () { + const vm: Component = this; + if (vm._isBeingDestroyed) { + return; + } + callHook(vm, "beforeDestroy"); + vm._isBeingDestroyed = true; + // remove self from parent + const parent = vm.$parent; + if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) { + remove(parent.$children, vm); + } + // teardown scope. this includes both the render watcher and other + // watchers created + vm._scope.stop(); + // remove reference from data ob + // frozen object may not have observer. + if (vm._data.__ob__) { + vm._data.__ob__.vmCount--; + } + // call the last hook... + vm._isDestroyed = true; + // invoke destroy hooks on current rendered tree + vm.__patch__(vm._vnode, null); + // fire destroyed hook + callHook(vm, "destroyed"); + // turn off all instance listeners. + vm.$off(); + // remove __vue__ reference + if (vm.$el) { + vm.$el.__vue__ = null; + } + // release circular reference (#6759) + // https://github.com/vuejs/vue/issues/6759 + if (vm.$vnode) { + vm.$vnode.parent = null; + } +}; +``` + +从源码中可以看到`$destroy`主要做了这么几件事: + +1. 调用生命周期钩子`beforeDestroy` +2. 从父 VNode 中清楚自身 +3. 清除自身实例上的所有 watcher +4. 触发后代组件的 `destroy` 钩子 +5. 调用当前实例的所有监听事件(`$on` 事件) +6. 移除`$el`上的`__vue__`属性 +7. 将组件实例标记为`_isDestroyed` + +从源码实现的话,可以看到整个流程中,操作的是 VueComponent 实例的数据, diff --git a/config/date/202309/minimap/img/minimap.png b/config/date/202309/minimap/img/minimap.png new file mode 100644 index 0000000..64927a9 Binary files /dev/null and b/config/date/202309/minimap/img/minimap.png differ diff --git a/config/date/202309/minimap/readme.md b/config/date/202309/minimap/readme.md new file mode 100644 index 0000000..63628d2 --- /dev/null +++ b/config/date/202309/minimap/readme.md @@ -0,0 +1,93 @@ +--- +outline: deep +--- + +# 编辑器的缩略图实现原理 + +## 一、背景 + +部分 Web 版的 IDE 编辑器未曾实现缩略图功能,探寻一下缩略图的实现逻辑。以 VSCode 为例。 + +VSCode 的编辑器是`monaco`实现的,编辑器的编辑区都是采用的`虚拟渲染`,即仅渲染可视区的代码,可视区之外的动态去除 DOM 节点。 + +> 打开 VScode > Help > Toggle Developer Tools,观察 DOM 节点的状态变化,可以看到是在动态变化。 + +## 二、功能特性 + +参照 VSCode 的缩略图的能力,功能包括: + +1. 滚动。缩略图与编辑器的滚动同步 +2. 拖拽。缩略图中的滑块拖拽功能 +3. 点击。缩略图的非滑块区域,通过点击操作定位到对应的代码位置 + +其它的特性: + +1. 代码量多的场景下,缩略图中展示的是全量代码中的部分 +2. 代码量多的场景下,滚动时,缩略图中的代码与滑块是同时在滚动的 + +## 三、方案设计 + + + +假设: + +- 编辑器的屏高为 1,缩略图中展示的最大代码量为 N 屏的代码,代码总量为 M。 +- 能够拿到编辑器的全量代码 + +整体设计: + +```mermaid +graph TB + a(缩略图滚动事件) --> b[变更编辑器的垂直滚动条的 scrollTop] + c(缩略图拖拽事件) --> b + d(缩略图点击事件) --> b + b --> e(触发编辑器滚动条的滚动事件) + e --> f(修改缩略图中滑块的定位) + e --> h(修改缩略图中代码块的定位) + i(编辑器中代码变化事件) --> f + i --> h +``` + +### (一) 滚动同步问题 + +主要处理两个场景: + +- 编辑器滚动事件 +- 缩略图滚动事件 + +#### 1.1 编辑器滚动事件 + +当编辑器滚动时,变更缩略图中代码块偏移位置,以及滑块位置。 + +具体的,缩略图中的代码块、滑块偏移距离,使用编辑器的滚动百分比进行计算。 + +核心思路:缩略图中滑块移动的百分比 = 缩略图中代码移动的百分比 = Ace Editor 垂直滚动条移动的百分比 + +#### 1.2 缩略图滚动事件 + +为缩略图注册`wheel`事件,当触发事件时,动态变更编辑器的滚动位置即可 + +### (二)缩略图点击事件 + +当在缩略图中触发点击事件时,假设鼠标点击位置到滑块左上角的垂直距离 为 Dy + +$$ +Dy = 滑块的相对偏移高度 + \frac{滑块的相对偏移高度}{滑块可偏移高度} \times 缩略图中代码块可偏移高度 +$$ + +从上述的公式中,可以计算出`滑块的相对偏移高度`,然后即可得出滚动的百分比。 + +因为,编辑器的滚动百分比 = 缩略图滑块偏移百分比 = 缩略图代码块偏移百分比,此时设置编辑器的滚动高度即可。 + +## 四、方案优化 + +此时缩略中的实现是基于全量代码,渲染所有的代码,通过移动缩略图中的代码实现。 + +可以将代码块这部分修改为动态渲染,知道了滚动百分比,即可计算出需要渲染的开始行。在知道行高的情况下,计算出结束行。进而实现动态渲染。 + +## 五、引用 + +- [^1] https://ace.c9.io/ +- [^2] https://github.com/ajaxorg/ace/wiki/Configuring-Ace +- [^3] https://marvinsblog.net/post/2022-04-16-web-minimap/ +- [^4] https://larsjung.de/pagemap/ diff --git a/config/date/202309/width/image-1.png b/config/date/202309/width/image-1.png new file mode 100644 index 0000000..ef1a491 Binary files /dev/null and b/config/date/202309/width/image-1.png differ diff --git a/config/date/202309/width/image.png b/config/date/202309/width/image.png new file mode 100644 index 0000000..e303f6a Binary files /dev/null and b/config/date/202309/width/image.png differ diff --git a/config/date/202309/width/index.html b/config/date/202309/width/index.html new file mode 100644 index 0000000..86fbc13 --- /dev/null +++ b/config/date/202309/width/index.html @@ -0,0 +1,38 @@ + + + + + + Width + + + +
10px
+
20px
+
30px
+
+
sdsd
+ + + + diff --git a/config/date/202309/width/readme.md b/config/date/202309/width/readme.md new file mode 100644 index 0000000..024a99b --- /dev/null +++ b/config/date/202309/width/readme.md @@ -0,0 +1,52 @@ +--- +outline: deep +--- + +# 宽度问题 + +## 一、魔法 + +为 DOM 设置宽度有哪些方式呢?最常用的是配置`width`属性,`width`属性在配置时,也有多种方式: + +- width +- min-width +- max-width + +通常当配置了 width 时,不会再配置`min-width` `max-width`,如果将这三者混合使用,会有什么魔法效果呢? + +测试代码: + +```html + + +
sdsd
+``` + +| min-width | width | max-width | 盒子最终宽度 | +| --------- | ----- | --------- | -------------------------- | +| 200px | | | 最小宽度 200px | +| | 100px | | 定宽 100px | +| | | 300px | 最大宽度 300px | +| 200px | 100px | | 定宽 Max(min-width, width) | +| | 100px | 300px | 定宽 Min(width, max-width) | +| 200px | 100px | 300px | 定宽 Max(min-width, width) | + +## 二、应用 + +![Alt text](image.png) + +ElementUI 的组件 Select,当可选项的文本较长时,弹框也会跟着扩增宽度,因为它只设置了`min-width`属性。 + +提出需求,当可选项的文本过长时,以省略号展示,不运行弹框宽度增加。 + +此时可以应用上述的规则,为弹框添加一个`width: 0px`即可 + +![Alt text](image-1.png) diff --git "a/config/date/202310/Web\346\200\247\350\203\275.md" "b/config/date/202310/Web\346\200\247\350\203\275.md" new file mode 100644 index 0000000..77b1936 --- /dev/null +++ "b/config/date/202310/Web\346\200\247\350\203\275.md" @@ -0,0 +1,163 @@ +--- +outline: deep +--- + +# 概述 + +## CSS + +- css 简写,减少字节数 +- css 浅选择器,大幅减少样式表的大小 +- uncss 移除多余的属性 +- 避免@import。会造成延迟渲染 +- 过渡 +- will-change +- 关键 css 及其解决的问题 + - 关键 css。用户立即看到的内容 + - 非关键 css +- loadcss 库,使用 perload 语法加载首屏以外的内容 +- cssrelpreload +- mydevice.io 枚举各种设备的分辨率 + +```html + +``` + +## 图片 + +```html + + + + +``` + +主流图像类型: + +1. 光栅(位图)。JPEG、PNG、GIF + - 有损。JPEG、WebP(有损) + - 无损。GIF、PNG、WebP(无损) +2. SVG。矢量图,任意缩放不会任何视觉效果 + +自适应图片 + +```html + + + +``` + +## 图像的进一步处理 + +- 雪碧图 +- 压缩图片 +- webp +- 延迟加载 + +雪碧图 + +- npm i -g svg-sprite + +图片优化 + +- imagemin +- svgo + +## 第 9 章 使用 Service Worker 提升性能 + +## 第 10 章 微调资源传输 + +## 第 11 章 http2 + +http1 + +- 问题: + - 对首阻塞。通常一次最大处理六个请求 + - 未压缩的头部 + - 缺少 HTTPS 的授权 + +http2 + +- 提供成本更低的请求 + - 一套新的传输体系。连接->流->消息->帧 + - http2,一个连接,处理多个请求 +- 头部压缩。 + - 采用索引的思路,对相同的 header 值只用引用 +- 服务器推送 + +关于 Http1 的思考: + +Q1:http1,性能优化时,通常都会去竭力去减少请求数量,根本原因是什么? + +A1:因为队首阻塞的原因,同一批次的 6 个请求若是未完成,则后续的请求会一直处于等待状态。 + +Q2:域名分片,可用,但麻烦,不值得 + +A2:通过不用的域名,绕过最大的并发请求限制。 + +Q3:为何要压缩头部 + +A4:1. 现代请求通常在 headers 添加很多信息,如跨域、Token、Cookie 等,头部越来越大。在传输时,压缩头部是还很有必要的。 + +Q4:服务器压缩了什么? + +A4:服务器仅仅压缩传输的 Body,不压缩 headers + +Q5:内联资源的优劣势 + +A5:劣势:不能使用缓存;加快页面的渲染速度,因为内联资源不会单独开发起请求获取数据。 + +关于 Http2 的思考: + +Q1:服务器的压力增加了? + +A2:从测试来看,当大批量请求发起时。http1 时,请求的瓶颈压力在前端,使用瀑布图查看时,请求的排队时间过长;http2 时,请求的响应时间过长。所以,从请求发起到请求结束,孰优孰劣?这是个问题。 + +资源压缩 + +### HTTP2 服务器推送 + +服务器推送静态资源,在相应头中添加 header: + +> link: <./css/index.css>; rel=preload; as=style + +服务器推送,不会考虑缓存问题,无论用户代理是否存在缓存,都会推送全量数据 + +### HTTP 1 / HTTP 2 优化时的差异点: + +1. HTTP 1 优化时更多的考虑资源捆绑,如雪碧图,减少请求数量 +2. HTTP 2 优化时,更多考虑的是颗粒度。因为连接的代价更低,优先利用 HTTP 缓存的特性进行优化 + +## gulp + +gulp 是一个流式构建系统。流从磁盘上的源读取数据,并进行处理和转换,然后将结果写回磁盘。常见的任务能力: + +- 缩小 HTML +- JS 处理。丑化 JS +- CSS 处理。编译 less、scss 等 +- 图片处理。压缩图片、转 WebP 等 + +生态很好 + +思考: + +- gulp 与 webpack 之间的区别,优劣势 + +## 插件: + +1. 提供网格条线 diff --git "a/config/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md" "b/config/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md" new file mode 100644 index 0000000..1d7fef0 --- /dev/null +++ "b/config/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md" @@ -0,0 +1,267 @@ +--- +outline: deep +--- + +# 性能优化总纲 + +本文仅论述优化的手段,不涉及执行这些操作的根因,后续空闲时在整理“为什么”。 + +## 一、性能指标 + +指标有很多,比如 lighthouse 中使用的指标有 FCP、LCP、TBT、CLS、Speed Index,这些是最终的性能评估指标。 + +性能优化方案落地时,主要参看的指标: + +| 指标 | 名词解释 | 描述 | +| ------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------ | +| DCL [DOMContentLoaded] | DOM 解析结束时间 | HTML 文档被解析成 DOM 树并且所有的标签都已经可用,但是外部资源(如图像、样式表等)可能还没有加载完成。 | +| FP [First Pain] | 首次绘制 | 浏览器首次将像素渲染到屏幕上的时间点,即页面第一次有可见的内容呈现给用户。 | +| FCP [First Content Pain] | 首次内容绘制 | 浏览器首次将第一个有意义的内容(如文本、图像、SVG 等)呈现到屏幕上的时间点。 | +| LOAD | 加载结束时间 | 在整个页面及其所有资源(包括图像、样式表、脚本等)加载完成后触发。 | + +### (1)指标对应的值的获取 + +通过 Chrome 的 Performance 面板,可以看到大部分的值,这里说下如何通过 API 获取值。 + +1.1 DCL + +```js +console.time("DCL"); +document.addEventListener("DOMContentLoaded", function (event) { + console.timeEnd("DCL"); +}); +``` + +1.2 FP 与 FCP + +```js +const [fp, fcp] = performance.getEntriesByType("paint"); + +const fpDuration = fp.startTime; +const fcpDuration = fcp.startTime; +``` + +1.3 Load + +```js +const entry = performance.getEntries()[0]; +const loadDuration = entry.duration; +``` + +## 二、资源模块 + +针对静态资源保持一个大体的优化思路,即在当前优先处理与当前页面相关的资源。 + +### (1)HTML 资源 + +下载过程中没有相关的处理 + +### (2)CSS 资源 + +#### 2.1 减少字节 + +- CSS 简写。属性能够简写的,不要分开写 +- CSS 浅选择器。去除非必要的、详细的选择器,这是一个累活。 + +#### 2.2 移除未使用的 CSS + +一个复杂项目中可能会加载很多的 css 样式表,有些样式表不一定会被使用到,可以将这部分的样式去除。相关工具: + +- uncss + +#### 2.3 启用 GPU 渲染 + +针对变换、动画等场景,可以启用 GPU 渲染。方式: + +- will-change + +#### 2.4 @import 问题 + +避免@import,其弊端: + +- 阻塞页面加载。当使用@import 导入外部样式表时,浏览器会在解析到@import 规则时暂停页面渲染,并立即请求导入的样式表 +- 顺序依赖性。@import 导入的样式表必须在主样式表中等待导入样式表加载完毕后才能应用。 +- 额外的 HTTP 请求。每次使用@import 导入样式表时,浏览器都需要发起额外的 HTTP 请求来获取该样式表 +- 无法并行加载。由于@import 导入的样式表必须在主样式表中等待加载完毕后才能继续渲染,因此无法与主样式表并行加载。 + +### (3)JS 资源 + +#### 3.1 资源处理 + +##### 压缩 + +`压缩资源`,将多余的换行符、多余的打印等去除; + +##### 丑化 + +`丑化资源`,将代码中变量名、函数名等替换为简短的、难以阅读的代码。 + +##### 分包 + +当个 JS 文件交大时,尝试执行分包处理。主流的构建工具都包含对应的处理方式: + +- webpack + - dll。将第三方库按照一个的规则抽成一个或多个文件。 + - optimization + - externals。第三方库,以 umd 的方式引入工程。打包时不参与打包 + - splitChunks。按照一定的规则将包模块进行拆分。 +- rollup + - manualChunks。按照一定的规则将包模块进行拆分。 + +#### 3.2 资源下载 + +- async。异步加载资源,下载完成后立即执行脚本 +- defer。异步加载资源,在 load 事件时执行脚本 +- preload。提前加载资源 +- prefetch。空闲时加载下一个页面需要使用的资源 + +### (4)图片资源 + +#### 4.1 图标 + +有段时间,雪碧图是一个很流行的图标整合方式。到了现在这个阶段,字体图标是一个更好的方案。比如:阿里字体图 + +#### 4.2 格式选择 + +常用的图片格式有 png、jpg、svg、webp。图片可以按照多个维度进行划分,如下: + +- 无损图和有损图 +- 光栅图和矢量图 + +`WebP`有 google 开发,旨在提供更高的压缩率和更高的图像质量,以替代传统的 JPEG、PNG 和 GIF 格式。`WebP`格式的特性: + +- 支持有损压缩和无损压缩 +- 支持透明色 +- 支持动态图 +- 压缩率更高 + +推荐使用`WebP`格式,主流浏览器厂商都已支持。 + +#### 4.3 回退写法 + +为了保险起见,可以采用``标签的回退语法确保正常显示。 + +```html + + + + 图像 + +``` + +## 三、预加载 + +预加载分为几种类型,如: + +### (1)网络处理 + +#### dns-prefetch + +浏览器在用户浏览页面时,在后台运行 DNS 的解析 + +```html + +``` + +#### preconnect + +允许浏览器在一个 HTTP 请求正式发给服务器前预先执行一些操作,这包括 DNS 解析,TLS 协商,TCP 握手,这消除了往返延迟并为用户节省了时间。 + +```html + +``` + +### (2)资源预加载 + +在浏览器空闲时,加载站点将来可能用到的资源。 + +```html + + + + + + +``` + +## 四、懒加载 + +### (1)图片懒加载 + +当资源出现在可视区时,再加载资源。实现方式,基于`IntersectionObserve` + `src 替换`的思路实现。 + +### (2)路由懒加载 + +现代工程,大多是 SPA 工程,路由是有前端控制,当路由变化时再加载对应的资源很有必要。 + +#### 2.1 Vue 工程 + +```js +const Home = () => import("./components/Home.vue"); +const About = () => import("./components/About.vue"); + +const routes = [ + { path: "/", component: Home }, + { path: "/about", component: About }, +]; + +const router = new VueRouter({ + routes, +}); +``` + +#### 2.2 React 工程 + +```js +const Home = React.lazy(() => import("./components/Home")); +const About = React.lazy(() => import("./components/About")); + +function App() { + return ( + + Loading...}> + + + + + + + ); +} + +export default App; +``` + +## 五、网络模块 + +### (1)CDN + +启用 CDN 网络,减少资源的加载时长。比如:腾讯桶 + +### (2)压缩 + +请求传输的压缩算法,常用的有: + +- GZIP。一种常用的压缩算法,它基于 DEFLATE 算法 +- Brotli。由谷歌开发,与 GZIP 和 Deflate 相比,Brotli 具有更高的压缩率。 + +备注: + +> 存在无损的 PNG 资源时,不要启用 GZIP。否则会起到反效果,导致压缩后的文件更大 + +### (3)HTTP + +升级为 HTTP/2,好处: + +- 提供成本更低的请求 + - 一套新的传输体系。连接->流->消息->帧 + - HTTP/2,一个连接,处理多个请求 +- 头部压缩。 + - 采用索引的思路,对相同的 header 值只用引用 +- 服务器推送 + +## 六、总结 + +性能优化,名词高大上,真正落地时会发现都是些基本功。 + +方法很简单,重要的是要知道为什么要这么做,空闲时再聊这块。 diff --git a/config/date/202312/img/gantt.png b/config/date/202312/img/gantt.png new file mode 100644 index 0000000..0c3ed44 Binary files /dev/null and b/config/date/202312/img/gantt.png differ diff --git "a/config/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md" "b/config/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md" new file mode 100644 index 0000000..eab3984 --- /dev/null +++ "b/config/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md" @@ -0,0 +1,49 @@ +--- +outline: deep +--- + +# 一次特殊的开发过程 + +当一个项目,备受领导重视,要啥给啥时,你是否很高兴呢? + +当一个项目,开发、测试、上线周期仅有一个月的时间时,你是否高兴呢? + +当一个项目,主开发人员均为临时支援人员的时候,你是否有点慌呢? + +当一个项目,仅有一两位知道大部分产品设计时,你是否确实慌了呢? + +当一个项目的参与人员达到八十人时,你是否压力倍增呢? + +当上面的假设均为真,汇聚在一个项目中时,做我负责人的你,是否心底颤抖呢?反正我是挺慌的,甚至觉的这是一个注定要黄的项目。 + +当一个项目的资源、进度、质量,复杂一个量级时,如何规划任务、进度、质量呢? + +## 一、灰度上线了 + +如上面所述,有幸参与到一次特殊的项目开发过程,上文的所有属性均已满足,`领导重视`、`一个月上线`、`临时支援人员`、`模糊的产品`、`八十人`... + +老实说,接到任务时,我是挺慌的,甚至一度认为,哪怕多给一倍的开发周期,也必定是完不成的。 + +但结果是好的,仅比预期的上线周期`晚了一周`,暂时达到了`灰度上线`的目标。 + +## 二、畸形的项目 + +整个项目的参与人员分为数个工种:项目、产品、UI/UE、前端、后台、测试 + +整个项目的`参与人员`一度达到了八十人左右,为什么说是`一度`?因为人员是一批一批的加入的,并不是在项目开工之出就一次性投入的。 + +此次项目的特殊点: + +- 此次项目没有启动大会,准确的说,没有针对涉及所有人员的启动大会。 +- 此次项目没有需求,准确的说,开发人员不知道需求。 +- 此次项目没有范围,准确的说,开发人员不知道功能范围边界在哪里。 + +所以问题来了,如何保证项目质量的? + +> 答案是,测试人员。在此次项目中,测试人员可以被看做是`需求提出者`与`功能验收者`的集合体。从测试人员介入测试开始,到第一次灰度上线,这之间,产生了三千多的 BUG 单,恐怖如斯~\_~ + +## 三、人员流动 + +![gantt](./img/gantt.png) + +从 gantt 图中可以看到,其中一位很重要的角色,`产品` diff --git a/config/index.md b/config/index.md new file mode 100644 index 0000000..af6134e --- /dev/null +++ b/config/index.md @@ -0,0 +1,74 @@ +--- +# https://vitepress.dev/reference/default-theme-home-page +layout: home + +head: + - - meta + - name: author + content: swlws + - - meta + - name: keywords + content: swlws 双周回顾 + +hero: + # name: "swlws" + text: 安安静静的小世界 + tagline: 输出、分享、推广 + actions: + - theme: brand + text: Markdown Examples + link: /markdown-examples + - theme: alt + text: API Examples + link: /api-examples + +features: + - title: 每日 + details: 每日随意记录,开发过程中的踩坑记录、经验总结 + - title: 周 + details: 固定双周回顾(不出意外的话),回顾经历、总结成长、展望未来 + - title: 工具 + details: 小工具 +--- + +--- + +::: tip 埃隆·马斯克 + +对于所有曾被我冒犯的人,我只想对你们说,我重新发明了电动车,我要用火箭飞船把人类送上火星。 + +可我要是个冷静、随和的普通人,你们觉得我还能做到这些吗? + +::: + +::: warning 史蒂夫·乔布斯 + +只有疯狂到认为自己可以改变世界的人才能改变世界。 + +::: + +--- + + + + + +--- + +
+ +

微信公众号

+
diff --git a/config/static/csdn.svg b/config/static/csdn.svg new file mode 100644 index 0000000..7f6290c --- /dev/null +++ b/config/static/csdn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/config/static/logo.png b/config/static/logo.png new file mode 100644 index 0000000..9418492 Binary files /dev/null and b/config/static/logo.png differ diff --git a/config/static/wechat_article.jpg b/config/static/wechat_article.jpg new file mode 100644 index 0000000..318ddd0 Binary files /dev/null and b/config/static/wechat_article.jpg differ diff --git a/config/week/001/img/chrome-memory.png b/config/week/001/img/chrome-memory.png new file mode 100644 index 0000000..98ce3cd Binary files /dev/null and b/config/week/001/img/chrome-memory.png differ diff --git a/config/week/001/img/cleanpng.png b/config/week/001/img/cleanpng.png new file mode 100644 index 0000000..202df73 Binary files /dev/null and b/config/week/001/img/cleanpng.png differ diff --git a/config/week/001/img/cloud.jpg b/config/week/001/img/cloud.jpg new file mode 100755 index 0000000..99edbbd Binary files /dev/null and b/config/week/001/img/cloud.jpg differ diff --git a/config/week/001/img/iradesign.png b/config/week/001/img/iradesign.png new file mode 100644 index 0000000..4b02a78 Binary files /dev/null and b/config/week/001/img/iradesign.png differ diff --git a/config/week/001/img/markdoc.png b/config/week/001/img/markdoc.png new file mode 100644 index 0000000..8e967f3 Binary files /dev/null and b/config/week/001/img/markdoc.png differ diff --git a/config/week/001/img/pjchender.png b/config/week/001/img/pjchender.png new file mode 100644 index 0000000..e9eb4bb Binary files /dev/null and b/config/week/001/img/pjchender.png differ diff --git a/config/week/001/img/pkg-size.png b/config/week/001/img/pkg-size.png new file mode 100644 index 0000000..a30520a Binary files /dev/null and b/config/week/001/img/pkg-size.png differ diff --git a/config/week/001/img/turbopack.png b/config/week/001/img/turbopack.png new file mode 100644 index 0000000..1bea36b Binary files /dev/null and b/config/week/001/img/turbopack.png differ diff --git a/config/week/001/img/viz-js.png b/config/week/001/img/viz-js.png new file mode 100644 index 0000000..b95931a Binary files /dev/null and b/config/week/001/img/viz-js.png differ diff --git a/config/week/001/img/webcontainers.png b/config/week/001/img/webcontainers.png new file mode 100644 index 0000000..c71f39a Binary files /dev/null and b/config/week/001/img/webcontainers.png differ diff --git a/config/week/001/readme.md b/config/week/001/readme.md new file mode 100644 index 0000000..26cbbec --- /dev/null +++ b/config/week/001/readme.md @@ -0,0 +1,104 @@ +--- +title: 双周回顾#001 - 火烧云 +date: 2023/10/06 +desc: 第一周 +--- + +![cloud](./img/cloud.jpg) + +工作以来,许久未曾见过如此壮观的火烧云景观了。 + +# 文章 + +1、[穿透的 DIV (pointer-events)](https://www.oxxostudio.tw/articles/201409/pointer-events.html)1 + +pointer-events 是一个蛮有趣的 CSS3 属性,虽然主要是针对 SVG ,但其中几个属性应用在 div 上也是颇有意思。 + +顾名思义,这是一个针对滑鼠事件的属性,预设值为 auto,若值为 none,则可以穿越该元素,点击到下方的元素。 + +除了 auto 和 none,这是完整的属性列表:pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit,除了 auto 与 none,其他都是控制 SVG 的属性,若採用预设值,则 SVG 就是以 visiblePainted 来表现。 + +2、[pjchender.dev](https://pjchender.dev/)2 + +![pjchender](./img/pjchender.png) + +个人博客站点,包含前后端的知识点。 + +3、[Chrome Memory Tab: Learn to Find JavaScript Memory Leaks](https://www.bitdegree.org/learn/chrome-memory-tab)3 + +![chrome memory](./img/chrome-memory.png) + +浏览器端同样存在内存泄露的场景,这是性能稳定性相关的内容,需要去了解: + +- 如何发现内存泄露 +- 如何定位内存泄露 +- 如何解决内存泄露 + +# 工具 + +1、[Markdoc](https://markdoc.dev/)4 + +![mark doc](./img/markdoc.png) + +一个强大、灵活、基于 Markdown 的创作框架。 + +Markdoc 是一个基于 Markdown 的语法和工具链,用于创建自定义文档网站和体验。 + +我们设计 Markdoc 是为了支持 Stripe 的公共文档,这是我们最大、最复杂的内容网站。 + +2、[viz-js](https://viz-js.com/)5 + +![viz-js](./img/viz-js.png) + +适用于各种框架的 JavaScript 库,将图形图渲染为 SVG 元素,以在网页中显示它。 + +3、[pkg-size.dev](https://pkg-size.dev/)6 + +![pkg-size](./img/pkg-size.png) + +无需本地安装,在线检测 npm 包的大小。 + +4、[webcontainers.io](https://webcontainers.io/)7 + +![web containers](./img/webcontainers.png) + +通过将 Node.js 直接集成到您的 web 应用程序中,创造无与伦比的用户体验。 + +这项技术在 StackBlitz 中的在线 IDE 中可以体验到,其性能可以碾压同类的 web IDE。优势: + +1. 比你的本地环境更快。构建完成的速度比 yarn/npm 快 20%,软件包安装完成的速度比 yarn/npm 快 5 倍以上。 +2. 浏览器中的 Node.js 调试。与 Chrome DevTools 的无缝集成实现了本地后端调试,不需要安装或扩展。 +3. 默认情况下是安全的。所有代码的执行都发生在浏览器的安全沙盒内,而不是在远程虚拟机或本地二进制文件上。 + +5、[Why Turbopack?](https://turbo.build/pack/docs/why-turbopack)8 + +![turbopack](./img/turbopack.png) + +turbopack 是使用 rust 编写的构建工具,这篇文档将其与 vite、webpack 进行对比。 + +# 图片 + +1、[iradesign.io](https://iradesign.io/gallery/illustrations)9 + +![iradesign](./img/iradesign.png) + +商业风格的图标站点,支持下载 PNG、SVG 类型。 + +2、[cleanpng.com](https://www.cleanpng.com/)10 + +![clean png](./img/cleanpng.png) + +提供透明背景的图标。 + +# References + +- [1] 穿透的 DIV (pointer-events) https://www.oxxostudio.tw/articles/201409/pointer-events.html +- [2] pjchender.dev https://pjchender.dev/ +- [3] Chrome Memory Tab: Learn to Find JavaScript Memory Leaks https://www.bitdegree.org/learn/chrome-memory-tab +- [4] Markdoc https://markdoc.dev/ +- [5] viz-js https://viz-js.com/ +- [6] pkg-size.dev https://pkg-size.dev/ +- [7] webcontainers.io https://webcontainers.io/ +- [8] Why Turbopack? https://turbo.build/pack/docs/why-turbopack +- [9] iradesign.io https://iradesign.io/gallery/illustrations +- [10] cleanpng.com https://www.cleanpng.com/ diff --git a/config/week/002/img/001.webp b/config/week/002/img/001.webp new file mode 100644 index 0000000..0667fa0 Binary files /dev/null and b/config/week/002/img/001.webp differ diff --git a/config/week/002/img/apidoc.webp b/config/week/002/img/apidoc.webp new file mode 100644 index 0000000..c0c9199 Binary files /dev/null and b/config/week/002/img/apidoc.webp differ diff --git a/config/week/002/img/cwebp.webp b/config/week/002/img/cwebp.webp new file mode 100644 index 0000000..014e0ba Binary files /dev/null and b/config/week/002/img/cwebp.webp differ diff --git a/config/week/002/img/dom-to-image.webp b/config/week/002/img/dom-to-image.webp new file mode 100644 index 0000000..9721ef4 Binary files /dev/null and b/config/week/002/img/dom-to-image.webp differ diff --git a/config/week/002/img/esno.webp b/config/week/002/img/esno.webp new file mode 100644 index 0000000..fa32506 Binary files /dev/null and b/config/week/002/img/esno.webp differ diff --git a/config/week/002/img/flowchart_js.webp b/config/week/002/img/flowchart_js.webp new file mode 100644 index 0000000..838715e Binary files /dev/null and b/config/week/002/img/flowchart_js.webp differ diff --git a/config/week/002/img/heatmapjs.webp b/config/week/002/img/heatmapjs.webp new file mode 100644 index 0000000..7e2e698 Binary files /dev/null and b/config/week/002/img/heatmapjs.webp differ diff --git a/config/week/002/img/js-sequence-diagrams.webp b/config/week/002/img/js-sequence-diagrams.webp new file mode 100644 index 0000000..9b0f7b9 Binary files /dev/null and b/config/week/002/img/js-sequence-diagrams.webp differ diff --git a/config/week/002/img/jsdoc.webp b/config/week/002/img/jsdoc.webp new file mode 100644 index 0000000..d768a00 Binary files /dev/null and b/config/week/002/img/jsdoc.webp differ diff --git a/config/week/002/img/luckysheet.webp b/config/week/002/img/luckysheet.webp new file mode 100644 index 0000000..2962d1e Binary files /dev/null and b/config/week/002/img/luckysheet.webp differ diff --git a/config/week/002/img/modern-screenshot.webp b/config/week/002/img/modern-screenshot.webp new file mode 100644 index 0000000..c54eb9d Binary files /dev/null and b/config/week/002/img/modern-screenshot.webp differ diff --git a/config/week/002/img/nue-js.webp b/config/week/002/img/nue-js.webp new file mode 100644 index 0000000..ada478f Binary files /dev/null and b/config/week/002/img/nue-js.webp differ diff --git a/config/week/002/img/png-gzip.webp b/config/week/002/img/png-gzip.webp new file mode 100644 index 0000000..fdb7df0 Binary files /dev/null and b/config/week/002/img/png-gzip.webp differ diff --git a/config/week/002/img/spread-js.webp b/config/week/002/img/spread-js.webp new file mode 100644 index 0000000..ed4981a Binary files /dev/null and b/config/week/002/img/spread-js.webp differ diff --git a/config/week/002/readme.md b/config/week/002/readme.md new file mode 100644 index 0000000..1ef7b6d --- /dev/null +++ b/config/week/002/readme.md @@ -0,0 +1,116 @@ +--- +title: 双周回顾#002 - 红树林 +date: 2023/10/15 +desc: 第二周 +--- + +![红树林](./img/001.webp) + +红树林公园,一棵单独生长在海岸边的树,下面一根根树立的幼苗,是从它的根茎上生长出来的。傍晚落潮后,会有一只只小螃蟹在这里浪荡。当然,也会有海鸟在这里进食。 + +# 文档 + +1. [深入了解 Commonjs 和 Es Module](https://my.oschina.net/u/5079097/blog/5171250)1 + +Web 开发中,引用模块时有时使用`require`、有时使用`import`,这是基于两种不同的模块规范。本文深入讲解了`CommonJS`与`ESM`之间共性与差异性。 + +2. [图片要启用 gzip 压缩吗?绝对不要!](http://www.webkaka.com/blog/archives/images-no-need-to-use-gzip.html)2 + +![png-gzip](./img/png-gzip.webp) + +通常在做 Web 性能优化时,会启用 GZIP 压缩。当使用了无损压缩的 PNG 图时,压缩后的体积会比原图体积更大,做了反优化。本文讲解了为什么为发生这种现象。 + +3. [esno 与 tsx](https://github.com/esbuild-kit/esno)3 + +![esno](./img/esno.webp) + +一直以为 esno 与 tsx 是两个东西,还有谁像我一样认知的呢? + +4. [Nue JS](https://nuejs.org/docs/nuejs/)4 + +![nue-js](./img/nue-js.webp) + +随着生态的发展,三大主流 Web 框架的功能特性越来越多,源码体积也越来越大。但是有时新建一个小工程时,你并不需要那么复杂的生态,可以尝试下`NueJS`(2.3 kb)。 + +NueJS 是一个非常小(2.3kb minzipped)的 JavaScript 库,用于构建用户界面。它是 Nue 工具集的核心。它就像 Vue.js、React.js 或 Svelte,但没有钩子、效果、道具、门户、观察者、注入、暂停或其他不寻常的抽象。学习 HTML、CSS 和 JavaScript 的基础知识,就可以开始了。 + +# 工具 + +5. [流程图](http://flowchart.js.org/)5 + +![flowchart_js](./img/flowchart_js.webp) + +绘制流程图时,通常会使用阿里的 G6 等图标库,大且繁琐。当需求简单时,可以考虑换一个轻量级的库了。`flowchart.js` 压缩文件仅 70KB ,支持常规的流程图功能。 + +6. [时序图](https://bramp.github.io/js-sequence-diagrams/)6 + +![时序图](./img/js-sequence-diagrams.webp) + +一个简单的 javascript 库,用于将文本转换为矢量 UML 序列图。使用`Jison`来解析文本,使用 Snap.svg 来绘制图像。 + +7. [热力图 - heatmap.js](https://www.patrick-wied.at/static/heatmapjs/)7 + +![heatmapjs](./img/heatmapjs.webp) + +一个有趣的 JavaScript 库,在你的站点上生产一个透明背景的热力图,展示用户在站点的操作痕迹。 + +8. [图片转 webp](https://developers.google.com/speed/webp/download?hl=zh-cn)8 + +![cwebp](./img/cwebp.webp) + +在线的图片转`webp`的工具,质量参差不齐,何不尝试在 Chrome 推荐的本地工具呢。支持 Windows 版、Linux (aarch64)、Linux (x86-64)、macOS (arm64)、macOS (x86-64) + +9. [JSDoc](https://www.jsdoc.com.cn/)9 + +![jsdoc](./img/jsdoc.webp) + +JSDoc 3 是一个用于 JavaScript 的 API 文档生成器,类似于 Javadoc 或 phpDocumentor。可以将文档注释直接添加到源代码中。JSDoc 工具将扫描您的源代码并为您生成一个 HTML 文档网站。 + +10. [apidoc](https://apidocjs.com/)10 + +![apidoc](./img/apidoc.webp) + +11. [表格-Luckysheet](https://dream-num.github.io/LuckysheetDocs/zh/guide/)11 + +![luckysheet](./img/luckysheet.webp) + +Luckysheet ,一款纯前端类似 excel 的在线表格,功能强大、配置简单、完全开源。支持格式设置、单元格配置、行和列操作、图标、公式和函数等。 + +12. [表格-SpreadJS](https://www.grapecity.com.cn/developer/spreadjs/demo)12 + +![spread-js](./img/spread-js.webp) + +商用的表格,业务场景比较复杂时,可以考虑下这家的表格组件。 + +13. [Web 页面截图](https://github.com/qq15725/modern-screenshot)13 + +![Web 页面截图之 modern-screenshot](./img/modern-screenshot.webp) + +使用 HTML5 或者 SVG 快速将页面 DOM 节点转化为图片. + +14. [Web 页面截图之 dom-to-image](https://github.com/tsayen/dom-to-image)14 + +![dom-to-image](./img/dom-to-image.webp) + +`dom-to-image` 是一个库,可以将任意 dom 节点转换为用 JavaScript 编写的矢量(SVG)或光栅(PNG 或 JPEG)图像。 + +# References + +- [^1] 深入了解 Commonjs 和 Es Module https://my.oschina.net/u/5079097/blog/5171250 +- [^2] 图片要启用 gzip 压缩吗?绝对不要! http://www.webkaka.com/blog/archives/images-no-need-to-use-gzip.html +- [^3] esno 与 tsx https://github.com/esbuild-kit/esno +- [^4] Nue JS https://nuejs.org/docs/nuejs/ +- [^5] 流程图 http://flowchart.js.org/ +- [^6] 时序图 https://bramp.github.io/js-sequence-diagrams/ +- [^7] 热力图 - heatmap.js https://www.patrick-wied.at/static/heatmapjs/ +- [^8] 图片转 webp https://developers.google.com/speed/webp/download?hl=zh-cn +- [^9] JSDOc https://www.jsdoc.com.cn/ +- [^10] apidoc https://apidocjs.com/ +- [^11] 表格-Luckysheet https://dream-num.github.io/LuckysheetDocs/zh/guide/ +- [^12] 表格-SpreadJS https://www.grapecity.com.cn/developer/spreadjs/demo +- [^13] Web 页面截图 https://github.com/qq15725/modern-screenshot +- [^14] Web 页面截图之 dom-to-image https://github.com/tsayen/dom-to-image + +# 往期回顾 + +- [双周回顾#001 - 火烧云](./../001/readme.md) diff --git a/config/week/003/img/baby.jpg b/config/week/003/img/baby.jpg new file mode 100644 index 0000000..dfb19ad Binary files /dev/null and b/config/week/003/img/baby.jpg differ diff --git a/config/week/003/img/pmp.jpg b/config/week/003/img/pmp.jpg new file mode 100644 index 0000000..1e2d98d Binary files /dev/null and b/config/week/003/img/pmp.jpg differ diff --git a/config/week/003/img/read.png b/config/week/003/img/read.png new file mode 100644 index 0000000..e889871 Binary files /dev/null and b/config/week/003/img/read.png differ diff --git a/config/week/003/img/welink.png b/config/week/003/img/welink.png new file mode 100644 index 0000000..3d38f8d Binary files /dev/null and b/config/week/003/img/welink.png differ diff --git a/config/week/003/readme.md b/config/week/003/readme.md new file mode 100644 index 0000000..d8ae207 --- /dev/null +++ b/config/week/003/readme.md @@ -0,0 +1,142 @@ +--- +title: 双周回顾#003 - 新生儿 +date: 2023/10/15 +desc: 第三周 +--- + +![新生-baby](./img/baby.jpg) + +10 月 9 日,一个小生命悄悄来到世间,老家的朋友做了爸爸妈妈。 + +看着昔日的朋友们结婚生子,顿感不知不觉间自己也在慢慢变老。 + +# 一、价值 + +## (1)通过 PMP 认证考试 + +本周一个好消息,通过了 PMP 认证考试。 + +![pmp](./img/pmp.jpg) + +PMP 的得分为三个方面,过程、人、商业环境,个人得分分别为 BAA。 + +也就说在过程这一方面的得分低于及格线,过程模块得分低: + +- 主观因素:刷题量不达标,导致得分低; +- 客观因素:个人成长环境影响吧,早期在小公司,对于过程的实践不是太看重,主要看重快速迭代的敏捷流程,结果导向。 + +目前供职的公司,主打一个流程正确。 + +常听的一句话,“不要私下搞事情,等产品建需求”,有了需求才能统计工作量,否则白做功。 + +虽然过程繁琐,但确保了整个过程中每个节点可追溯,避免因个人素导致线上故障。 + +**思考:** + +- 影响。更熟悉项目管理流程,在标准化流程下做事,减少不规范操作导致的异常。 +- 收益。短期来看这个证书没啥用处,长期收益目前也不确定 + +## (2)三十人的公司内部分享 + +大数据平台首页性能优化,上周正式上线。回顾总结了整个处理过程,然后在本周的大周会上进行了分享。 + +第一次在如此多人前做分享,紧张是难免的。所以,文档一直改了又改,唯恐有所差错。 + +在真正分享的过程中时,中间无人打断,于是慢慢地忘记了紧张,按照自己的思路讲解,最终的舞台表现力感觉还不错,哈哈哈哈~~ + +**思考:** + +- 演讲时,语速放慢,不要着急,越急越容易吐字不清晰。 +- 知其然,知其所以然。性能优化手段最终都会落地到最基本的技能上,网络请求、文件大小、加载、渲染...在做优化操作时需要知道性能指标及其含义,以及对应的优化手段。理论与技巧相结合,更加得心应手。 +- 有时,并不要优化。不要盲目优化,当性能指标在合理范围时,不必做任何优化。防止镀金行为,此时可以去做更有价值的事情。 + +## (3)纵向与横向思维 + +分享会后,与一位架构师闲聊。他提到此次的分享在纵向的深度上很深入,他也学习到了。美中不足的是,横向的对比有所不足,比如涉及到打包的分享中,dll 、 webpack splitChunks、webpackChunkName 之间的差异及优先级问题并未说明了。 + +**思考:** + +- 同一类的东西,了解一些横向的指标,比如:通性、差异、优先级等。强化横向意识 + +## (4)更高的视野/个人喜好 + +需求评审时,就待办列表中的一项待办。 + +技术负责人看后觉得没有价值,可以不做。 + +组员也觉得没价值,可以放弃。 + +产品提出,这个待办是 XX 总提出的。 + +技术负责人、组员沉默一会后,嗯,要做。 + +**思考:** + +- Leader 可能存在更高的视角,看到了更多的东西。 +- Leader 的个人喜好被下属的盲目跟随。 + +## (5)读书 + +读书明智,知其然,知其所以然。 + +前段时间在看一本书,书不厚实,断断续续的偶尔看一点,未能持续看完。 + +上周末,与朋友闲聊,兴之所至,搞了个【读书打卡】,算是互相监督,每日持续读上一两页书。 + +![book](./img/read.png) + +不想看书,看到朋友在读书。麻溜地爬起看书、打卡,一气呵成。害,这该死的胜负欲,哈哈哈哈哈 + +**思考:** + +- 不盲目读书,应该读什么书?或者说,有价值的书? + +# 二、晋升 + +之前未曾在大厂工作过,脑海中也不曾有过晋升的概念,关于在前端之道的晋升也没有清晰的认知。 + +身边有着一位优秀的 GDE 朋友,每次看他的文章都是对自己的一次激励。重新阅读了下他发表的《经过半年的努力,我终于成为了谷歌开发者专家(GDE)》文章,小有体会。 + +> 分享、输出、推广 + +- 分享。分享源自有所分享,关注所在领域的技术,深度有所得、广度有所获,然后分享他人 +- 输出。体系化地整理知识,有自己的思考,在已有的知识上产出新的事物。 +- 推广。以自身所思所想影响他人,与同道之人共同探索。 + +前段时间为 Ace Editor 编写了一个插架,为其补充了缩略图的功能。技术侧的 leader 曾给建议让我提交 PR 到开源仓库,提升个人开源影响力。一直捣鼓其它事情,没整这事儿。害,没领会真意。 + +**抛出问题:** + +前端目前是一个细分状态。业务上可以分为内容管理、工具、图形等;技术上分为 Web 端、移动端、跨端、跨平台。 + +1. 前端的深度在哪里?或者说个人在前端上的深度在哪里? +2. 前端的广度在哪里?跨度如此之大,如何选择扩展的方向? + +> 翻了下 GDG 近两年在社区说的分享,仅两场 Web 的分享,大部分是关于 flutter 的分享,亲.真.儿子!!!所以,横向扩展 flutter? + +可能当想明白这些问题后,晋升就是水到渠成了吧。 + +# 文档 + +#### 1. [“根本不需要 TypeScript,JS + JSDoc 够了”,大佬说我想多了](https://my.oschina.net/u/6852546/blog/10114672)1 + +今年以来很多框架开发者都在放弃使用 TypeScript,为什么会出现这种状态呢?此文对此做出一些推论。 + +# 工具 + +#### 2. [WeLink](https://swlws.github.io/WeLink/)2 + +![WeLink](./img/welink.png) + +一个在线的标签管理工具,数据仅在本地存储。 + +# References + +- [^1] 读书 https://github.com/swustzzh/coder_books/discussions +- [^2] 根本不需要 TypeScript,JS + JSDoc 够了,大佬说我想多了 https://my.oschina.net/u/6852546/blog/10114672 +- [^3] WeLink https://swlws.github.io/WeLink/ + +# 往期回顾 + +- [双周回顾#002 - 红树林](./../002/readme.md) +- [双周回顾#001 - 火烧云](./../001/readme.md) diff --git "a/config/week/004/img/\351\241\272\345\255\220.jpeg" "b/config/week/004/img/\351\241\272\345\255\220.jpeg" new file mode 100644 index 0000000..e0b5beb Binary files /dev/null and "b/config/week/004/img/\351\241\272\345\255\220.jpeg" differ diff --git "a/config/week/004/img/\351\241\272\345\255\220\345\251\232\347\205\247.jpeg" "b/config/week/004/img/\351\241\272\345\255\220\345\251\232\347\205\247.jpeg" new file mode 100644 index 0000000..9a04fc1 Binary files /dev/null and "b/config/week/004/img/\351\241\272\345\255\220\345\251\232\347\205\247.jpeg" differ diff --git a/config/week/004/readme.md b/config/week/004/readme.md new file mode 100644 index 0000000..5366412 --- /dev/null +++ b/config/week/004/readme.md @@ -0,0 +1,47 @@ +# 双周回顾#004 - 满眼欢喜 + +对顺子的第一印象应该是在 2013/10 月,当时在绵阳科技馆,依旧记得那张青涩、腼腆的笑容,双手托着一个 MINI 机器人。那算是顺子和我的第一次相识吧。 + +[顺子](./img/顺子.jpeg) + +一晃十年了,今天是他的婚礼。 + +有个词叫满心欢喜,但是看到他们时,我想称作满眼欢喜。满眼欢喜,一生相伴。 + +[顺子](./img/顺子婚照.jpeg) + +因为做伴郎的缘故,提前来到成都。顺子带我们伴郎团排舞,期间尬舞不断。但他的动作最欢快、最自信,眉眼间的笑容从不消减。 + +有句诗句叫,士为知己者死,女为悦己者容。想比,此时此刻他的心中充满了他的新娘吧。 + +## 价值 + +// 今天喝了点酒,随便聊聊吧 + +## 1024 活动 + +我是一个不爱出风头的人,我喜欢默默做事,讨厌讲 PPT。但若想向往上走,PPT 能力是很重要的能力,所以,开始假装外向的性格。 + +公司举办 1024 活动,活动上划分 N 个小组,主动承担小组长的角色,协调团队氛围,使团队氛围迅速活跃,并在活动中曾一度拿的小组积分第一名。可惜的是,在最后的小组对赌环节,运气不佳,输光了积分~~ + +## 读书 + +自律,是一项很难得能力。当自己一个人无法做到自律时,可以找个一个朋友,互相监督。最近读过的书: + +Web 性能实践 +重构,改善既有设计 +CSS 新世界 + +## 晋升 + +查看公司关于晋升相关的要求,其中分享占了很大一部分评分。所以有意识的,在公司的内部知识系统中,开辟了一个 vue3 踩坑专栏,期待后效 + +## 互联网 + +最近双十一,公司为应对双十一活动,重构下单业务。临时调过去支援【配置下单】业务,第一次体会到真正面对互联网业务客户业务的紧迫感,加班是家常便饭,十点、十一点下班那是常态~~ + +除了加班这个痛点外,团队配置倒是挺全的,项目经理、架构经理、UI 设计师、前端人员、后台人员,倒不失为一种全新的体验 + +## 文档 + +啊,休息休息!!! diff --git a/config/week/005/img/zero.png b/config/week/005/img/zero.png new file mode 100644 index 0000000..cea39a9 Binary files /dev/null and b/config/week/005/img/zero.png differ diff --git a/config/week/005/readme.md b/config/week/005/readme.md new file mode 100644 index 0000000..2b43449 --- /dev/null +++ b/config/week/005/readme.md @@ -0,0 +1,61 @@ +# 双周回顾#005 - 零 + +![zero](./img/zero.png) + +一件悲伤的事实,这两周,成长值为零~~ + +从大数据部门临时抽调到互联网部门,支援重构的“配置下单”项目。 + +一个变种的低代码架构设计,唯一比较有意思的是它的业务组件的设计与校验设计,算是学习到点东西吧,其余的时间都是赶工中度过~~ + +# 一、价值 + +## (一)架构 + +有幸与公司的`前端技术高经`聊天,向大佬请教架构师之路,大佬给的建议。 + +1. 技术是为业务服务的。API 学习是基础,但不是重要的,重要的是要懂这个新技术解决了哪个业务场景。 +2. 深耕业务。深度熟悉某一类业务是架构师的必走之路,比如活动秒杀设计、低代码设计 +3. 前瞻性。拥抱变化,做设计时需要考虑后期的扩展,更友好的支持。比如:服务人数从 1K 扩展到 1W、新加功能特性 + +这些是建设性的建议,真正落地还是有一段路要走: + +**了解技术背景** + +一个新技术的出现,必定伴随着特定的业务场景,在这个独特的业务场景,持续完善这个技术,最终才会有面向世人的`技术`. + +> 反思:通常看到一个技术时,会首先一股脑的去学习 API,反而忽略了最本质的东西。 + +**透过技术学习架构** + +一个好的技术,必定伴随着一套稳固的架构设计。空谈架构有点虚,可以从一门技术的设计,慢慢去学习它内在的架构。学习它、模仿它、使用它。 + +很好的例子,Vue 中存在双向绑定,React 中为何一直没有双向绑定呢? + +**打破限制** + +每一个小的业务做到极致都是一项很庞大的版图,像数据、日志、队列、资产等。架构的本质是为业务服务,打破技术人的边界思维,敢想敢做,是否可以更进一步、再进一步呢? + +## (二)互联网 + +不曾真正在互联网网络做过事儿,这两周支援互联网部门,明显体会到不同的气氛。 + +怎么说呢,互联网部门与内部系统部门,最直观的感受,就是互联网部门更有朝气,`使用最新的技术、说着最潮的行话、下最晚的班`。 + +互联网部门是善变的。作为直接对接用户的部门,一个需求、一周变化个两三次都是有可能的。不要担心,会有一堆小伙伴陪着你加班,UI、UE、产品、开发... + +互联网部门是自由的。完全基于敏捷思想,快速迭代,以最终产品说话。 + +## (三)外包 + +不得不说的一件事儿,要远永避开外包、避开外包、避开外包... + +需要支援的项目,工期紧张、任务繁重。所以,一件很悲伤的事儿,就是没人关心支援的人是否了解项目,也不需要支援的人了解架构、业务,按照人家已设计好的架构填空就行。 + +外包的滋味十足,基本上天天在赶工,整个人都在透支中... + +# 二、反思 + +连续两周未有效读书了,一直给自己找借口。觉得加班忙,所以可以谅解。啊哈哈哈哈哈 + +时间总会有的,懒而已 diff --git a/config/week/006/readme.md b/config/week/006/readme.md new file mode 100644 index 0000000..5008654 --- /dev/null +++ b/config/week/006/readme.md @@ -0,0 +1,130 @@ +--- +outline: deep + +head: + - - meta + - name: author + content: swlws + - - meta + - name: description + content: 双周回顾 + - - meta + - name: keywords + content: swlws 双周回顾 +--- + +# 双周回顾#006 - 这三个月 + +## 断更啦~~ + +上次更新时间 2023/11/23, 断更近三个月的时间。 + +先狡辩下,因为忙、着实忙。因为忙,心安理得给断更找了个借口,批评下自己~~ + +这三个月在做啥?跨部门援助,支援公司互联网的 ToC 项目,一言难尽。 + +先说下考勤,基本上每天晚上十一点后下班。正常的双休没了,变成单休,甚至上十三天休一天。 + +| 月份 | 调休时长 | +| ------- | -------- | +| 2023/11 | 76 | +| 2023/12 | 60 | +| 2024/01 | 46 | + +所以,确实是有点忙~~ + +## 一次不指望开发人员懂业务的项目开发经历 + +此次支援的项目属于公司重点高项,团队阵容堪称豪华,所有资源优先投入此次项目。 + +此次项目的最大特点就是要在`两个月内出成果,时效卡的死死的`。 + +但是,问题来了,大部分人是从外部门支援来的,整个团队懂业务的就那么几个人。所以遭遇了工作以来,堪称魔幻的一次开发经历。 + +正常的项目迭代流程: + +```mermaid +graph LR + A(需求评审) ---> B(原型/UI设计) --> C(开发人员)--自测--> D(BUG) --修复后--> E(测试环境) ----> F(测试人员、产品、UI) + A --> C + A --> F + D --修复--> C + F-->D +``` + +这次就牛逼了,主打一个`开发不需要懂业务`,按图索骥就行,妥妥的牛马。 + +所以,效果也很显著,整个开发周期内,前后端的 BUG 数量,高达`6000+`。身上不带百八十个 BUG,午饭都不好意思加个鸡腿~~ + +```mermaid +graph LR + A(需求评审) ---> B(原型/UI设计) --> C(开发人员)--自测--> D(BUG) --修复后--> E(测试环境) ----> F(测试人员、产品、UI) + A --> F + D --修复--> C + F-->D +``` + +但是,咱就说但是。但是,项目结果也是喜人的,经过牛马们没日没夜的辛勤劳作、经过测试人员的`N轮测试`,项目成功落地。 + +### 项目开发 + +项目启动会议后,迅速再拉了一次 30+人的工程架构解读会议,大伙看了两天代码,立马投入开发阶段。 + +早期介入开发时,大家集体懵逼。时间紧、任务重,根本没有时间给开发人员讲解业务需求、甚至需求文档都没有。 + +项目启动后的前两周,大伙一脸懵逼的做功能。遇到不懂得业务时,最常听到是,“先等测试提 BUG 就行,他们懂业务”。这也造就了,测试介入后,提了`6000+`的 BUG + +### 项目测试 + +通常情况下,当开发做完完整的功能后,经历自测、提测、冒烟测试后,测试人员才会正式介入测试。 + +```mermaid +graph LR + A(功能开发) ----> B(提测) --冒烟测试--> C(正式测试(最多三轮)) + A --自测--> D(BUG) + D --修复--> A +``` + +这次流程就稍稍变化了下,整个项目管控,变成了比敏捷还敏捷。边开发、边构建、边测试,而且不限次数的测试,直到问题处理结束。 + +```mermaid +graph LR + A(开发) ---> B(代码提交) --构建发布--> C(测试环境) ---> D(测试) --缺陷/需求--> A +``` + +最大的变化是,测试这里提出的不再是单纯的 BUG,也会包含着需求在里面。也就是说,要做什么、不做什么,基本上是通过测试人员来传达的。 + +> 另外很重要的一点,就是测试人员介入的时间点,在开发人员开始开发后的第三周。 +> 测试的步步紧跟是这次项目成功的重要因素。 + +### 项目的底气 + +拉了一群新人,在新人完全不懂业务的情况下,为什么敢玩的这么刺激?不怕翻车吗?它的底气是什么: + +1. 属于旧项目重构。业务上并不是新需求,有产品人员全程跟随,不怕业务需求跑偏。 +2. 庞大的测试团体。70+人的项目组,测试人员占了一半。 +3. 工程架构。可插拔的构架设计,保证了业务层的模块可以随时替换,单个模块不会影响其它模块。 + +项目开始后,开发人员一直在发牢骚,感觉项目负责人就是在瞎搞,妥妥的即将翻车。 + +令人惊讶的是,虽然一直在修修补补,但这辆车成功抵达了终点。 + +不过这一过程中,有一说一,技术债肯定是留下了,很多场景下,为了尽快修复问题,代码都是特写的,后期 CodeReview 时,必定要修改的。 + +## 价值 + +三个月忙忙碌碌,丢了一些东西,也捡起一些东西。 + +- GUI 专利 + - 采集用户行为,以热力图的方式可视化展示,辅助产品运营人员做决策。同事提出的想法,我加以实现,抱同事大腿,蹭个署名,哈哈哈哈哈 +- 业务串讲以及 CodeReview + - 主持数次串讲以及 CodeReview +- 性能分析 + - 首屏性能问题 + - 表格卡顿问题。其中比较有趣的一点,`组件降级`处理,确实是个不错的方案 +- 抉择 + - 得支援部门领导得欣赏,期望我平调到支援部门;原部门期望留下,会有新项目主持。被人欣赏的感觉,还是不错的哒 + +## 同事离职 + +同一天入职的同事离职了,时间定格在 2024/2/2,遥祝一帆风顺,前程似锦。 diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..1153d04 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,22 @@ + + + + + + 404 | swlws + + + + + + + + + + + +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/assets/001.CLNyUD4h.webp b/docs/assets/001.CLNyUD4h.webp new file mode 100644 index 0000000..0667fa0 Binary files /dev/null and b/docs/assets/001.CLNyUD4h.webp differ diff --git a/docs/assets/apidoc.D9HNq3Fw.webp b/docs/assets/apidoc.D9HNq3Fw.webp new file mode 100644 index 0000000..c0c9199 Binary files /dev/null and b/docs/assets/apidoc.D9HNq3Fw.webp differ diff --git a/docs/assets/app.Dv4846sG.js b/docs/assets/app.Dv4846sG.js new file mode 100644 index 0000000..7c54e4c --- /dev/null +++ b/docs/assets/app.Dv4846sG.js @@ -0,0 +1,92 @@ +import{a4 as X,h as vo,u as Ds,a5 as mh,l as Ns,A as _h,o as yh,c as Ch,n as xh,j as Qr,a6 as bh,a7 as Th,a8 as vh,a9 as kh,aa as Sh,ab as wh,ac as Bh,ad as Ah,ae as Lh,af as Fh,d as Eh,z as Oh,ag as Mh,ah as Ih,ai as $h,aj as Dh}from"./chunks/framework.aTtkxbT6.js";import{t as Nh}from"./chunks/theme.DI3JhXoF.js";function Rh(t){for(var e=[],i=1;i=k?M:""+Array(k+1-B.length).join(y)+M},H={s:P,z:function(M){var k=-M.utcOffset(),y=Math.abs(k),B=Math.floor(y/60),x=y%60;return(k<=0?"+":"-")+P(B,2,"0")+":"+P(x,2,"0")},m:function M(k,y){if(k.date()1)return M(D[0])}else{var $=k.name;K[$]=k,x=$}return!B&&x&&(Y=x),x||!B&&Y},j=function(M,k){if(Kt(M))return M.clone();var y=typeof k=="object"?k:{};return y.date=M,y.args=arguments,new kt(y)},z=H;z.l=Zt,z.i=Kt,z.w=function(M,k){return j(M,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var kt=function(){function M(y){this.$L=Zt(y.locale,null,!0),this.parse(y),this.$x=this.$x||y.x||{},this[W]=!0}var k=M.prototype;return k.parse=function(y){this.$d=function(B){var x=B.date,b=B.utc;if(x===null)return new Date(NaN);if(z.u(x))return new Date;if(x instanceof Date)return new Date(x);if(typeof x=="string"&&!/Z$/i.test(x)){var D=x.match(S);if(D){var $=D[2]-1||0,G=(D[7]||"0").substring(0,3);return b?new Date(Date.UTC(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,G)):new Date(D[1],$,D[3]||1,D[4]||0,D[5]||0,D[6]||0,G)}}return new Date(x)}(y),this.init()},k.init=function(){var y=this.$d;this.$y=y.getFullYear(),this.$M=y.getMonth(),this.$D=y.getDate(),this.$W=y.getDay(),this.$H=y.getHours(),this.$m=y.getMinutes(),this.$s=y.getSeconds(),this.$ms=y.getMilliseconds()},k.$utils=function(){return z},k.isValid=function(){return this.$d.toString()!==T},k.isSame=function(y,B){var x=j(y);return this.startOf(B)<=x&&x<=this.endOf(B)},k.isAfter=function(y,B){return j(y)-1}function l(u){var f=u.replace(n,"");return f.replace(i,function(c,d){return String.fromCharCode(d)})}function h(u){if(!u)return t.BLANK_URL;var f=l(u).replace(r,"").replace(n,"").trim();if(!f)return t.BLANK_URL;if(a(f))return f;var c=f.match(o);if(!c)return f;var d=c[0];return e.test(d)?t.BLANK_URL:f}t.sanitizeUrl=h})(Ps);var Hh={value:()=>{}};function qs(){for(var t=0,e=arguments.length,i={},r;t=0&&(r=i.slice(n+1),i=i.slice(0,n)),i&&!e.hasOwnProperty(i))throw new Error("unknown type: "+i);return{type:i,name:r}})}$i.prototype=qs.prototype={constructor:$i,on:function(t,e){var i=this._,r=jh(t+"",i),n,o=-1,s=r.length;if(arguments.length<2){for(;++o0)for(var i=new Array(n),r=0,n,o;r=0&&(e=t.slice(0,i))!=="xmlns"&&(t=t.slice(i+1)),So.hasOwnProperty(e)?{space:So[e],local:t}:t}function Yh(t){return function(){var e=this.ownerDocument,i=this.namespaceURI;return i===tn&&e.documentElement.namespaceURI===tn?e.createElement(t):e.createElementNS(i,t)}}function Vh(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function zs(t){var e=fr(t);return(e.local?Vh:Yh)(e)}function Gh(){}function Tn(t){return t==null?Gh:function(){return this.querySelector(t)}}function Xh(t){typeof t!="function"&&(t=Tn(t));for(var e=this._groups,i=e.length,r=new Array(i),n=0;n=P&&(P=v+1);!(Y=S[P])&&++P=0;)(s=r[n])&&(o&&s.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(s,o),o=s);return this}function xc(t){t||(t=bc);function e(f,c){return f&&c?t(f.__data__,c.__data__):!f-!c}for(var i=this._groups,r=i.length,n=new Array(r),o=0;oe?1:t>=e?0:NaN}function Tc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function vc(){return Array.from(this)}function kc(){for(var t=this._groups,e=0,i=t.length;e1?this.each((e==null?$c:typeof e=="function"?Nc:Dc)(t,e,i??"")):Me(this.node(),t)}function Me(t,e){return t.style.getPropertyValue(e)||Ys(t).getComputedStyle(t,null).getPropertyValue(e)}function Pc(t){return function(){delete this[t]}}function qc(t,e){return function(){this[t]=e}}function zc(t,e){return function(){var i=e.apply(this,arguments);i==null?delete this[t]:this[t]=i}}function Wc(t,e){return arguments.length>1?this.each((e==null?Pc:typeof e=="function"?zc:qc)(t,e)):this.node()[t]}function Vs(t){return t.trim().split(/^|\s+/)}function vn(t){return t.classList||new Gs(t)}function Gs(t){this._node=t,this._names=Vs(t.getAttribute("class")||"")}Gs.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Xs(t,e){for(var i=vn(t),r=-1,n=e.length;++r=0&&(i=e.slice(r+1),e=e.slice(0,r)),{type:e,name:i}})}function mu(t){return function(){var e=this.__on;if(e){for(var i=0,r=-1,n=e.length,o;i>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):i===8?Bi(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):i===4?Bi(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Su.exec(t))?new gt(e[1],e[2],e[3],1):(e=wu.exec(t))?new gt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Bu.exec(t))?Bi(e[1],e[2],e[3],e[4]):(e=Au.exec(t))?Bi(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Lu.exec(t))?Oo(e[1],e[2]/100,e[3]/100,1):(e=Fu.exec(t))?Oo(e[1],e[2]/100,e[3]/100,e[4]):wo.hasOwnProperty(t)?Lo(wo[t]):t==="transparent"?new gt(NaN,NaN,NaN,0):null}function Lo(t){return new gt(t>>16&255,t>>8&255,t&255,1)}function Bi(t,e,i,r){return r<=0&&(t=e=i=NaN),new gt(t,e,i,r)}function Mu(t){return t instanceof Ci||(t=ci(t)),t?(t=t.rgb(),new gt(t.r,t.g,t.b,t.opacity)):new gt}function en(t,e,i,r){return arguments.length===1?Mu(t):new gt(t,e,i,r??1)}function gt(t,e,i,r){this.r=+t,this.g=+e,this.b=+i,this.opacity=+r}kn(gt,en,Qs(Ci,{brighter(t){return t=t==null?Ui:Math.pow(Ui,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?li:Math.pow(li,t),new gt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gt(de(this.r),de(this.g),de(this.b),Yi(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fo,formatHex:Fo,formatHex8:Iu,formatRgb:Eo,toString:Eo}));function Fo(){return`#${ue(this.r)}${ue(this.g)}${ue(this.b)}`}function Iu(){return`#${ue(this.r)}${ue(this.g)}${ue(this.b)}${ue((isNaN(this.opacity)?1:this.opacity)*255)}`}function Eo(){const t=Yi(this.opacity);return`${t===1?"rgb(":"rgba("}${de(this.r)}, ${de(this.g)}, ${de(this.b)}${t===1?")":`, ${t})`}`}function Yi(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function de(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ue(t){return t=de(t),(t<16?"0":"")+t.toString(16)}function Oo(t,e,i,r){return r<=0?t=e=i=NaN:i<=0||i>=1?t=e=NaN:e<=0&&(t=NaN),new Bt(t,e,i,r)}function ta(t){if(t instanceof Bt)return new Bt(t.h,t.s,t.l,t.opacity);if(t instanceof Ci||(t=ci(t)),!t)return new Bt;if(t instanceof Bt)return t;t=t.rgb();var e=t.r/255,i=t.g/255,r=t.b/255,n=Math.min(e,i,r),o=Math.max(e,i,r),s=NaN,a=o-n,l=(o+n)/2;return a?(e===o?s=(i-r)/a+(i0&&l<1?0:s,new Bt(s,a,l,t.opacity)}function $u(t,e,i,r){return arguments.length===1?ta(t):new Bt(t,e,i,r??1)}function Bt(t,e,i,r){this.h=+t,this.s=+e,this.l=+i,this.opacity=+r}kn(Bt,$u,Qs(Ci,{brighter(t){return t=t==null?Ui:Math.pow(Ui,t),new Bt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?li:Math.pow(li,t),new Bt(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,i=this.l,r=i+(i<.5?i:1-i)*e,n=2*i-r;return new gt(Nr(t>=240?t-240:t+120,n,r),Nr(t,n,r),Nr(t<120?t+240:t-120,n,r),this.opacity)},clamp(){return new Bt(Mo(this.h),Ai(this.s),Ai(this.l),Yi(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Yi(this.opacity);return`${t===1?"hsl(":"hsla("}${Mo(this.h)}, ${Ai(this.s)*100}%, ${Ai(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Mo(t){return t=(t||0)%360,t<0?t+360:t}function Ai(t){return Math.max(0,Math.min(1,t||0))}function Nr(t,e,i){return(t<60?e+(i-e)*t/60:t<180?i:t<240?e+(i-e)*(240-t)/60:e)*255}const Sn=t=>()=>t;function ea(t,e){return function(i){return t+i*e}}function Du(t,e,i){return t=Math.pow(t,i),e=Math.pow(e,i)-t,i=1/i,function(r){return Math.pow(t+r*e,i)}}function o1(t,e){var i=e-t;return i?ea(t,i>180||i<-180?i-360*Math.round(i/360):i):Sn(isNaN(t)?e:t)}function Nu(t){return(t=+t)==1?ia:function(e,i){return i-e?Du(e,i,t):Sn(isNaN(e)?i:e)}}function ia(t,e){var i=e-t;return i?ea(t,i):Sn(isNaN(t)?e:t)}const Io=function t(e){var i=Nu(e);function r(n,o){var s=i((n=en(n)).r,(o=en(o)).r),a=i(n.g,o.g),l=i(n.b,o.b),h=ia(n.opacity,o.opacity);return function(u){return n.r=s(u),n.g=a(u),n.b=l(u),n.opacity=h(u),n+""}}return r.gamma=t,r}(1);function ie(t,e){return t=+t,e=+e,function(i){return t*(1-i)+e*i}}var rn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Rr=new RegExp(rn.source,"g");function Ru(t){return function(){return t}}function Pu(t){return function(e){return t(e)+""}}function qu(t,e){var i=rn.lastIndex=Rr.lastIndex=0,r,n,o,s=-1,a=[],l=[];for(t=t+"",e=e+"";(r=rn.exec(t))&&(n=Rr.exec(e));)(o=n.index)>i&&(o=e.slice(i,o),a[s]?a[s]+=o:a[++s]=o),(r=r[0])===(n=n[0])?a[s]?a[s]+=n:a[++s]=n:(a[++s]=null,l.push({i:s,x:ie(r,n)})),i=Rr.lastIndex;return i180?u+=360:u-h>180&&(h+=360),c.push({i:f.push(n(f)+"rotate(",null,r)-2,x:ie(h,u)})):u&&f.push(n(f)+"rotate("+u+r)}function a(h,u,f,c){h!==u?c.push({i:f.push(n(f)+"skewX(",null,r)-2,x:ie(h,u)}):u&&f.push(n(f)+"skewX("+u+r)}function l(h,u,f,c,d,m){if(h!==f||u!==c){var T=d.push(n(d)+"scale(",null,",",null,")");m.push({i:T-4,x:ie(h,f)},{i:T-2,x:ie(u,c)})}else(f!==1||c!==1)&&d.push(n(d)+"scale("+f+","+c+")")}return function(h,u){var f=[],c=[];return h=t(h),u=t(u),o(h.translateX,h.translateY,u.translateX,u.translateY,f,c),s(h.rotate,u.rotate,f,c),a(h.skewX,u.skewX,f,c),l(h.scaleX,h.scaleY,u.scaleX,u.scaleY,f,c),h=u=null,function(d){for(var m=-1,T=c.length,S;++m=0&&t._call.call(void 0,e),t=t._next;--Ie}function Do(){me=(Gi=ui.now())+dr,Ie=Je=0;try{Yu()}finally{Ie=0,Gu(),me=0}}function Vu(){var t=ui.now(),e=t-Gi;e>oa&&(dr-=e,Gi=t)}function Gu(){for(var t,e=Vi,i,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(i=e._next,e._next=null,e=t?t._next=i:Vi=i);Qe=t,on(r)}function on(t){if(!Ie){Je&&(Je=clearTimeout(Je));var e=t-me;e>24?(t<1/0&&(Je=setTimeout(Do,t-ui.now()-dr)),Ve&&(Ve=clearInterval(Ve))):(Ve||(Gi=ui.now(),Ve=setInterval(Vu,oa)),Ie=1,sa(Do))}}function No(t,e,i){var r=new Xi;return e=e==null?0:+e,r.restart(n=>{r.stop(),t(n+e)},e,i),r}var Xu=qs("start","end","cancel","interrupt"),Ku=[],la=0,Ro=1,sn=2,Di=3,Po=4,an=5,Ni=6;function pr(t,e,i,r,n,o){var s=t.__transition;if(!s)t.__transition={};else if(i in s)return;Zu(t,i,{name:e,index:r,group:n,on:Xu,tween:Ku,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:la})}function Bn(t,e){var i=Ft(t,e);if(i.state>la)throw new Error("too late; already scheduled");return i}function Dt(t,e){var i=Ft(t,e);if(i.state>Di)throw new Error("too late; already running");return i}function Ft(t,e){var i=t.__transition;if(!i||!(i=i[e]))throw new Error("transition not found");return i}function Zu(t,e,i){var r=t.__transition,n;r[e]=i,i.timer=aa(o,0,i.time);function o(h){i.state=Ro,i.timer.restart(s,i.delay,i.time),i.delay<=h&&s(h-i.delay)}function s(h){var u,f,c,d;if(i.state!==Ro)return l();for(u in r)if(d=r[u],d.name===i.name){if(d.state===Di)return No(s);d.state===Po?(d.state=Ni,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[u]):+usn&&r.state=0&&(e=e.slice(0,i)),!e||e==="start"})}function Lf(t,e,i){var r,n,o=Af(e)?Bn:Dt;return function(){var s=o(this,t),a=s.on;a!==r&&(n=(r=a).copy()).on(e,i),s.on=n}}function Ff(t,e){var i=this._id;return arguments.length<2?Ft(this.node(),i).on.on(t):this.each(Lf(i,t,e))}function Ef(t){return function(){var e=this.parentNode;for(var i in this.__transition)if(+i!==t)return;e&&e.removeChild(this)}}function Of(){return this.on("end.remove",Ef(this._id))}function Mf(t){var e=this._name,i=this._id;typeof t!="function"&&(t=Tn(t));for(var r=this._groups,n=r.length,o=new Array(n),s=0;s1?0:t<-1?Ln:Math.acos(t)}function g1(t){return t>=1?zo:t<=-1?-zo:Math.asin(t)}function fa(t){this._context=t}fa.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function nd(t){return new fa(t)}class da{constructor(e,i){this._context=e,this._x=i}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,i){switch(e=+e,i=+i,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,i):this._context.moveTo(e,i);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,i,e,i):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+i)/2,e,this._y0,e,i);break}}this._x0=e,this._y0=i}}function od(t){return new da(t,!0)}function sd(t){return new da(t,!1)}function ne(){}function Ki(t,e,i){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+i)/6)}function gr(t){this._context=t}gr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ki(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ki(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function ad(t){return new gr(t)}function pa(t){this._context=t}pa.prototype={areaStart:ne,areaEnd:ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Ki(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function ld(t){return new pa(t)}function ga(t){this._context=t}ga.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var i=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(i,r):this._context.moveTo(i,r);break;case 3:this._point=4;default:Ki(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function hd(t){return new ga(t)}function ma(t,e){this._basis=new gr(t),this._beta=e}ma.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,i=t.length-1;if(i>0)for(var r=t[0],n=e[0],o=t[i]-r,s=e[i]-n,a=-1,l;++a<=i;)l=a/i,this._basis.point(this._beta*t[a]+(1-this._beta)*(r+l*o),this._beta*e[a]+(1-this._beta)*(n+l*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const cd=function t(e){function i(r){return e===1?new gr(r):new ma(r,e)}return i.beta=function(r){return t(+r)},i}(.85);function Zi(t,e,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function Fn(t,e){this._context=t,this._k=(1-e)/6}Fn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Zi(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Zi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const ud=function t(e){function i(r){return new Fn(r,e)}return i.tension=function(r){return t(+r)},i}(0);function En(t,e){this._context=t,this._k=(1-e)/6}En.prototype={areaStart:ne,areaEnd:ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Zi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const fd=function t(e){function i(r){return new En(r,e)}return i.tension=function(r){return t(+r)},i}(0);function On(t,e){this._context=t,this._k=(1-e)/6}On.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Zi(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const dd=function t(e){function i(r){return new On(r,e)}return i.tension=function(r){return t(+r)},i}(0);function Mn(t,e,i){var r=t._x1,n=t._y1,o=t._x2,s=t._y2;if(t._l01_a>qo){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,n=(n*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>qo){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*h+t._x1*t._l23_2a-e*t._l12_2a)/u,s=(s*h+t._y1*t._l23_2a-i*t._l12_2a)/u}t._context.bezierCurveTo(r,n,o,s,t._x2,t._y2)}function _a(t,e){this._context=t,this._alpha=e}_a.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Mn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const pd=function t(e){function i(r){return e?new _a(r,e):new Fn(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function ya(t,e){this._context=t,this._alpha=e}ya.prototype={areaStart:ne,areaEnd:ne,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Mn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const gd=function t(e){function i(r){return e?new ya(r,e):new En(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function Ca(t,e){this._context=t,this._alpha=e}Ca.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var i=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(i*i+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Mn(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const md=function t(e){function i(r){return e?new Ca(r,e):new On(r,0)}return i.alpha=function(r){return t(+r)},i}(.5);function xa(t){this._context=t}xa.prototype={areaStart:ne,areaEnd:ne,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function _d(t){return new xa(t)}function Wo(t){return t<0?-1:1}function Ho(t,e,i){var r=t._x1-t._x0,n=e-t._x1,o=(t._y1-t._y0)/(r||n<0&&-0),s=(i-t._y1)/(n||r<0&&-0),a=(o*n+s*r)/(r+n);return(Wo(o)+Wo(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(a))||0}function jo(t,e){var i=t._x1-t._x0;return i?(3*(t._y1-t._y0)/i-e)/2:e}function Pr(t,e,i){var r=t._x0,n=t._y0,o=t._x1,s=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,n+a*e,o-a,s-a*i,o,s)}function Ji(t){this._context=t}Ji.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Pr(this,this._t0,jo(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var i=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Pr(this,jo(this,i=Ho(this,t,e)),i);break;default:Pr(this,this._t0,i=Ho(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=i}}};function ba(t){this._context=new Ta(t)}(ba.prototype=Object.create(Ji.prototype)).point=function(t,e){Ji.prototype.point.call(this,e,t)};function Ta(t){this._context=t}Ta.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,i,r,n,o){this._context.bezierCurveTo(e,t,r,i,o,n)}};function yd(t){return new Ji(t)}function Cd(t){return new ba(t)}function va(t){this._context=t}va.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,i=t.length;if(i)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),i===2)this._context.lineTo(t[1],e[1]);else for(var r=Uo(t),n=Uo(e),o=0,s=1;s=0;--e)n[e]=(s[e]-n[e+1])/o[e];for(o[i-1]=(t[i]+n[i-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var i=this._x*(1-this._t)+t*this._t;this._context.lineTo(i,this._y),this._context.lineTo(i,e)}break}}this._x=t,this._y=e}};function bd(t){return new mr(t,.5)}function Td(t){return new mr(t,0)}function vd(t){return new mr(t,1)}function ti(t,e,i){this.k=t,this.x=e,this.y=i}ti.prototype={constructor:ti,scale:function(t){return t===1?this:new ti(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ti(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};ti.prototype;/*! @license DOMPurify 3.0.9 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.9/LICENSE */const{entries:ka,setPrototypeOf:Yo,isFrozen:kd,getPrototypeOf:Sd,getOwnPropertyDescriptor:wd}=Object;let{freeze:ut,seal:Lt,create:Sa}=Object,{apply:ln,construct:hn}=typeof Reflect<"u"&&Reflect;ut||(ut=function(e){return e});Lt||(Lt=function(e){return e});ln||(ln=function(e,i,r){return e.apply(i,r)});hn||(hn=function(e,i){return new e(...i)});const Fi=xt(Array.prototype.forEach),Vo=xt(Array.prototype.pop),Ge=xt(Array.prototype.push),Ri=xt(String.prototype.toLowerCase),qr=xt(String.prototype.toString),Bd=xt(String.prototype.match),Xe=xt(String.prototype.replace),Ad=xt(String.prototype.indexOf),Ld=xt(String.prototype.trim),wt=xt(Object.prototype.hasOwnProperty),yt=xt(RegExp.prototype.test),Ke=Fd(TypeError);function xt(t){return function(e){for(var i=arguments.length,r=new Array(i>1?i-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:Ri;Yo&&Yo(t,null);let r=e.length;for(;r--;){let n=e[r];if(typeof n=="string"){const o=i(n);o!==n&&(kd(e)||(e[r]=o),n=o)}t[n]=!0}return t}function Ed(t){for(let e=0;e/gm),Dd=Lt(/\${[\w\W]*}/gm),Nd=Lt(/^data-[\-\w.\u00B7-\uFFFF]/),Rd=Lt(/^aria-[\-\w]+$/),wa=Lt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Pd=Lt(/^(?:\w+script|data):/i),qd=Lt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ba=Lt(/^html$/i);var Jo=Object.freeze({__proto__:null,MUSTACHE_EXPR:Id,ERB_EXPR:$d,TMPLIT_EXPR:Dd,DATA_ATTR:Nd,ARIA_ATTR:Rd,IS_ALLOWED_URI:wa,IS_SCRIPT_OR_DATA:Pd,ATTR_WHITESPACE:qd,DOCTYPE_NAME:Ba});const zd=function(){return typeof window>"u"?null:window},Wd=function(e,i){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const n="data-tt-policy-suffix";i&&i.hasAttribute(n)&&(r=i.getAttribute(n));const o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function Aa(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:zd();const e=A=>Aa(A);if(e.version="3.0.9",e.removed=[],!t||!t.document||t.document.nodeType!==9)return e.isSupported=!1,e;let{document:i}=t;const r=i,n=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:s,Node:a,Element:l,NodeFilter:h,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:f,DOMParser:c,trustedTypes:d}=t,m=l.prototype,T=Ei(m,"cloneNode"),S=Ei(m,"nextSibling"),R=Ei(m,"childNodes"),v=Ei(m,"parentNode");if(typeof s=="function"){const A=i.createElement("template");A.content&&A.content.ownerDocument&&(i=A.content.ownerDocument)}let P,H="";const{implementation:Y,createNodeIterator:K,createDocumentFragment:W,getElementsByTagName:Kt}=i,{importNode:Zt}=r;let j={};e.isSupported=typeof ka=="function"&&typeof v=="function"&&Y&&Y.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:z,ERB_EXPR:kt,TMPLIT_EXPR:Jt,DATA_ATTR:M,ARIA_ATTR:k,IS_SCRIPT_OR_DATA:y,ATTR_WHITESPACE:B}=Jo;let{IS_ALLOWED_URI:x}=Jo,b=null;const D=q({},[...Go,...zr,...Wr,...Hr,...Xo]);let $=null;const G=q({},[...Ko,...jr,...Zo,...Oi]);let N=Object.seal(Sa(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Z=null,it=null,Rt=!0,St=!0,Qt=!1,Et=!0,J=!1,rt=!1,Pt=!1,te=!1,Te=!1,vi=!1,ki=!1,io=!0,ro=!1;const ah="user-content-";let Er=!0,je=!1,ve={},ke=null;const no=q({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let oo=null;const so=q({},["audio","video","img","source","image","track"]);let Or=null;const ao=q({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Si="http://www.w3.org/1998/Math/MathML",wi="http://www.w3.org/2000/svg",qt="http://www.w3.org/1999/xhtml";let Se=qt,Mr=!1,Ir=null;const lh=q({},[Si,wi,qt],qr);let Ue=null;const hh=["application/xhtml+xml","text/html"],ch="text/html";let et=null,we=null;const uh=i.createElement("form"),lo=function(p){return p instanceof RegExp||p instanceof Function},$r=function(){let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(we&&we===p)){if((!p||typeof p!="object")&&(p={}),p=he(p),Ue=hh.indexOf(p.PARSER_MEDIA_TYPE)===-1?ch:p.PARSER_MEDIA_TYPE,et=Ue==="application/xhtml+xml"?qr:Ri,b=wt(p,"ALLOWED_TAGS")?q({},p.ALLOWED_TAGS,et):D,$=wt(p,"ALLOWED_ATTR")?q({},p.ALLOWED_ATTR,et):G,Ir=wt(p,"ALLOWED_NAMESPACES")?q({},p.ALLOWED_NAMESPACES,qr):lh,Or=wt(p,"ADD_URI_SAFE_ATTR")?q(he(ao),p.ADD_URI_SAFE_ATTR,et):ao,oo=wt(p,"ADD_DATA_URI_TAGS")?q(he(so),p.ADD_DATA_URI_TAGS,et):so,ke=wt(p,"FORBID_CONTENTS")?q({},p.FORBID_CONTENTS,et):no,Z=wt(p,"FORBID_TAGS")?q({},p.FORBID_TAGS,et):{},it=wt(p,"FORBID_ATTR")?q({},p.FORBID_ATTR,et):{},ve=wt(p,"USE_PROFILES")?p.USE_PROFILES:!1,Rt=p.ALLOW_ARIA_ATTR!==!1,St=p.ALLOW_DATA_ATTR!==!1,Qt=p.ALLOW_UNKNOWN_PROTOCOLS||!1,Et=p.ALLOW_SELF_CLOSE_IN_ATTR!==!1,J=p.SAFE_FOR_TEMPLATES||!1,rt=p.WHOLE_DOCUMENT||!1,Te=p.RETURN_DOM||!1,vi=p.RETURN_DOM_FRAGMENT||!1,ki=p.RETURN_TRUSTED_TYPE||!1,te=p.FORCE_BODY||!1,io=p.SANITIZE_DOM!==!1,ro=p.SANITIZE_NAMED_PROPS||!1,Er=p.KEEP_CONTENT!==!1,je=p.IN_PLACE||!1,x=p.ALLOWED_URI_REGEXP||wa,Se=p.NAMESPACE||qt,N=p.CUSTOM_ELEMENT_HANDLING||{},p.CUSTOM_ELEMENT_HANDLING&&lo(p.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(N.tagNameCheck=p.CUSTOM_ELEMENT_HANDLING.tagNameCheck),p.CUSTOM_ELEMENT_HANDLING&&lo(p.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(N.attributeNameCheck=p.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),p.CUSTOM_ELEMENT_HANDLING&&typeof p.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(N.allowCustomizedBuiltInElements=p.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),J&&(St=!1),vi&&(Te=!0),ve&&(b=q({},Xo),$=[],ve.html===!0&&(q(b,Go),q($,Ko)),ve.svg===!0&&(q(b,zr),q($,jr),q($,Oi)),ve.svgFilters===!0&&(q(b,Wr),q($,jr),q($,Oi)),ve.mathMl===!0&&(q(b,Hr),q($,Zo),q($,Oi))),p.ADD_TAGS&&(b===D&&(b=he(b)),q(b,p.ADD_TAGS,et)),p.ADD_ATTR&&($===G&&($=he($)),q($,p.ADD_ATTR,et)),p.ADD_URI_SAFE_ATTR&&q(Or,p.ADD_URI_SAFE_ATTR,et),p.FORBID_CONTENTS&&(ke===no&&(ke=he(ke)),q(ke,p.FORBID_CONTENTS,et)),Er&&(b["#text"]=!0),rt&&q(b,["html","head","body"]),b.table&&(q(b,["tbody"]),delete Z.tbody),p.TRUSTED_TYPES_POLICY){if(typeof p.TRUSTED_TYPES_POLICY.createHTML!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof p.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Ke('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');P=p.TRUSTED_TYPES_POLICY,H=P.createHTML("")}else P===void 0&&(P=Wd(d,n)),P!==null&&typeof H=="string"&&(H=P.createHTML(""));ut&&ut(p),we=p}},ho=q({},["mi","mo","mn","ms","mtext"]),co=q({},["foreignobject","desc","title","annotation-xml"]),fh=q({},["title","style","font","a","script"]),uo=q({},[...zr,...Wr,...Od]),fo=q({},[...Hr,...Md]),dh=function(p){let _=v(p);(!_||!_.tagName)&&(_={namespaceURI:Se,tagName:"template"});const w=Ri(p.tagName),U=Ri(_.tagName);return Ir[p.namespaceURI]?p.namespaceURI===wi?_.namespaceURI===qt?w==="svg":_.namespaceURI===Si?w==="svg"&&(U==="annotation-xml"||ho[U]):!!uo[w]:p.namespaceURI===Si?_.namespaceURI===qt?w==="math":_.namespaceURI===wi?w==="math"&&co[U]:!!fo[w]:p.namespaceURI===qt?_.namespaceURI===wi&&!co[U]||_.namespaceURI===Si&&!ho[U]?!1:!fo[w]&&(fh[w]||!uo[w]):!!(Ue==="application/xhtml+xml"&&Ir[p.namespaceURI]):!1},ae=function(p){Ge(e.removed,{element:p});try{p.parentNode.removeChild(p)}catch{p.remove()}},Dr=function(p,_){try{Ge(e.removed,{attribute:_.getAttributeNode(p),from:_})}catch{Ge(e.removed,{attribute:null,from:_})}if(_.removeAttribute(p),p==="is"&&!$[p])if(Te||vi)try{ae(_)}catch{}else try{_.setAttribute(p,"")}catch{}},po=function(p){let _=null,w=null;if(te)p=""+p;else{const ot=Bd(p,/^[\r\n\t ]+/);w=ot&&ot[0]}Ue==="application/xhtml+xml"&&Se===qt&&(p=''+p+"");const U=P?P.createHTML(p):p;if(Se===qt)try{_=new c().parseFromString(U,Ue)}catch{}if(!_||!_.documentElement){_=Y.createDocument(Se,"template",null);try{_.documentElement.innerHTML=Mr?H:U}catch{}}const nt=_.body||_.documentElement;return p&&w&&nt.insertBefore(i.createTextNode(w),nt.childNodes[0]||null),Se===qt?Kt.call(_,rt?"html":"body")[0]:rt?_.documentElement:nt},go=function(p){return K.call(p.ownerDocument||p,p,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT,null)},ph=function(p){return p instanceof f&&(typeof p.nodeName!="string"||typeof p.textContent!="string"||typeof p.removeChild!="function"||!(p.attributes instanceof u)||typeof p.removeAttribute!="function"||typeof p.setAttribute!="function"||typeof p.namespaceURI!="string"||typeof p.insertBefore!="function"||typeof p.hasChildNodes!="function")},mo=function(p){return typeof a=="function"&&p instanceof a},zt=function(p,_,w){j[p]&&Fi(j[p],U=>{U.call(e,_,w,we)})},_o=function(p){let _=null;if(zt("beforeSanitizeElements",p,null),ph(p))return ae(p),!0;const w=et(p.nodeName);if(zt("uponSanitizeElement",p,{tagName:w,allowedTags:b}),p.hasChildNodes()&&!mo(p.firstElementChild)&&yt(/<[/\w]/g,p.innerHTML)&&yt(/<[/\w]/g,p.textContent))return ae(p),!0;if(!b[w]||Z[w]){if(!Z[w]&&Co(w)&&(N.tagNameCheck instanceof RegExp&&yt(N.tagNameCheck,w)||N.tagNameCheck instanceof Function&&N.tagNameCheck(w)))return!1;if(Er&&!ke[w]){const U=v(p)||p.parentNode,nt=R(p)||p.childNodes;if(nt&&U){const ot=nt.length;for(let ft=ot-1;ft>=0;--ft)U.insertBefore(T(nt[ft],!0),S(p))}}return ae(p),!0}return p instanceof l&&!dh(p)||(w==="noscript"||w==="noembed"||w==="noframes")&&yt(/<\/no(script|embed|frames)/i,p.innerHTML)?(ae(p),!0):(J&&p.nodeType===3&&(_=p.textContent,Fi([z,kt,Jt],U=>{_=Xe(_,U," ")}),p.textContent!==_&&(Ge(e.removed,{element:p.cloneNode()}),p.textContent=_)),zt("afterSanitizeElements",p,null),!1)},yo=function(p,_,w){if(io&&(_==="id"||_==="name")&&(w in i||w in uh))return!1;if(!(St&&!it[_]&&yt(M,_))){if(!(Rt&&yt(k,_))){if(!$[_]||it[_]){if(!(Co(p)&&(N.tagNameCheck instanceof RegExp&&yt(N.tagNameCheck,p)||N.tagNameCheck instanceof Function&&N.tagNameCheck(p))&&(N.attributeNameCheck instanceof RegExp&&yt(N.attributeNameCheck,_)||N.attributeNameCheck instanceof Function&&N.attributeNameCheck(_))||_==="is"&&N.allowCustomizedBuiltInElements&&(N.tagNameCheck instanceof RegExp&&yt(N.tagNameCheck,w)||N.tagNameCheck instanceof Function&&N.tagNameCheck(w))))return!1}else if(!Or[_]){if(!yt(x,Xe(w,B,""))){if(!((_==="src"||_==="xlink:href"||_==="href")&&p!=="script"&&Ad(w,"data:")===0&&oo[p])){if(!(Qt&&!yt(y,Xe(w,B,"")))){if(w)return!1}}}}}}return!0},Co=function(p){return p!=="annotation-xml"&&p.indexOf("-")>0},xo=function(p){zt("beforeSanitizeAttributes",p,null);const{attributes:_}=p;if(!_)return;const w={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:$};let U=_.length;for(;U--;){const nt=_[U],{name:ot,namespaceURI:ft,value:le}=nt,Ye=et(ot);let dt=ot==="value"?le:Ld(le);if(w.attrName=Ye,w.attrValue=dt,w.keepAttr=!0,w.forceKeepAttr=void 0,zt("uponSanitizeAttribute",p,w),dt=w.attrValue,w.forceKeepAttr||(Dr(ot,p),!w.keepAttr))continue;if(!Et&&yt(/\/>/i,dt)){Dr(ot,p);continue}J&&Fi([z,kt,Jt],To=>{dt=Xe(dt,To," ")});const bo=et(p.nodeName);if(yo(bo,Ye,dt)){if(ro&&(Ye==="id"||Ye==="name")&&(Dr(ot,p),dt=ah+dt),P&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!ft)switch(d.getAttributeType(bo,Ye)){case"TrustedHTML":{dt=P.createHTML(dt);break}case"TrustedScriptURL":{dt=P.createScriptURL(dt);break}}try{ft?p.setAttributeNS(ft,ot,dt):p.setAttribute(ot,dt),Vo(e.removed)}catch{}}}zt("afterSanitizeAttributes",p,null)},gh=function A(p){let _=null;const w=go(p);for(zt("beforeSanitizeShadowDOM",p,null);_=w.nextNode();)zt("uponSanitizeShadowNode",_,null),!_o(_)&&(_.content instanceof o&&A(_.content),xo(_));zt("afterSanitizeShadowDOM",p,null)};return e.sanitize=function(A){let p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=null,w=null,U=null,nt=null;if(Mr=!A,Mr&&(A=""),typeof A!="string"&&!mo(A))if(typeof A.toString=="function"){if(A=A.toString(),typeof A!="string")throw Ke("dirty is not a string, aborting")}else throw Ke("toString is not a function");if(!e.isSupported)return A;if(Pt||$r(p),e.removed=[],typeof A=="string"&&(je=!1),je){if(A.nodeName){const le=et(A.nodeName);if(!b[le]||Z[le])throw Ke("root node is forbidden and cannot be sanitized in-place")}}else if(A instanceof a)_=po(""),w=_.ownerDocument.importNode(A,!0),w.nodeType===1&&w.nodeName==="BODY"||w.nodeName==="HTML"?_=w:_.appendChild(w);else{if(!Te&&!J&&!rt&&A.indexOf("<")===-1)return P&&ki?P.createHTML(A):A;if(_=po(A),!_)return Te?null:ki?H:""}_&&te&&ae(_.firstChild);const ot=go(je?A:_);for(;U=ot.nextNode();)_o(U)||(U.content instanceof o&&gh(U.content),xo(U));if(je)return A;if(Te){if(vi)for(nt=W.call(_.ownerDocument);_.firstChild;)nt.appendChild(_.firstChild);else nt=_;return($.shadowroot||$.shadowrootmode)&&(nt=Zt.call(r,nt,!0)),nt}let ft=rt?_.outerHTML:_.innerHTML;return rt&&b["!doctype"]&&_.ownerDocument&&_.ownerDocument.doctype&&_.ownerDocument.doctype.name&&yt(Ba,_.ownerDocument.doctype.name)&&(ft=" +`+ft),J&&Fi([z,kt,Jt],le=>{ft=Xe(ft,le," ")}),P&&ki?P.createHTML(ft):ft},e.setConfig=function(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};$r(A),Pt=!0},e.clearConfig=function(){we=null,Pt=!1},e.isValidAttribute=function(A,p,_){we||$r({});const w=et(A),U=et(p);return yo(w,U,_)},e.addHook=function(A,p){typeof p=="function"&&(j[A]=j[A]||[],Ge(j[A],p))},e.removeHook=function(A){if(j[A])return Vo(j[A])},e.removeHooks=function(A){j[A]&&(j[A]=[])},e.removeAllHooks=function(){j={}},e}var $e=Aa();const Pi={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,i)=>(i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+(e-t)*6*i:i<1/2?e:i<2/3?t+(e-t)*(2/3-i)*6:t),hsl2rgb:({h:t,s:e,l:i},r)=>{if(!e)return i*2.55;t/=360,e/=100,i/=100;const n=i<.5?i*(1+e):i+e-i*e,o=2*i-n;switch(r){case"r":return Pi.hue2rgb(o,n,t+1/3)*255;case"g":return Pi.hue2rgb(o,n,t)*255;case"b":return Pi.hue2rgb(o,n,t-1/3)*255}},rgb2hsl:({r:t,g:e,b:i},r)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),o=Math.min(t,e,i),s=(n+o)/2;if(r==="l")return s*100;if(n===o)return 0;const a=n-o,l=s>.5?a/(2-n-o):a/(n+o);if(r==="s")return l*100;switch(n){case t:return((e-i)/a+(ee>i?Math.min(e,Math.max(i,t)):Math.min(i,Math.max(e,t)),round:t=>Math.round(t*1e10)/1e10},jd=Hd,Ud={dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}},Yd=Ud,I={channel:Pi,lang:jd,unit:Yd},ee={};for(let t=0;t<=255;t++)ee[t]=I.unit.dec2hex(t);const st={ALL:0,RGB:1,HSL:2};class Vd{constructor(){this.type=st.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=st.ALL}is(e){return this.type===e}}class Gd{constructor(e,i){this.color=i,this.changed=!1,this.data=e,this.type=new Vd}set(e,i){return this.color=i,this.changed=!1,this.data=e,this.type.type=st.ALL,this}_ensureHSL(){const e=this.data,{h:i,s:r,l:n}=e;i===void 0&&(e.h=I.channel.rgb2hsl(e,"h")),r===void 0&&(e.s=I.channel.rgb2hsl(e,"s")),n===void 0&&(e.l=I.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:i,g:r,b:n}=e;i===void 0&&(e.r=I.channel.hsl2rgb(e,"r")),r===void 0&&(e.g=I.channel.hsl2rgb(e,"g")),n===void 0&&(e.b=I.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,i=e.r;return!this.type.is(st.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"r"))}get g(){const e=this.data,i=e.g;return!this.type.is(st.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"g"))}get b(){const e=this.data,i=e.b;return!this.type.is(st.HSL)&&i!==void 0?i:(this._ensureHSL(),I.channel.hsl2rgb(e,"b"))}get h(){const e=this.data,i=e.h;return!this.type.is(st.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"h"))}get s(){const e=this.data,i=e.s;return!this.type.is(st.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"s"))}get l(){const e=this.data,i=e.l;return!this.type.is(st.RGB)&&i!==void 0?i:(this._ensureRGB(),I.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(st.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(st.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(st.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(st.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(st.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(st.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}const Xd=Gd,_r=new Xd({r:0,g:0,b:0,a:0},"transparent"),Ee={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(t.charCodeAt(0)!==35)return;const e=t.match(Ee.re);if(!e)return;const i=e[1],r=parseInt(i,16),n=i.length,o=n%4===0,s=n>4,a=s?1:17,l=s?8:4,h=o?0:-1,u=s?255:15;return _r.set({r:(r>>l*(h+3)&u)*a,g:(r>>l*(h+2)&u)*a,b:(r>>l*(h+1)&u)*a,a:o?(r&u)*a/255:1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`#${ee[Math.round(e)]}${ee[Math.round(i)]}${ee[Math.round(r)]}${ee[Math.round(n*255)]}`:`#${ee[Math.round(e)]}${ee[Math.round(i)]}${ee[Math.round(r)]}`}},fe={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(fe.hueRe);if(e){const[,i,r]=e;switch(r){case"grad":return I.channel.clamp.h(parseFloat(i)*.9);case"rad":return I.channel.clamp.h(parseFloat(i)*180/Math.PI);case"turn":return I.channel.clamp.h(parseFloat(i)*360)}}return I.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(e!==104&&e!==72)return;const i=t.match(fe.re);if(!i)return;const[,r,n,o,s,a]=i;return _r.set({h:fe._hue2deg(r),s:I.channel.clamp.s(parseFloat(n)),l:I.channel.clamp.l(parseFloat(o)),a:s?I.channel.clamp.a(a?parseFloat(s)/100:parseFloat(s)):1},t)},stringify:t=>{const{h:e,s:i,l:r,a:n}=t;return n<1?`hsla(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%, ${n})`:`hsl(${I.lang.round(e)}, ${I.lang.round(i)}%, ${I.lang.round(r)}%)`}},ii={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=ii.colors[t];if(e)return Ee.parse(e)},stringify:t=>{const e=Ee.stringify(t);for(const i in ii.colors)if(ii.colors[i]===e)return i}},ei={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(e!==114&&e!==82)return;const i=t.match(ei.re);if(!i)return;const[,r,n,o,s,a,l,h,u]=i;return _r.set({r:I.channel.clamp.r(n?parseFloat(r)*2.55:parseFloat(r)),g:I.channel.clamp.g(s?parseFloat(o)*2.55:parseFloat(o)),b:I.channel.clamp.b(l?parseFloat(a)*2.55:parseFloat(a)),a:h?I.channel.clamp.a(u?parseFloat(h)/100:parseFloat(h)):1},t)},stringify:t=>{const{r:e,g:i,b:r,a:n}=t;return n<1?`rgba(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)}, ${I.lang.round(n)})`:`rgb(${I.lang.round(e)}, ${I.lang.round(i)}, ${I.lang.round(r)})`}},It={format:{keyword:ii,hex:Ee,rgb:ei,rgba:ei,hsl:fe,hsla:fe},parse:t=>{if(typeof t!="string")return t;const e=Ee.parse(t)||ei.parse(t)||fe.parse(t)||ii.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(st.HSL)||t.data.r===void 0?fe.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ei.stringify(t):Ee.stringify(t)},La=(t,e)=>{const i=It.parse(t);for(const r in e)i[r]=I.channel.clamp[r](e[r]);return It.stringify(i)},ri=(t,e,i=0,r=1)=>{if(typeof t!="number")return La(t,{a:e});const n=_r.set({r:I.channel.clamp.r(t),g:I.channel.clamp.g(e),b:I.channel.clamp.b(i),a:I.channel.clamp.a(r)});return It.stringify(n)},Kd=t=>{const{r:e,g:i,b:r}=It.parse(t),n=.2126*I.channel.toLinear(e)+.7152*I.channel.toLinear(i)+.0722*I.channel.toLinear(r);return I.lang.round(n)},Zd=t=>Kd(t)>=.5,Jd=Zd,xi=t=>!Jd(t),Fa=(t,e,i)=>{const r=It.parse(t),n=r[e],o=I.channel.clamp[e](n+i);return n!==o&&(r[e]=o),It.stringify(r)},L=(t,e)=>Fa(t,"l",e),O=(t,e)=>Fa(t,"l",-e),g=(t,e)=>{const i=It.parse(t),r={};for(const n in e)e[n]&&(r[n]=i[n]+e[n]);return La(t,r)},Qd=(t,e,i=50)=>{const{r,g:n,b:o,a:s}=It.parse(t),{r:a,g:l,b:h,a:u}=It.parse(e),f=i/100,c=f*2-1,d=s-u,T=((c*d===-1?c:(c+d)/(1+c*d))+1)/2,S=1-T,R=r*T+a*S,v=n*T+l*S,P=o*T+h*S,H=s*f+u*(1-f);return ri(R,v,P,H)},C=(t,e=100)=>{const i=It.parse(t);return i.r=255-i.r,i.g=255-i.g,i.b=255-i.b,Qd(i,t,e)};var Ea=typeof global=="object"&&global&&global.Object===Object&&global,tp=typeof self=="object"&&self&&self.Object===Object&&self,Nt=Ea||tp||Function("return this")(),Qi=Nt.Symbol,Oa=Object.prototype,ep=Oa.hasOwnProperty,ip=Oa.toString,Ze=Qi?Qi.toStringTag:void 0;function rp(t){var e=ep.call(t,Ze),i=t[Ze];try{t[Ze]=void 0;var r=!0}catch{}var n=ip.call(t);return r&&(e?t[Ze]=i:delete t[Ze]),n}var np=Object.prototype,op=np.toString;function sp(t){return op.call(t)}var ap="[object Null]",lp="[object Undefined]",Qo=Qi?Qi.toStringTag:void 0;function ze(t){return t==null?t===void 0?lp:ap:Qo&&Qo in Object(t)?rp(t):sp(t)}function Ce(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var hp="[object AsyncFunction]",cp="[object Function]",up="[object GeneratorFunction]",fp="[object Proxy]";function In(t){if(!Ce(t))return!1;var e=ze(t);return e==cp||e==up||e==hp||e==fp}var Ur=Nt["__core-js_shared__"],ts=function(){var t=/[^.]+$/.exec(Ur&&Ur.keys&&Ur.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function dp(t){return!!ts&&ts in t}var pp=Function.prototype,gp=pp.toString;function xe(t){if(t!=null){try{return gp.call(t)}catch{}try{return t+""}catch{}}return""}var mp=/[\\^$.*+?()[\]{}|]/g,_p=/^\[object .+?Constructor\]$/,yp=Function.prototype,Cp=Object.prototype,xp=yp.toString,bp=Cp.hasOwnProperty,Tp=RegExp("^"+xp.call(bp).replace(mp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function vp(t){if(!Ce(t)||dp(t))return!1;var e=In(t)?Tp:_p;return e.test(xe(t))}function kp(t,e){return t==null?void 0:t[e]}function be(t,e){var i=kp(t,e);return vp(i)?i:void 0}var fi=be(Object,"create");function Sp(){this.__data__=fi?fi(null):{},this.size=0}function wp(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Bp="__lodash_hash_undefined__",Ap=Object.prototype,Lp=Ap.hasOwnProperty;function Fp(t){var e=this.__data__;if(fi){var i=e[t];return i===Bp?void 0:i}return Lp.call(e,t)?e[t]:void 0}var Ep=Object.prototype,Op=Ep.hasOwnProperty;function Mp(t){var e=this.__data__;return fi?e[t]!==void 0:Op.call(e,t)}var Ip="__lodash_hash_undefined__";function $p(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=fi&&e===void 0?Ip:e,this}function _e(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1}function Wp(t,e){var i=this.__data__,r=Cr(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Xt(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=_g}function Tr(t){return t!=null&&Na(t.length)&&!In(t)}function yg(t){return Ti(t)&&Tr(t)}function Cg(){return!1}var Ra=typeof exports=="object"&&exports&&!exports.nodeType&&exports,as=Ra&&typeof module=="object"&&module&&!module.nodeType&&module,xg=as&&as.exports===Ra,ls=xg?Nt.Buffer:void 0,bg=ls?ls.isBuffer:void 0,Tg=bg||Cg;const Dn=Tg;var vg="[object Object]",kg=Function.prototype,Sg=Object.prototype,Pa=kg.toString,wg=Sg.hasOwnProperty,Bg=Pa.call(Object);function Ag(t){if(!Ti(t)||ze(t)!=vg)return!1;var e=$a(t);if(e===null)return!0;var i=wg.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Pa.call(i)==Bg}var Lg="[object Arguments]",Fg="[object Array]",Eg="[object Boolean]",Og="[object Date]",Mg="[object Error]",Ig="[object Function]",$g="[object Map]",Dg="[object Number]",Ng="[object Object]",Rg="[object RegExp]",Pg="[object Set]",qg="[object String]",zg="[object WeakMap]",Wg="[object ArrayBuffer]",Hg="[object DataView]",jg="[object Float32Array]",Ug="[object Float64Array]",Yg="[object Int8Array]",Vg="[object Int16Array]",Gg="[object Int32Array]",Xg="[object Uint8Array]",Kg="[object Uint8ClampedArray]",Zg="[object Uint16Array]",Jg="[object Uint32Array]",V={};V[jg]=V[Ug]=V[Yg]=V[Vg]=V[Gg]=V[Xg]=V[Kg]=V[Zg]=V[Jg]=!0;V[Lg]=V[Fg]=V[Wg]=V[Eg]=V[Hg]=V[Og]=V[Mg]=V[Ig]=V[$g]=V[Dg]=V[Ng]=V[Rg]=V[Pg]=V[qg]=V[zg]=!1;function Qg(t){return Ti(t)&&Na(t.length)&&!!V[ze(t)]}function tm(t){return function(e){return t(e)}}var qa=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ni=qa&&typeof module=="object"&&module&&!module.nodeType&&module,em=ni&&ni.exports===qa,Yr=em&&Ea.process,hs=function(){try{var t=ni&&ni.require&&ni.require("util").types;return t||Yr&&Yr.binding&&Yr.binding("util")}catch{}}(),cs=hs&&hs.isTypedArray,im=cs?tm(cs):Qg;const Nn=im;function un(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var rm=Object.prototype,nm=rm.hasOwnProperty;function om(t,e,i){var r=t[e];(!(nm.call(t,e)&&yr(r,i))||i===void 0&&!(e in t))&&$n(t,e,i)}function sm(t,e,i,r){var n=!i;i||(i={});for(var o=-1,s=e.length;++o-1&&t%1==0&&t0){if(++e>=km)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Am=Bm(vm);function Lm(t,e){return Am(xm(t,e,ja),t+"")}function Fm(t,e,i){if(!Ce(i))return!1;var r=typeof e;return(r=="number"?Tr(i)&&za(e,i.length):r=="string"&&e in i)?yr(i[e],t):!1}function Em(t){return Lm(function(e,i){var r=-1,n=i.length,o=n>1?i[n-1]:void 0,s=n>2?i[2]:void 0;for(o=t.length>3&&typeof o=="function"?(n--,o):void 0,s&&Fm(i[0],i[1],s)&&(o=n<3?void 0:o,n=1),e=Object(e);++r0?pi(He,--vt):0,De--,Q===10&&(De=1,vr--),Q}function At(){return Q=vt2||fn(Q)>3?"":" "}function Hm(t,e){for(;--e&&At()&&!(Q<48||Q>102||Q>57&&Q<65||Q>70&&Q<97););return kr(t,zi()+(e<6&&pe()==32&&At()==32))}function dn(t){for(;At();)switch(Q){case t:return vt;case 34:case 39:t!==34&&t!==39&&dn(Q);break;case 40:t===41&&dn(t);break;case 92:At();break}return vt}function jm(t,e){for(;At()&&t+Q!==57;)if(t+Q===84&&pe()===47)break;return"/*"+kr(e,vt-1)+"*"+Rn(t===47?t:At())}function Um(t){for(;!fn(pe());)At();return kr(t,vt)}function Ym(t){return zm(Wi("",null,null,null,[""],t=qm(t),0,[0],t))}function Wi(t,e,i,r,n,o,s,a,l){for(var h=0,u=0,f=s,c=0,d=0,m=0,T=1,S=1,R=1,v=0,P="",H=n,Y=o,K=r,W=P;S;)switch(m=v,v=At()){case 40:if(m!=108&&pi(W,f-1)==58){Dm(W+=qi(Vr(v),"&","&\f"),"&\f",Ga(h?a[h-1]:0))!=-1&&(R=-1);break}case 34:case 39:case 91:W+=Vr(v);break;case 9:case 10:case 13:case 32:W+=Wm(m);break;case 92:W+=Hm(zi()-1,7);continue;case 47:switch(pe()){case 42:case 47:Mi(Vm(jm(At(),zi()),e,i,l),l);break;default:W+="/"}break;case 123*T:a[h++]=Ut(W)*R;case 125*T:case 59:case 0:switch(v){case 0:case 125:S=0;case 59+u:R==-1&&(W=qi(W,/\f/g,"")),d>0&&Ut(W)-f&&Mi(d>32?ds(W+";",r,i,f-1,l):ds(qi(W," ","")+";",r,i,f-2,l),l);break;case 59:W+=";";default:if(Mi(K=fs(W,e,i,h,u,n,a,P,H=[],Y=[],f,o),o),v===123)if(u===0)Wi(W,e,K,K,H,o,f,a,Y);else switch(c===99&&pi(W,3)===110?100:c){case 100:case 108:case 109:case 115:Wi(t,K,K,r&&Mi(fs(t,K,K,0,0,n,a,P,n,H=[],f,Y),Y),n,Y,f,a,r?H:Y);break;default:Wi(W,K,K,K,[""],Y,0,a,Y)}}h=u=d=0,T=R=1,P=W="",f=s;break;case 58:f=1+Ut(W),d=m;default:if(T<1){if(v==123)--T;else if(v==125&&T++==0&&Pm()==125)continue}switch(W+=Rn(v),v*T){case 38:R=u>0?1:(W+="\f",-1);break;case 44:a[h++]=(Ut(W)-1)*R,R=1;break;case 64:pe()===45&&(W+=Vr(At())),c=pe(),u=f=Ut(P=W+=Um(zi())),v++;break;case 45:m===45&&Ut(W)==2&&(T=0)}}return o}function fs(t,e,i,r,n,o,s,a,l,h,u,f){for(var c=n-1,d=n===0?o:[""],m=Nm(d),T=0,S=0,R=0;T0?d[v]+" "+P:qi(P,/&\f/g,d[v])))&&(l[R++]=H);return Pn(t,e,i,n===0?Ya:a,l,h,u,f)}function Vm(t,e,i,r){return Pn(t,e,i,Ua,Rn(Rm()),gi(t,2,-2),0,r)}function ds(t,e,i,r,n){return Pn(t,e,i,Va,gi(t,0,r),gi(t,r+1,-1),r,n)}function pn(t,e){for(var i="",r=0;r{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},qn=function(t="fatal"){let e=Ht.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Ht&&(e=Ht[t])):typeof t=="number"&&(e=t),E.trace=()=>{},E.debug=()=>{},E.info=()=>{},E.warn=()=>{},E.error=()=>{},E.fatal=()=>{},e<=Ht.fatal&&(E.fatal=console.error?console.error.bind(console,bt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bt("FATAL"))),e<=Ht.error&&(E.error=console.error?console.error.bind(console,bt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bt("ERROR"))),e<=Ht.warn&&(E.warn=console.warn?console.warn.bind(console,bt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bt("WARN"))),e<=Ht.info&&(E.info=console.info?console.info.bind(console,bt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bt("INFO"))),e<=Ht.debug&&(E.debug=console.debug?console.debug.bind(console,bt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("DEBUG"))),e<=Ht.trace&&(E.trace=console.debug?console.debug.bind(console,bt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bt("TRACE")))},bt=t=>`%c${Wh().format("ss.SSS")} : ${t} : `,Sr=//gi,c0=t=>t?Ja(t).replace(/\\n/g,"#br#").split("#br#"):[""],u0=(()=>{let t=!1;return()=>{t||(f0(),t=!0)}})();function f0(){const t="data-temp-href-target";$e.addHook("beforeSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")||"")}),$e.addHook("afterSanitizeAttributes",e=>{e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)||""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}const Za=t=>(u0(),$e.sanitize(t)),Cs=(t,e)=>{var i;if(((i=e.flowchart)==null?void 0:i.htmlLabels)!==!1){const r=e.securityLevel;r==="antiscript"||r==="strict"?t=Za(t):r!=="loose"&&(t=Ja(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=m0(t))}return t},mi=(t,e)=>t&&(e.dompurifyConfig?t=$e.sanitize(Cs(t,e),e.dompurifyConfig).toString():t=$e.sanitize(Cs(t,e),{FORBID_TAGS:["style"]}).toString(),t),d0=(t,e)=>typeof t=="string"?mi(t,e):t.flat().map(i=>mi(i,e)),p0=t=>Sr.test(t),g0=t=>t.split(Sr),m0=t=>t.replace(/#br#/g,"
"),Ja=t=>t.replace(Sr,"#br#"),_0=t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},Qa=t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),y0=function(...t){const e=t.filter(i=>!isNaN(i));return Math.max(...e)},C0=function(...t){const e=t.filter(i=>!isNaN(i));return Math.min(...e)},m1=function(t){const e=t.split(/(,)/),i=[];for(let r=0;r0&&r+1Math.max(0,t.split(e).length-1),x0=(t,e)=>{const i=Cn(t,"~"),r=Cn(e,"~");return i===1&&r===1},b0=t=>{const e=Cn(t,"~");let i=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),i=!0);const r=[...t];let n=r.indexOf("~"),o=r.lastIndexOf("~");for(;n!==-1&&o!==-1&&n!==o;)r[n]="<",r[o]=">",n=r.indexOf("~"),o=r.lastIndexOf("~");return i&&r.unshift("~"),r.join("")},zn={getRows:c0,sanitizeText:mi,sanitizeTextOrArray:d0,hasBreaks:p0,splitBreaks:g0,lineBreakRegex:Sr,removeScript:Za,getUrl:_0,evaluate:Qa,getMax:y0,getMin:C0},ct=(t,e)=>e?g(t,{s:-40,l:10}):g(t,{s:-40,l:-10}),wr="#ffffff",Br="#f2f2f2";let T0=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ct(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ct(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ct(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ct(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||C(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||C(this.tertiaryColor),this.lineColor=this.lineColor||C(this.background),this.arrowheadColor=this.arrowheadColor||C(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?O(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||O(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||C(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||L(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let d=0;d{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const v0=t=>{const e=new T0;return e.calculate(t),e};let k0=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=L(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=C(this.background),this.secondaryBorderColor=ct(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ct(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=L(C("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=ri(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=O("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=O(this.sectionBkgColor,10),this.taskBorderColor=ri(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=ri(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=L(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=L(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=L(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const S0=t=>{const e=new k0;return e.calculate(t),e};let w0=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ct(this.primaryColor,this.darkMode),this.secondaryBorderColor=ct(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ct(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=ri(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const B0=t=>{const e=new w0;return e.calculate(t),e};let A0=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=L("#cde498",10),this.primaryBorderColor=ct(this.primaryColor,this.darkMode),this.secondaryBorderColor=ct(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ct(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.primaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.actorBorder=O(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||O(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||O(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const L0=t=>{const e=new A0;return e.calculate(t),e};class F0{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=L(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ct(this.primaryColor,this.darkMode),this.secondaryBorderColor=ct(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ct(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=L(this.contrast,55),this.border2=this.contrast,this.actorBorder=L(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}}const E0=t=>{const e=new F0;return e.calculate(t),e},Vt={base:{getThemeVariables:v0},dark:{getThemeVariables:S0},default:{getThemeVariables:B0},forest:{getThemeVariables:L0},neutral:{getThemeVariables:E0}},jt={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],deterministicIds:!1,fontSize:16},tl={...jt,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Vt.default.getThemeVariables(),sequence:{...jt.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...jt.gantt,tickInterval:void 0,useWidth:void 0},c4:{...jt.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...jt.pie,useWidth:984},xyChart:{...jt.xyChart,useWidth:void 0},requirement:{...jt.requirement,useWidth:void 0},gitGraph:{...jt.gitGraph,useMaxWidth:!1},sankey:{...jt.sankey,useMaxWidth:!1}},el=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:typeof t[r]=="object"&&t[r]!==null?[...i,e+r,...el(t[r],"")]:[...i,e+r],[]),O0=new Set(el(tl,"")),M0=tl,rr=t=>{if(E.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>rr(e));return}for(const e of Object.keys(t)){if(E.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!O0.has(e)||t[e]==null){E.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){E.debug("sanitizing object",e),rr(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(E.debug("sanitizing css option",e),t[e]=I0(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];i!=null&&i.match&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}E.debug("After sanitization",t)}},I0=t=>{let e=0,i=0;for(const r of t){if(e{for(const{id:e,detector:i,loader:r}of t)ol(e,i,r)},ol=(t,e,i)=>{Ne[t]?E.error(`Detector with key ${t} already exists`):Ne[t]={detector:e,loader:i},E.debug(`Detector with key ${t} added${i?" with loader":""}`)},D0=t=>Ne[t].loader,xn=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(o=>xn(t,o,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(o=>{t.includes(o)||t.push(o)}),t):t===void 0||i<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(o=>{typeof e[o]=="object"&&(t[o]===void 0||typeof t[o]=="object")?(t[o]===void 0&&(t[o]=Array.isArray(e[o])?[]:{}),t[o]=xn(t[o],e[o],{depth:i-1,clobber:r})):(r||typeof t[o]!="object"&&typeof e[o]!="object")&&(t[o]=e[o])}),t)},at=xn,N0="​",R0={curveBasis:ad,curveBasisClosed:ld,curveBasisOpen:hd,curveBumpX:od,curveBumpY:sd,curveBundle:cd,curveCardinalClosed:fd,curveCardinalOpen:dd,curveCardinal:ud,curveCatmullRomClosed:gd,curveCatmullRomOpen:md,curveCatmullRom:pd,curveLinear:nd,curveLinearClosed:_d,curveMonotoneX:yd,curveMonotoneY:Cd,curveNatural:xd,curveStep:bd,curveStepAfter:vd,curveStepBefore:Td},P0=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,q0=function(t,e){const i=sl(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const s=i.map(a=>a.args);rr(s),r=at(r,[...s])}else r=i.args;if(!r)return;let n=Ar(t,e);const o="config";return r[o]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),r[n]=r[o],delete r[o]),r},sl=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${P0.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),E.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=oi.exec(t))!==null;)if(r.index===oi.lastIndex&&oi.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const o=r[1]?r[1]:r[2],s=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:o,args:s})}return n.length===0?{type:t,args:null}:n.length===1?n[0]:n}catch(i){return E.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},z0=function(t){return t.replace(oi,"")},W0=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function H0(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return R0[i]??e}function j0(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Ps.sanitizeUrl(i):i}const U0=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let s=0;s{i+=al(n,e),e=n});const r=i/2;return Wn(t,r)}function V0(t){return t.length===1?t[0]:Y0(t)}const xs=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},Wn=(t,e)=>{let i,r=e;for(const n of t){if(i){const o=al(n,i);if(o=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:xs((1-s)*i.x+s*n.x,5),y:xs((1-s)*i.y+s*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")},G0=(t,e,i)=>{E.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const n=Wn(e,25),o=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),a={x:0,y:0};return a.x=Math.sin(s)*o+(e[0].x+n.x)/2,a.y=-Math.cos(s)*o+(e[0].y+n.y)/2,a};function X0(t,e,i){const r=structuredClone(i);E.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const n=25+t,o=Wn(r,n),s=10+t*.5,a=Math.atan2(r[0].y-o.y,r[0].x-o.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(a+Math.PI)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a+Math.PI)*s+(r[0].y+o.y)/2):e==="end_right"?(l.x=Math.sin(a-Math.PI)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a-Math.PI)*s+(r[0].y+o.y)/2-5):e==="end_left"?(l.x=Math.sin(a)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2-5):(l.x=Math.sin(a)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2),l}function K0(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let bs=0;const Z0=()=>(bs++,"id-"+Math.random().toString(36).substr(2,12)+"-"+bs);function J0(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nJ0(t.length),t_=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},e_=function(t,e){const i=e.text.replace(zn.lineBreakRegex," "),[,r]=jn(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+e.textMargin*2),o.attr("fill",e.fill),o.text(i),n},i_=bi((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},i),zn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let o="";return r.forEach((s,a)=>{const l=nr(`${s} `,i),h=nr(o,i);if(l>e){const{hyphenatedStrings:c,remainingWord:d}=r_(s,e,"-",i);n.push(o,...c),o=d}else h+l>=e?(n.push(o),o=s):o=[o,s].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(s=>s!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),r_=bi((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let s="";return n.forEach((a,l)=>{const h=`${s}${a}`;if(nr(h,r)>=e){const f=l+1,c=n.length===f,d=`${h}${i}`;o.push(c?h:d),s=""}else s=h}),{hyphenatedStrings:o,remainingWord:s}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function n_(t,e){return Hn(t,e).height}function nr(t,e){return Hn(t,e).width}const Hn=bi((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=jn(i),s=["sans-serif",r],a=t.split(zn.lineBreakRegex),l=[],h=Tt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const c of s){let d=0;const m={width:0,height:0,lineHeight:0};for(const T of a){const S=t_();S.text=T||N0;const R=e_(u,S).style("font-size",o).style("font-weight",n).style("font-family",c),v=(R._groups||R)[0][0].getBBox();if(v.width===0&&v.height===0)throw new Error("svg element not in render tree");m.width=Math.round(Math.max(m.width,v.width)),d=Math.round(v.height),m.height+=d,m.lineHeight=Math.round(Math.max(m.lineHeight,d))}l.push(m)}u.remove();const f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`);class o_{constructor(e=!1,i){this.count=0,this.count=i?i.length:0,this.next=e?()=>this.count++:()=>Date.now()}}let Ii;const s_=function(t){return Ii=Ii||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Ii.innerHTML=t,unescape(Ii.textContent)};function ll(t){return"str"in t}const a_=(t,e,i,r)=>{var n;if(!r)return;const o=(n=t.node())==null?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},jn=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function hl(t,e){return Om({},t,e)}const si={assignWithDepth:at,wrapLabel:i_,calculateTextHeight:n_,calculateTextWidth:nr,calculateTextDimensions:Hn,cleanAndMerge:hl,detectInit:q0,detectDirective:sl,isSubstringInArray:W0,interpolateToCurve:H0,calcLabelPosition:V0,calcCardinalityPosition:G0,calcTerminalLabelPosition:X0,formatUrl:j0,getStylesFromArray:K0,generateId:Z0,random:Q0,runFunc:U0,entityDecode:s_,insertTitle:a_,parseFontSize:jn,InitIDGenerator:o_},l_=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},h_=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},Ts="10.8.0",Re=Object.freeze(M0);let pt=at({},Re),cl,Pe=[],ai=at({},Re);const Lr=(t,e)=>{let i=at({},t),r={};for(const n of e)dl(n),r=at(r,n);if(i=at(i,r),r.theme&&r.theme in Vt){const n=at({},cl),o=at(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Vt&&(i.themeVariables=Vt[i.theme].getThemeVariables(o))}return ai=i,pl(ai),ai},c_=t=>(pt=at({},Re),pt=at(pt,t),t.theme&&Vt[t.theme]&&(pt.themeVariables=Vt[t.theme].getThemeVariables(t.themeVariables)),Lr(pt,Pe),pt),u_=t=>{cl=at({},t)},f_=t=>(pt=at(pt,t),Lr(pt,Pe),pt),ul=()=>at({},pt),fl=t=>(pl(t),at(ai,t),$t()),$t=()=>at({},ai),dl=t=>{t&&(["secure",...pt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(E.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&dl(t[e])}))},d_=t=>{rr(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),Pe.push(t),Lr(pt,Pe)},or=(t=pt)=>{Pe=[],Lr(t,Pe)},p_={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},vs={},g_=t=>{vs[t]||(E.warn(p_[t]),vs[t]=!0)},pl=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&g_("LAZY_LOAD_DEPRECATED")},gl="c4",m_=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),__=async()=>{const{diagram:t}=await X(()=>import("./chunks/c4Diagram-b947cdbb.DdN9w73L.js"),__vite__mapDeps([0,1,2,3]));return{id:gl,diagram:t}},y_={id:gl,detector:m_,loader:__},C_=y_,ml="flowchart",x_=(t,e)=>{var i,r;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},b_=async()=>{const{diagram:t}=await X(()=>import("./chunks/flowDiagram-d949d7c1.De0ce681.js"),__vite__mapDeps([4,5,6,7,8,9,10,11,12,13,14,15,16,2,3]));return{id:ml,diagram:t}},T_={id:ml,detector:x_,loader:b_},v_=T_,_l="flowchart-v2",k_=(t,e)=>{var i,r,n;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},S_=async()=>{const{diagram:t}=await X(()=>import("./chunks/flowDiagram-v2-49332944.BWsty62j.js"),__vite__mapDeps([17,5,8,6,9,7,10,11,12,13,14,15,16,2,3]));return{id:_l,diagram:t}},w_={id:_l,detector:k_,loader:S_},B_=w_,yl="er",A_=t=>/^\s*erDiagram/.test(t),L_=async()=>{const{diagram:t}=await X(()=>import("./chunks/erDiagram-0ea73325.D6LayG_5.js"),__vite__mapDeps([18,6,7,13,14,15,2,3]));return{id:yl,diagram:t}},F_={id:yl,detector:A_,loader:L_},E_=F_,Cl="gitGraph",O_=t=>/^\s*gitGraph/.test(t),M_=async()=>{const{diagram:t}=await X(()=>import("./chunks/gitGraphDiagram-b9d81de9.CNuHYvfB.js"),__vite__mapDeps([19,2,3]));return{id:Cl,diagram:t}},I_={id:Cl,detector:O_,loader:M_},$_=I_,xl="gantt",D_=t=>/^\s*gantt/.test(t),N_=async()=>{const{diagram:t}=await X(()=>import("./chunks/ganttDiagram-5c869e3b.CffrYaRJ.js"),__vite__mapDeps([20,21,22,2,3]));return{id:xl,diagram:t}},R_={id:xl,detector:D_,loader:N_},P_=R_,bl="info",q_=t=>/^\s*info/.test(t),z_=async()=>{const{diagram:t}=await X(()=>import("./chunks/infoDiagram-db7b18fc.B2RlRoHy.js"),__vite__mapDeps([23,2,3]));return{id:bl,diagram:t}},W_={id:bl,detector:q_,loader:z_},Tl="pie",H_=t=>/^\s*pie/.test(t),j_=async()=>{const{diagram:t}=await X(()=>import("./chunks/pieDiagram-b0208e96.D2Hyosy_.js"),__vite__mapDeps([24,25,15,26,22,14,2,3]));return{id:Tl,diagram:t}},U_={id:Tl,detector:H_,loader:j_},vl="quadrantChart",Y_=t=>/^\s*quadrantChart/.test(t),V_=async()=>{const{diagram:t}=await X(()=>import("./chunks/quadrantDiagram-0332be45.9barGxeJ.js"),__vite__mapDeps([27,21,22,2,3]));return{id:vl,diagram:t}},G_={id:vl,detector:Y_,loader:V_},X_=G_,kl="xychart",K_=t=>/^\s*xychart-beta/.test(t),Z_=async()=>{const{diagram:t}=await X(()=>import("./chunks/xychartDiagram-e50adddc._djyjX0F.js"),__vite__mapDeps([28,12,22,26,21,13,14,15,2,3]));return{id:kl,diagram:t}},J_={id:kl,detector:K_,loader:Z_},Q_=J_,Sl="requirement",ty=t=>/^\s*requirement(Diagram)?/.test(t),ey=async()=>{const{diagram:t}=await X(()=>import("./chunks/requirementDiagram-bf7890df.CnT6SW1y.js"),__vite__mapDeps([29,6,7,13,14,15,2,3]));return{id:Sl,diagram:t}},iy={id:Sl,detector:ty,loader:ey},ry=iy,wl="sequence",ny=t=>/^\s*sequenceDiagram/.test(t),oy=async()=>{const{diagram:t}=await X(()=>import("./chunks/sequenceDiagram-c18d009d.2v1gGLQH.js"),__vite__mapDeps([30,1,2,3]));return{id:wl,diagram:t}},sy={id:wl,detector:ny,loader:oy},ay=sy,Bl="class",ly=(t,e)=>{var i;return((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},hy=async()=>{const{diagram:t}=await X(()=>import("./chunks/classDiagram-35230388.CNtWKbXw.js"),__vite__mapDeps([31,32,6,7,13,14,15,2,3]));return{id:Bl,diagram:t}},cy={id:Bl,detector:ly,loader:hy},uy=cy,Al="classDiagram",fy=(t,e)=>{var i;return/^\s*classDiagram/.test(t)&&((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},dy=async()=>{const{diagram:t}=await X(()=>import("./chunks/classDiagram-v2-412acd34.Eg7J1noV.js"),__vite__mapDeps([33,32,6,9,7,10,11,12,13,14,15,2,3]));return{id:Al,diagram:t}},py={id:Al,detector:fy,loader:dy},gy=py,Ll="state",my=(t,e)=>{var i;return((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},_y=async()=>{const{diagram:t}=await X(()=>import("./chunks/stateDiagram-43596fc0.Cq6QMfgF.js"),__vite__mapDeps([34,35,6,7,13,14,15,2,3]));return{id:Ll,diagram:t}},yy={id:Ll,detector:my,loader:_y},Cy=yy,Fl="stateDiagram",xy=(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper")},by=async()=>{const{diagram:t}=await X(()=>import("./chunks/stateDiagram-v2-2ead4f9c.BWcTopCt.js"),__vite__mapDeps([36,35,6,9,7,10,11,12,13,14,15,2,3]));return{id:Fl,diagram:t}},Ty={id:Fl,detector:xy,loader:by},vy=Ty,El="journey",ky=t=>/^\s*journey/.test(t),Sy=async()=>{const{diagram:t}=await X(()=>import("./chunks/journeyDiagram-d5636530.DgDqXNxd.js"),__vite__mapDeps([37,1,25,15,2,3]));return{id:El,diagram:t}},wy={id:El,detector:ky,loader:Sy},By=wy,Ay=function(t,e){for(let i of e)t.attr(i[0],i[1])},Ly=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},Ol=function(t,e,i,r){const n=Ly(e,i,r);Ay(t,n)},Fy=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,s=n.height;E.info(`SVG bounds: ${o}x${s}`,n);let a=0,l=0;E.info(`Graph bounds: ${a}x${l}`,t),a=o+i*2,l=s+i*2,E.info(`Calculated bounds: ${a}x${l}`),Ol(e,l,a,r);const h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},Hi={},Ey=(t,e,i)=>{let r="";return t in Hi&&Hi[t]?r=Hi[t](i):E.warn(`No theme found for ${t}`),` & { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + fill: ${i.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${i.errorBkgColor}; + } + & .error-text { + fill: ${i.errorTextColor}; + stroke: ${i.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 2px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${i.lineColor}; + stroke: ${i.lineColor}; + } + & .marker.cross { + stroke: ${i.lineColor}; + } + + & svg { + font-family: ${i.fontFamily}; + font-size: ${i.fontSize}; + } + + ${r} + + ${e} +`},Oy=(t,e)=>{e!==void 0&&(Hi[t]=e)},My=Ey;let Un="",Yn="",Vn="";const Gn=t=>mi(t,$t()),Iy=()=>{Un="",Vn="",Yn=""},$y=t=>{Un=Gn(t).replace(/^\s+/g,"")},Dy=()=>Un,Ny=t=>{Vn=Gn(t).replace(/\n\s+/g,` +`)},Ry=()=>Vn,Py=t=>{Yn=Gn(t)},qy=()=>Yn,zy=Object.freeze(Object.defineProperty({__proto__:null,clear:Iy,getAccDescription:Ry,getAccTitle:Dy,getDiagramTitle:qy,setAccDescription:Ny,setAccTitle:$y,setDiagramTitle:Py},Symbol.toStringTag,{value:"Module"})),Wy=E,Hy=qn,Xn=$t,b1=fl,T1=Re,jy=t=>mi(t,Xn()),Uy=Fy,Yy=()=>zy,sr={},ar=(t,e,i)=>{var r;if(sr[t])throw new Error(`Diagram ${t} already registered.`);sr[t]=e,i&&ol(t,i),Oy(t,e.styles),(r=e.injectUtils)==null||r.call(e,Wy,Hy,Xn,jy,Uy,Yy(),()=>{})},Kn=t=>{if(t in sr)return sr[t];throw new Vy(t)};class Vy extends Error{constructor(e){super(`Diagram ${e} not found.`)}}const Gy=t=>{var e;const{securityLevel:i}=Xn();let r=Tt("body");if(i==="sandbox"){const s=((e=Tt(`#i${t}`).node())==null?void 0:e.contentDocument)??document;r=Tt(s.body)}return r.select(`#${t}`)},Xy=(t,e,i)=>{E.debug(`rendering svg for syntax error +`);const r=Gy(e);r.attr("viewBox","0 0 2412 512"),Ol(r,100,512,!0);const n=r.append("g");n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)},Ml={draw:Xy},Ky=Ml,Zy={db:{},renderer:Ml,parser:{parser:{yy:{}},parse:()=>{}}},Jy=Zy,Il="flowchart-elk",Qy=(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="elk")},tC=async()=>{const{diagram:t}=await X(()=>import("./chunks/flowchart-elk-definition-27cc417a.7uNOilH3.js"),__vite__mapDeps([38,5,11,12,13,14,15,2,3]));return{id:Il,diagram:t}},eC={id:Il,detector:Qy,loader:tC},iC=eC,$l="timeline",rC=t=>/^\s*timeline/.test(t),nC=async()=>{const{diagram:t}=await X(()=>import("./chunks/timeline-definition-d977decf.BWb3XqIn.js"),__vite__mapDeps([39,25,15,2,3]));return{id:$l,diagram:t}},oC={id:$l,detector:rC,loader:nC},sC=oC,Dl="mindmap",aC=t=>/^\s*mindmap/.test(t),lC=async()=>{const{diagram:t}=await X(()=>import("./chunks/mindmap-definition-377f8f1f.B9TexoUI.js"),__vite__mapDeps([40,12,2,3]));return{id:Dl,diagram:t}},hC={id:Dl,detector:aC,loader:lC},cC=hC,Nl="sankey",uC=t=>/^\s*sankey-beta/.test(t),fC=async()=>{const{diagram:t}=await X(()=>import("./chunks/sankeyDiagram-0acdec17.B1_fpWdp.js"),__vite__mapDeps([41,26,22,42,2,3]));return{id:Nl,diagram:t}},dC={id:Nl,detector:uC,loader:fC},pC=dC,Rl="block",gC=t=>/^\s*block-beta/.test(t),mC=async()=>{const{diagram:t}=await X(()=>import("./chunks/blockDiagram-6b2b5046.BAxiudRd.js"),__vite__mapDeps([43,10,6,11,12,13,14,15,26,22,16,42,2,3]));return{id:Rl,diagram:t}},_C={id:Rl,detector:gC,loader:mC},yC=_C;let ks=!1;const Zn=()=>{ks||(ks=!0,ar("error",Jy,t=>t.toLowerCase().trim()==="error"),ar("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),nl(C_,gy,uy,E_,P_,W_,U_,ry,ay,iC,B_,v_,cC,sC,$_,vy,Cy,By,X_,pC,Q_,yC))};class Pl{constructor(e,i={}){this.text=e,this.metadata=i,this.type="graph",this.text=l_(e),this.text+=` +`;const r=$t();try{this.type=Ar(e,r)}catch(o){this.type="error",this.detectError=o}const n=Kn(this.type);E.debug("Type "+this.type),this.db=n.db,this.renderer=n.renderer,this.parser=n.parser,this.parser.parser.yy=this.db,this.init=n.init,this.parse()}parse(){var e,i,r,n,o;if(this.detectError)throw this.detectError;(i=(e=this.db).clear)==null||i.call(e);const s=$t();(r=this.init)==null||r.call(this,s),this.metadata.title&&((o=(n=this.db).setDiagramTitle)==null||o.call(n,this.metadata.title)),this.parser.parse(this.text)}async render(e,i){await this.renderer.draw(this.text,e,i,this)}getParser(){return this.parser}getType(){return this.type}}const CC=async(t,e={})=>{const i=Ar(t,$t());try{Kn(i)}catch{const n=D0(i);if(!n)throw new rl(`Diagram ${i} not found.`);const{id:o,diagram:s}=await n();ar(o,s)}return new Pl(t,e)};let Ss=[];const xC=()=>{Ss.forEach(t=>{t()}),Ss=[]},bC="graphics-document document";function TC(t,e){t.attr("role",bC),e!==""&&t.attr("aria-roledescription",e)}function vC(t,e,i,r){if(t.insert!==void 0){if(i){const n=`chart-desc-${r}`;t.attr("aria-describedby",n),t.insert("desc",":first-child").attr("id",n).text(i)}if(e){const n=`chart-title-${r}`;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const kC=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function ql(t){return typeof t>"u"||t===null}function SC(t){return typeof t=="object"&&t!==null}function wC(t){return Array.isArray(t)?t:ql(t)?[]:[t]}function BC(t,e){var i,r,n,o;if(e)for(o=Object.keys(e),i=0,r=o.length;ia&&(o=" ... ",e=r-a+o.length),i-r>a&&(s=" ...",i=r+a-s.length),{str:o+t.slice(e,i).replace(/\t/g,"→")+s,pos:r-e+o.length}}function Kr(t,e){return ht.repeat(" ",e-t.length)+t}function DC(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],n=[],o,s=-1;o=i.exec(t.buffer);)n.push(o.index),r.push(o.index+o[0].length),t.position<=o.index&&s<0&&(s=r.length-2);s<0&&(s=r.length-1);var a="",l,h,u=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)h=Xr(t.buffer,r[s-l],n[s-l],t.position-(r[s]-r[s-l]),f),a=ht.repeat(" ",e.indent)+Kr((t.line-l+1).toString(),u)+" | "+h.str+` +`+a;for(h=Xr(t.buffer,r[s],n[s],t.position,f),a+=ht.repeat(" ",e.indent)+Kr((t.line+1).toString(),u)+" | "+h.str+` +`,a+=ht.repeat("-",e.indent+u+3+h.pos)+`^ +`,l=1;l<=e.linesAfter&&!(s+l>=n.length);l++)h=Xr(t.buffer,r[s+l],n[s+l],t.position-(r[s]-r[s+l]),f),a+=ht.repeat(" ",e.indent)+Kr((t.line+l+1).toString(),u)+" | "+h.str+` +`;return a.replace(/\n$/,"")}var NC=DC,RC=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],PC=["scalar","sequence","mapping"];function qC(t){var e={};return t!==null&&Object.keys(t).forEach(function(i){t[i].forEach(function(r){e[String(r)]=i})}),e}function zC(t,e){if(e=e||{},Object.keys(e).forEach(function(i){if(RC.indexOf(i)===-1)throw new Yt('Unknown option "'+i+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(i){return i},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=qC(e.styleAliases||null),PC.indexOf(this.kind)===-1)throw new Yt('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var lt=zC;function ws(t,e){var i=[];return t[e].forEach(function(r){var n=i.length;i.forEach(function(o,s){o.tag===r.tag&&o.kind===r.kind&&o.multi===r.multi&&(n=s)}),i[n]=r}),i}function WC(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,i;function r(n){n.multi?(t.multi[n.kind].push(n),t.multi.fallback.push(n)):t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,i=arguments.length;e=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),hx=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function cx(t){return!(t===null||!hx.test(t)||t[t.length-1]==="_")}function ux(t){var e,i;return e=t.replace(/_/g,"").toLowerCase(),i=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:i*parseFloat(e,10)}var fx=/^[-+]?[0-9]+e/;function dx(t,e){var i;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ht.isNegativeZero(t))return"-0.0";return i=t.toString(10),fx.test(i)?i.replace("e",".e"):i}function px(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||ht.isNegativeZero(t))}var gx=new lt("tag:yaml.org,2002:float",{kind:"scalar",resolve:cx,construct:ux,predicate:px,represent:dx,defaultStyle:"lowercase"}),Wl=VC.extend({implicit:[ZC,ex,lx,gx]}),mx=Wl,Hl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),jl=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function _x(t){return t===null?!1:Hl.exec(t)!==null||jl.exec(t)!==null}function yx(t){var e,i,r,n,o,s,a,l=0,h=null,u,f,c;if(e=Hl.exec(t),e===null&&(e=jl.exec(t)),e===null)throw new Error("Date resolve error");if(i=+e[1],r=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(i,r,n));if(o=+e[4],s=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],f=+(e[11]||0),h=(u*60+f)*6e4,e[9]==="-"&&(h=-h)),c=new Date(Date.UTC(i,r,n,o,s,a,l)),h&&c.setTime(c.getTime()-h),c}function Cx(t){return t.toISOString()}var xx=new lt("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:_x,construct:yx,instanceOf:Date,represent:Cx});function bx(t){return t==="<<"||t===null}var Tx=new lt("tag:yaml.org,2002:merge",{kind:"scalar",resolve:bx}),Jn=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function vx(t){if(t===null)return!1;var e,i,r=0,n=t.length,o=Jn;for(i=0;i64)){if(e<0)return!1;r+=6}return r%8===0}function kx(t){var e,i,r=t.replace(/[\r\n=]/g,""),n=r.length,o=Jn,s=0,a=[];for(e=0;e>16&255),a.push(s>>8&255),a.push(s&255)),s=s<<6|o.indexOf(r.charAt(e));return i=n%4*6,i===0?(a.push(s>>16&255),a.push(s>>8&255),a.push(s&255)):i===18?(a.push(s>>10&255),a.push(s>>2&255)):i===12&&a.push(s>>4&255),new Uint8Array(a)}function Sx(t){var e="",i=0,r,n,o=t.length,s=Jn;for(r=0;r>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]),i=(i<<8)+t[r];return n=o%3,n===0?(e+=s[i>>18&63],e+=s[i>>12&63],e+=s[i>>6&63],e+=s[i&63]):n===2?(e+=s[i>>10&63],e+=s[i>>4&63],e+=s[i<<2&63],e+=s[64]):n===1&&(e+=s[i>>2&63],e+=s[i<<4&63],e+=s[64],e+=s[64]),e}function wx(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}var Bx=new lt("tag:yaml.org,2002:binary",{kind:"scalar",resolve:vx,construct:kx,predicate:wx,represent:Sx}),Ax=Object.prototype.hasOwnProperty,Lx=Object.prototype.toString;function Fx(t){if(t===null)return!0;var e=[],i,r,n,o,s,a=t;for(i=0,r=a.length;i>10)+55296,(t-65536&1023)+56320)}var Xl=new Array(256),Kl=new Array(256);for(var Be=0;Be<256;Be++)Xl[Be]=Ls(Be)?1:0,Kl[Be]=Ls(Be);function Kx(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||zx,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Zl(t,e){var i={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return i.snippet=NC(i),new Yt(e,i)}function F(t,e){throw Zl(t,e)}function cr(t,e){t.onWarning&&t.onWarning.call(null,Zl(t,e))}var Fs={YAML:function(e,i,r){var n,o,s;e.version!==null&&F(e,"duplication of %YAML directive"),r.length!==1&&F(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),n===null&&F(e,"ill-formed argument of the YAML directive"),o=parseInt(n[1],10),s=parseInt(n[2],10),o!==1&&F(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&cr(e,"unsupported YAML version of the document")},TAG:function(e,i,r){var n,o;r.length!==2&&F(e,"TAG directive accepts exactly two arguments"),n=r[0],o=r[1],Vl.test(n)||F(e,"ill-formed tag handle (first argument) of the TAG directive"),oe.call(e.tagMap,n)&&F(e,'there is a previously declared suffix for "'+n+'" tag handle'),Gl.test(o)||F(e,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{F(e,"tag prefix is malformed: "+o)}e.tagMap[n]=o}};function re(t,e,i,r){var n,o,s,a;if(e1&&(t.result+=ht.repeat(` +`,e-1))}function Zx(t,e,i){var r,n,o,s,a,l,h,u,f=t.kind,c=t.result,d;if(d=t.input.charCodeAt(t.position),mt(d)||Ae(d)||d===35||d===38||d===42||d===33||d===124||d===62||d===39||d===34||d===37||d===64||d===96||(d===63||d===45)&&(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Ae(n)))return!1;for(t.kind="scalar",t.result="",o=s=t.position,a=!1;d!==0;){if(d===58){if(n=t.input.charCodeAt(t.position+1),mt(n)||i&&Ae(n))break}else if(d===35){if(r=t.input.charCodeAt(t.position-1),mt(r))break}else{if(t.position===t.lineStart&&Fr(t)||i&&Ae(d))break;if(Mt(d))if(l=t.line,h=t.lineStart,u=t.lineIndent,tt(t,!1,-1),t.lineIndent>=e){a=!0,d=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=l,t.lineStart=h,t.lineIndent=u;break}}a&&(re(t,o,s,!1),to(t,t.line-l),o=s=t.position,a=!1),ge(d)||(s=t.position+1),d=t.input.charCodeAt(++t.position)}return re(t,o,s,!1),t.result?!0:(t.kind=f,t.result=c,!1)}function Jx(t,e){var i,r,n;if(i=t.input.charCodeAt(t.position),i!==39)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(i=t.input.charCodeAt(t.position))!==0;)if(i===39)if(re(t,r,t.position,!0),i=t.input.charCodeAt(++t.position),i===39)r=t.position,t.position++,n=t.position;else return!0;else Mt(i)?(re(t,r,n,!0),to(t,tt(t,!1,e)),r=n=t.position):t.position===t.lineStart&&Fr(t)?F(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);F(t,"unexpected end of the stream within a single quoted scalar")}function Qx(t,e){var i,r,n,o,s,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,i=r=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return re(t,i,t.position,!0),t.position++,!0;if(a===92){if(re(t,i,t.position,!0),a=t.input.charCodeAt(++t.position),Mt(a))tt(t,!1,e);else if(a<256&&Xl[a])t.result+=Kl[a],t.position++;else if((s=Vx(a))>0){for(n=s,o=0;n>0;n--)a=t.input.charCodeAt(++t.position),(s=Yx(a))>=0?o=(o<<4)+s:F(t,"expected hexadecimal character");t.result+=Xx(o),t.position++}else F(t,"unknown escape sequence");i=r=t.position}else Mt(a)?(re(t,i,r,!0),to(t,tt(t,!1,e)),i=r=t.position):t.position===t.lineStart&&Fr(t)?F(t,"unexpected end of the document within a double quoted scalar"):(t.position++,r=t.position)}F(t,"unexpected end of the stream within a double quoted scalar")}function tb(t,e){var i=!0,r,n,o,s=t.tag,a,l=t.anchor,h,u,f,c,d,m=Object.create(null),T,S,R,v;if(v=t.input.charCodeAt(t.position),v===91)u=93,d=!1,a=[];else if(v===123)u=125,d=!0,a={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=a),v=t.input.charCodeAt(++t.position);v!==0;){if(tt(t,!0,e),v=t.input.charCodeAt(t.position),v===u)return t.position++,t.tag=s,t.anchor=l,t.kind=d?"mapping":"sequence",t.result=a,!0;i?v===44&&F(t,"expected the node content, but found ','"):F(t,"missed comma between flow collection entries"),S=T=R=null,f=c=!1,v===63&&(h=t.input.charCodeAt(t.position+1),mt(h)&&(f=c=!0,t.position++,tt(t,!0,e))),r=t.line,n=t.lineStart,o=t.position,qe(t,e,lr,!1,!0),S=t.tag,T=t.result,tt(t,!0,e),v=t.input.charCodeAt(t.position),(c||t.line===r)&&v===58&&(f=!0,v=t.input.charCodeAt(++t.position),tt(t,!0,e),qe(t,e,lr,!1,!0),R=t.result),d?Le(t,a,m,S,T,R,r,n,o):f?a.push(Le(t,null,m,S,T,R,r,n,o)):a.push(T),tt(t,!0,e),v=t.input.charCodeAt(t.position),v===44?(i=!0,v=t.input.charCodeAt(++t.position)):i=!1}F(t,"unexpected end of the stream within a flow collection")}function eb(t,e){var i,r,n=Zr,o=!1,s=!1,a=e,l=0,h=!1,u,f;if(f=t.input.charCodeAt(t.position),f===124)r=!1;else if(f===62)r=!0;else return!1;for(t.kind="scalar",t.result="";f!==0;)if(f=t.input.charCodeAt(++t.position),f===43||f===45)Zr===n?n=f===43?Bs:Wx:F(t,"repeat of a chomping mode identifier");else if((u=Gx(f))>=0)u===0?F(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?F(t,"repeat of an indentation width identifier"):(a=e+u-1,s=!0);else break;if(ge(f)){do f=t.input.charCodeAt(++t.position);while(ge(f));if(f===35)do f=t.input.charCodeAt(++t.position);while(!Mt(f)&&f!==0)}for(;f!==0;){for(Qn(t),t.lineIndent=0,f=t.input.charCodeAt(t.position);(!s||t.lineIndenta&&(a=t.lineIndent),Mt(f)){l++;continue}if(t.lineIndente)&&l!==0)F(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(S&&(s=t.line,a=t.lineStart,l=t.position),qe(t,e,hr,!0,n)&&(S?m=t.result:T=t.result),S||(Le(t,f,c,d,m,T,s,a,l),d=m=T=null),tt(t,!0,-1),v=t.input.charCodeAt(t.position)),(t.line===o||t.lineIndent>e)&&v!==0)F(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),f=0,c=t.implicitTypes.length;f"),t.result!==null&&m.kind!==t.kind&&F(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+m.kind+'", not "'+t.kind+'"'),m.resolve(t.result,t.tag)?(t.result=m.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):F(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function sb(t){var e=t.position,i,r,n,o=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(tt(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(o=!0,s=t.input.charCodeAt(++t.position),i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);for(r=t.input.slice(i,t.position),n=[],r.length<1&&F(t,"directive name must not be less than one character in length");s!==0;){for(;ge(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!Mt(s));break}if(Mt(s))break;for(i=t.position;s!==0&&!mt(s);)s=t.input.charCodeAt(++t.position);n.push(t.input.slice(i,t.position))}s!==0&&Qn(t),oe.call(Fs,r)?Fs[r](t,r,n):cr(t,'unknown document directive "'+r+'"')}if(tt(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,tt(t,!0,-1)):o&&F(t,"directives end mark is expected"),qe(t,t.lineIndent-1,hr,!1,!0),tt(t,!0,-1),t.checkLineBreaks&&jx.test(t.input.slice(e,t.position))&&cr(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Fr(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,tt(t,!0,-1));return}if(t.position"u"&&(i=e,e=null);var r=Jl(t,i);if(typeof e!="function")return r;for(var n=0,o=r.length;nt.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,i,r)=>"<"+i+r.replace(/="([^"]*)"/g,"='$1'")+">"),mb=t=>{const{text:e,metadata:i}=pb(t),{displayMode:r,title:n,config:o={}}=i;return r&&(o.gantt||(o.gantt={}),o.gantt.displayMode=r),{title:n,config:o,text:e}},_b=t=>{const e=si.detectInit(t)??{},i=si.detectDirective(t,"wrap");return Array.isArray(i)?e.wrap=i.some(({type:r})=>{}):(i==null?void 0:i.type)==="wrap"&&(e.wrap=!0),{text:z0(t),directive:e}};function Ql(t){const e=gb(t),i=mb(e),r=_b(i.text),n=hl(i.config,r.directive);return t=kC(r.text),{code:t,title:i.title,config:n}}const yb=5e4,Cb="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",xb="sandbox",bb="loose",Tb="http://www.w3.org/2000/svg",vb="http://www.w3.org/1999/xlink",kb="http://www.w3.org/1999/xhtml",Sb="100%",wb="100%",Bb="border:0;margin:0;",Ab="margin:0",Lb="allow-top-navigation-by-user-activation allow-popups",Fb='The "iframe" tag is not supported by your browser.',Eb=["foreignobject"],Ob=["dominant-baseline"];function th(t){const e=Ql(t);return or(),d_(e.config??{}),e}async function Mb(t,e){Zn(),t=th(t).code;try{await eo(t)}catch(i){if(e!=null&&e.suppressErrors)return!1;throw i}return!0}const Ms=(t,e,i=[])=>` +.${t} ${e} { ${i.join(" !important; ")} !important; }`,Ib=(t,e={})=>{var i;let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!Gr(e)){const a=t.htmlLabels||((i=t.flowchart)==null?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const l in e){const h=e[l];Gr(h.styles)||a.forEach(u=>{r+=Ms(h.id,u,h.styles)}),Gr(h.textStyles)||(r+=Ms(h.id,"tspan",h.textStyles))}}return r},$b=(t,e,i,r)=>{const n=Ib(t,i),o=My(e,n,t.themeVariables);return pn(Ym(`${r}{${o}}`),Gm)},Db=(t="",e,i)=>{let r=t;return!i&&!e&&(r=r.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),r=h_(r),r=r.replace(/
/g,"
"),r},Nb=(t="",e)=>{var i,r;const n=(r=(i=e==null?void 0:e.viewBox)==null?void 0:i.baseVal)!=null&&r.height?e.viewBox.baseVal.height+"px":wb,o=btoa(''+t+"");return``},Is=(t,e,i,r,n)=>{const o=t.append("div");o.attr("id",i),r&&o.attr("style",r);const s=o.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Tb);return n&&s.attr("xmlns:xlink",n),s.append("g"),t};function $s(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const Rb=(t,e,i,r)=>{var n,o,s;(n=t.getElementById(e))==null||n.remove(),(o=t.getElementById(i))==null||o.remove(),(s=t.getElementById(r))==null||s.remove()},Pb=async function(t,e,i){var r,n,o,s,a,l;Zn();const h=th(e);e=h.code;const u=$t();E.debug(u),e.length>((u==null?void 0:u.maxTextSize)??yb)&&(e=Cb);const f="#"+t,c="i"+t,d="#"+c,m="d"+t,T="#"+m;let S=Tt("body");const R=u.securityLevel===xb,v=u.securityLevel===bb,P=u.fontFamily;if(i!==void 0){if(i&&(i.innerHTML=""),R){const b=$s(Tt(i),c);S=Tt(b.nodes()[0].contentDocument.body),S.node().style.margin=0}else S=Tt(i);Is(S,t,m,`font-family: ${P}`,vb)}else{if(Rb(document,t,m,c),R){const b=$s(Tt("body"),c);S=Tt(b.nodes()[0].contentDocument.body),S.node().style.margin=0}else S=Tt("body");Is(S,t,m)}let H,Y;try{H=await eo(e,{title:h.title})}catch(b){H=new Pl("error"),Y=b}const K=S.select(T).node(),W=H.type,Kt=K.firstChild,Zt=Kt.firstChild,j=(n=(r=H.renderer).getClasses)==null?void 0:n.call(r,e,H),z=$b(u,W,j,f),kt=document.createElement("style");kt.innerHTML=z,Kt.insertBefore(kt,Zt);try{await H.renderer.draw(e,t,Ts,H)}catch(b){throw Ky.draw(e,t,Ts),b}const Jt=S.select(`${T} svg`),M=(s=(o=H.db).getAccTitle)==null?void 0:s.call(o),k=(l=(a=H.db).getAccDescription)==null?void 0:l.call(a);zb(W,Jt,M,k),S.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",kb);let y=S.select(T).node().innerHTML;if(E.debug("config.arrowMarkerAbsolute",u.arrowMarkerAbsolute),y=Db(y,R,Qa(u.arrowMarkerAbsolute)),R){const b=S.select(T+" svg").node();y=Nb(y,b)}else v||(y=$e.sanitize(y,{ADD_TAGS:Eb,ADD_ATTR:Ob}));if(xC(),Y)throw Y;const x=Tt(R?d:T).node();return x&&"remove"in x&&x.remove(),{svg:y,bindFunctions:H.db.bindFunctions}};function qb(t={}){var e;t!=null&&t.fontFamily&&!((e=t.themeVariables)!=null&&e.fontFamily)&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),u_(t),t!=null&&t.theme&&t.theme in Vt?t.themeVariables=Vt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Vt.default.getThemeVariables(t.themeVariables));const i=typeof t=="object"?c_(t):ul();qn(i.logLevel),Zn()}const eo=(t,e={})=>{const{code:i}=Ql(t);return CC(i,e)};function zb(t,e,i,r){TC(e,t),vC(e,i,r,e.attr("id"))}const ye=Object.freeze({render:Pb,parse:Mb,getDiagramFromText:eo,initialize:qb,getConfig:$t,setConfig:fl,getSiteConfig:ul,updateSiteConfig:f_,reset:()=>{or()},globalReset:()=>{or(Re)},defaultConfig:Re});qn($t().logLevel);or($t());const Wb=async()=>{E.debug("Loading registered diagrams");const e=(await Promise.allSettled(Object.entries(Ne).map(async([i,{detector:r,loader:n}])=>{if(n)try{Kn(i)}catch{try{const{diagram:s,id:a}=await n();ar(a,s,r)}catch(s){throw E.error(`Failed to load external diagram with key ${i}. Removing from detectors.`),delete Ne[i],s}}}))).filter(i=>i.status==="rejected");if(e.length>0){E.error(`Failed to load ${e.length} external diagrams`);for(const i of e)E.error(i);throw new Error(`Failed to load ${e.length} external diagrams`)}},Hb=(t,e,i)=>{E.warn(t),ll(t)?(i&&i(t.str,t.hash),e.push({...t,message:t.str,error:t})):(i&&i(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},eh=async function(t={querySelector:".mermaid"}){try{await jb(t)}catch(e){if(ll(e)&&E.error(e.str),_t.parseError&&_t.parseError(e),!t.suppressErrors)throw E.error("Use the suppressErrors option to suppress these errors"),e}},jb=async function({postRenderCallback:t,querySelector:e,nodes:i}={querySelector:".mermaid"}){const r=ye.getConfig();E.debug(`${t?"":"No "}Callback function found`);let n;if(i)n=i;else if(e)n=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");E.debug(`Found ${n.length} diagrams`),(r==null?void 0:r.startOnLoad)!==void 0&&(E.debug("Start On Load: "+(r==null?void 0:r.startOnLoad)),ye.updateSiteConfig({startOnLoad:r==null?void 0:r.startOnLoad}));const o=new si.InitIDGenerator(r.deterministicIds,r.deterministicIDSeed);let s;const a=[];for(const l of Array.from(n)){E.info("Rendering diagram: "+l.id);/*! Check if previously processed */if(l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const h=`mermaid-${o.next()}`;s=l.innerHTML,s=Rh(si.entityDecode(s)).trim().replace(//gi,"
");const u=si.detectInit(s);u&&E.debug("Detected early reinit: ",u);try{const{svg:f,bindFunctions:c}=await oh(h,s,l);l.innerHTML=f,t&&await t(h),c&&c(l)}catch(f){Hb(f,a,_t.parseError)}}if(a.length>0)throw a[0]},ih=function(t){ye.initialize(t)},Ub=async function(t,e,i){E.warn("mermaid.init is deprecated. Please use run instead."),t&&ih(t);const r={postRenderCallback:i,querySelector:".mermaid"};typeof e=="string"?r.querySelector=e:e&&(e instanceof HTMLElement?r.nodes=[e]:r.nodes=e),await eh(r)},Yb=async(t,{lazyLoad:e=!0}={})=>{nl(...t),e===!1&&await Wb()},rh=function(){if(_t.startOnLoad){const{startOnLoad:t}=ye.getConfig();t&&_t.run().catch(e=>E.error("Mermaid failed to initialize",e))}};if(typeof document<"u"){/*! + * Wait for document loaded before starting the execution + */window.addEventListener("load",rh,!1)}const Vb=function(t){_t.parseError=t},ur=[];let Jr=!1;const nh=async()=>{if(!Jr){for(Jr=!0;ur.length>0;){const t=ur.shift();if(t)try{await t()}catch(e){E.error("Error executing queue",e)}}Jr=!1}},Gb=async(t,e)=>new Promise((i,r)=>{const n=()=>new Promise((o,s)=>{ye.parse(t,e).then(a=>{o(a),i(a)},a=>{var l;E.error("Error parsing",a),(l=_t.parseError)==null||l.call(_t,a),s(a),r(a)})});ur.push(n),nh().catch(r)}),oh=(t,e,i)=>new Promise((r,n)=>{const o=()=>new Promise((s,a)=>{ye.render(t,e,i).then(l=>{s(l),r(l)},l=>{var h;E.error("Error parsing",l),(h=_t.parseError)==null||h.call(_t,l),a(l),n(l)})});ur.push(o),nh().catch(n)}),_t={startOnLoad:!0,mermaidAPI:ye,parse:Gb,render:oh,init:Ub,run:eh,registerExternalDiagrams:Yb,initialize:ih,parseError:void 0,contentLoaded:rh,setParseErrorHandler:Vb,detectType:Ar},Xb=async t=>{try{_t.registerExternalDiagrams&&await _t.registerExternalDiagrams(t)}catch(e){console.error(e)}},Kb=async(t,e,i)=>{_t.initialize(i);const{svg:r}=await _t.render(t,e);return r},Zb=["innerHTML"],Jb={__name:"Mermaid",props:{graph:{type:String,required:!0},id:{type:String,required:!0},class:{type:String,required:!1,default:"mermaid"}},setup(t){const e=vo({securityLevel:"loose",startOnLoad:!1,externalDiagrams:[]}),{page:i}=Ds(),{frontmatter:r}=mh(i.value),n=r.mermaidTheme||"",o=t,s=vo(null);let a=null;Ns(async()=>{var f;await Xb(e.value.externalDiagrams);let h=await X(()=>import("./chunks/virtual_mermaid-config.DDnGl6nM.js"),__vite__mapDeps([]));h!=null&&h.default&&(e.value=h.default),a=new MutationObserver(async()=>await l()),a.observe(document.documentElement,{attributes:!0}),await l(),((f=//.exec(decodeURIComponent(o.graph)))==null?void 0:f.length)>0&&setTimeout(()=>{let c=document.getElementsByTagName("img"),d=Array.from(c);d.length&&Promise.all(d.filter(m=>!m.complete).map(m=>new Promise(T=>{m.onload=m.onerror=T}))).then(async()=>{await l()})},100)}),_h(()=>a.disconnect());const l=async()=>{const h=document.documentElement.classList.contains("dark");let u={...e.value};n&&(u.theme=n),h&&(u.theme="dark");let f=await Kb(o.id,decodeURIComponent(o.graph),u);const c=Math.random().toString(36).substring(7);s.value=`${f} ${c}`};return(h,u)=>(yh(),Ch("div",{innerHTML:s.value,class:xh(o.class)},null,10,Zb))}};function sh(t){if(t.extends){const e=sh(t.extends);return{...e,...t,async enhanceApp(i){e.enhanceApp&&await e.enhanceApp(i),t.enhanceApp&&await t.enhanceApp(i)}}}return t}const Oe=sh(Nh),Qb=Eh({name:"VitePressApp",setup(){const{site:t,lang:e,dir:i}=Ds();return Ns(()=>{Oh(()=>{document.documentElement.lang=e.value,document.documentElement.dir=i.value})}),t.value.router.prefetchLinks&&Mh(),Ih(),$h(),Oe.setup&&Oe.setup(),()=>Dh(Oe.Layout)}});async function t1(){const t=i1(),e=e1();e.provide(Th,t);const i=vh(t.route);return e.provide(kh,i),e.component("Mermaid",Jb),e.component("Content",Sh),e.component("ClientOnly",wh),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}}),Oe.enhanceApp&&await Oe.enhanceApp({app:e,router:t,siteData:Bh}),{app:e,router:t,data:i}}function e1(){return Ah(Qb)}function i1(){let t=Qr,e;return Lh(i=>{let r=Fh(i),n=null;return r&&(t&&(e=r),(t||e===r)&&(r=r.replace(/\.js$/,".lean.js")),n=X(()=>import(r),__vite__mapDeps([]))),Qr&&(t=!1),n},Oe.NotFound)}Qr&&t1().then(({app:t,router:e,data:i})=>{e.go().then(()=>{bh(e.route,i.site),t.mount("#app")})});export{Nn as $,Ti as A,ze as B,ir as C,Tr as D,fm as E,Jm as F,bi as G,er as H,sm as I,Wa as J,$a as K,sg as L,ag as M,o0 as N,hs as O,tm as P,Ce as Q,lg as R,Qi as S,Dn as T,og as U,fg as V,We as W,om as X,se as Y,yr as Z,ns as _,Ry as a,Z0 as a$,Na as a0,za as a1,ja as a2,rg as a3,_n as a4,Lm as a5,yg as a6,bm as a7,In as a8,Gr as a9,o1 as aA,Wh as aB,Sn as aC,ie as aD,ci as aE,Io as aF,qu as aG,Gy as aH,d1 as aI,M0 as aJ,hl as aK,jn as aL,Ln as aM,l1 as aN,u1 as aO,zo as aP,qo as aQ,f1 as aR,c1 as aS,s1 as aT,a1 as aU,g1 as aV,p1 as aW,h1 as aX,B0 as aY,$t as aZ,N0 as a_,Ct as aa,Js as ab,Kh as ac,Ag as ad,ri as ae,Am as af,xm as ag,Nt as ah,Fm as ai,$n as aj,Om as ak,I as al,It as am,h_ as an,ad as ao,Rh as ap,b1 as aq,m1 as ar,Uy as as,Q0 as at,kn as au,Qs as av,gt as aw,Ci as ax,Mu as ay,ia as az,Ny as b,Ph as b0,qh as b1,zy as b2,xi as b3,L as b4,O as b5,Xn as c,t1 as createApp,mi as d,at as e,nr as f,Dy as g,Tt as h,Ol as i,zn as j,n_ as k,E as l,Ps as m,Sr as n,nd as o,K0 as p,Qa as q,H0 as r,$y as s,Fy as t,T1 as u,Py as v,i_ as w,qy as x,si as y,Iy as z}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/chunks/c4Diagram-b947cdbb.DdN9w73L.js","assets/chunks/svgDrawCommon-0ee1b4e9.CCRf0t7P.js","assets/chunks/framework.aTtkxbT6.js","assets/chunks/theme.DI3JhXoF.js","assets/chunks/flowDiagram-d949d7c1.De0ce681.js","assets/chunks/flowDb-d35e309a.DEeGIpsL.js","assets/chunks/graph.CEI0PYYp.js","assets/chunks/layout.B9Jo_8FM.js","assets/chunks/styles-7383a064.BrpX0uYj.js","assets/chunks/index-8fae9850.AUF3rEmQ.js","assets/chunks/clone.D_kVq7Za.js","assets/chunks/edges-d417c7a0.DU1W7dRA.js","assets/chunks/createText-423428c9.B39V2kZ0.js","assets/chunks/line._MqlDceE.js","assets/chunks/array.BKyUJesY.js","assets/chunks/path.CbwjOpE9.js","assets/chunks/channel.CoK99RiJ.js","assets/chunks/flowDiagram-v2-49332944.BWsty62j.js","assets/chunks/erDiagram-0ea73325.D6LayG_5.js","assets/chunks/gitGraphDiagram-b9d81de9.CNuHYvfB.js","assets/chunks/ganttDiagram-5c869e3b.CffrYaRJ.js","assets/chunks/linear.xw6n-5RF.js","assets/chunks/init.Gi6I4Gst.js","assets/chunks/infoDiagram-db7b18fc.B2RlRoHy.js","assets/chunks/pieDiagram-b0208e96.D2Hyosy_.js","assets/chunks/arc.DUOD18ct.js","assets/chunks/ordinal.BYWQX77i.js","assets/chunks/quadrantDiagram-0332be45.9barGxeJ.js","assets/chunks/xychartDiagram-e50adddc._djyjX0F.js","assets/chunks/requirementDiagram-bf7890df.CnT6SW1y.js","assets/chunks/sequenceDiagram-c18d009d.2v1gGLQH.js","assets/chunks/classDiagram-35230388.CNtWKbXw.js","assets/chunks/styles-6860f46c._P3OlwMg.js","assets/chunks/classDiagram-v2-412acd34.Eg7J1noV.js","assets/chunks/stateDiagram-43596fc0.Cq6QMfgF.js","assets/chunks/styles-b2c874b6._v-FNFOv.js","assets/chunks/stateDiagram-v2-2ead4f9c.BWcTopCt.js","assets/chunks/journeyDiagram-d5636530.DgDqXNxd.js","assets/chunks/flowchart-elk-definition-27cc417a.7uNOilH3.js","assets/chunks/timeline-definition-d977decf.BWb3XqIn.js","assets/chunks/mindmap-definition-377f8f1f.B9TexoUI.js","assets/chunks/sankeyDiagram-0acdec17.B1_fpWdp.js","assets/chunks/Tableau10.B-NsZVaP.js","assets/chunks/blockDiagram-6b2b5046.BAxiudRd.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/docs/assets/baby.v9q6ln7t.jpg b/docs/assets/baby.v9q6ln7t.jpg new file mode 100644 index 0000000..dfb19ad Binary files /dev/null and b/docs/assets/baby.v9q6ln7t.jpg differ diff --git a/docs/assets/chrome-memory.CaqQ1C8W.png b/docs/assets/chrome-memory.CaqQ1C8W.png new file mode 100644 index 0000000..98ce3cd Binary files /dev/null and b/docs/assets/chrome-memory.CaqQ1C8W.png differ diff --git a/docs/assets/chunks/Tableau10.B-NsZVaP.js b/docs/assets/chunks/Tableau10.B-NsZVaP.js new file mode 100644 index 0000000..4223ec3 --- /dev/null +++ b/docs/assets/chunks/Tableau10.B-NsZVaP.js @@ -0,0 +1 @@ +function o(e){for(var c=e.length/6|0,n=new Array(c),a=0;au*u+W*W&&(M=w,N=d),{cx:M,cy:N,x01:-n,y01:-m,x11:M*(v/T-1),y11:N*(v/T-1)}}function vn(){var l=cn,h=yn,q=Q(0),O=null,v=gn,R=mn,U=pn,a=null,D=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=R.apply(this,arguments)-rn,V=un(c-f),o=c>f;if(a||(a=n=D()),sy))a.moveTo(0,0);else if(V>on-y)a.moveTo(s*X(f),s*I(f)),a.arc(0,0,s,f,c,!o),r>y&&(a.moveTo(r*X(c),r*I(c)),a.arc(0,0,r,c,f,o));else{var p=f,g=c,A=f,T=c,P=V,E=V,M=U.apply(this,arguments)/2,N=M>y&&(O?+O.apply(this,arguments):B(r*r+s*s)),w=_(un(s-r)/2,+q.apply(this,arguments)),d=w,x=w,e,u;if(N>y){var W=sn(N/r*I(M)),C=sn(N/s*I(M));(P-=W*2)>y?(W*=o?1:-1,A+=W,T-=W):(P=0,A=T=(f+c)/2),(E-=C*2)>y?(C*=o?1:-1,p+=C,g-=C):(E=0,p=g=(f+c)/2)}var j=s*X(p),z=s*I(p),F=r*X(T),G=r*I(T);if(w>y){var H=s*X(g),J=s*I(g),L=r*X(A),Y=r*I(A),S;if(Vy?x>y?(e=K(L,Y,j,z,s,x,o),u=K(H,J,F,G,s,x,o),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(F,G):d>y?(e=K(F,G,H,J,r,-d,o),u=K(j,z,L,Y,r,-d,o),a.lineTo(e.cx+e.x01,e.cy+e.y01),d"u"&&(w.yylloc={});var J=w.yylloc;t.push(J);var Le=w.options&&w.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var P;return P=u.pop()||w.lex()||C,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}for(var I,M,z,Q,W={},X,B,ae,G;;){if(M=i[i.length-1],this.defaultActions[M]?z=this.defaultActions[M]:((I===null||typeof I>"u")&&(I=me()),z=m[M]&&m[M][I]),typeof z>"u"||!z.length||!z[0]){var $="";G=[];for(X in m[M])this.terminals_[X]&&X>F&&G.push("'"+this.terminals_[X]+"'");w.showPosition?$="Parse error on line "+(R+1)+`: +`+w.showPosition()+` +Expecting `+G.join(", ")+", got '"+(this.terminals_[I]||I)+"'":$="Parse error on line "+(R+1)+": Unexpected "+(I==C?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError($,{text:w.match,token:this.terminals_[I]||I,line:w.yylineno,loc:J,expected:G})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+I);switch(z[0]){case 1:i.push(I),h.push(w.yytext),t.push(w.yylloc),i.push(z[1]),I=null,Y=w.yyleng,r=w.yytext,R=w.yylineno,J=w.yylloc;break;case 2:if(B=this.productions_[z[1]][1],W.$=h[h.length-B],W._$={first_line:t[t.length-(B||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(B||1)].first_column,last_column:t[t.length-1].last_column},Le&&(W._$.range=[t[t.length-(B||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(W,[r,Y,R,K.yy,z[1],h,t].concat(Se)),typeof Q<"u")return Q;B&&(i=i.slice(0,-1*B*2),h=h.slice(0,-1*B),t=t.slice(0,-1*B)),i.push(this.productions_[z[1]][0]),h.push(W.$),t.push(W._$),ae=m[i[i.length-2]][i[i.length-1]],i.push(ae);break;case 3:return!0}}return!0}},A=function(){var D={EOF:1,parseError:function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},setInput:function(l,s){return this.yy=s||this.yy||{},this._input=l,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var s=l.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},unput:function(l){var s=l.length,i=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var h=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[h[0],h[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(l){this.unput(this.match.slice(l))},pastInput:function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var l=this.pastInput(),s=new Array(l.length+1).join("-");return l+this.upcomingInput()+` +`+s+"^"},test_match:function(l,s){var i,u,h;if(this.options.backtrack_lexer&&(h={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(h.yylloc.range=this.yylloc.range.slice(0))),u=l[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+l[0].length},this.yytext+=l[0],this.match+=l[0],this.matches=l,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(l[0].length),this.matched+=l[0],i=this.performAction.call(this,this.yy,this,s,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var t in h)this[t]=h[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var l,s,i,u;this._more||(this.yytext="",this.match="");for(var h=this._currentRules(),t=0;ts[0].length)){if(s=i,u=t,this.options.backtrack_lexer){if(l=this.test_match(i,h[t]),l!==!1)return l;if(this._backtrack){s=!1;continue}else return!1}else if(!this.options.flex)break}return s?(l=this.test_match(s,h[u]),l!==!1?l:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var s=this.next();return s||this.lex()},begin:function(s){this.conditionStack.push(s)},popState:function(){var s=this.conditionStack.length-1;return s>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(s){return s=this.conditionStack.length-1-Math.abs(s||0),s>=0?this.conditionStack[s]:"INITIAL"},pushState:function(s){this.begin(s)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(s,i,u,h){switch(u){case 0:return 10;case 1:return s.getLogger().debug("Found space-block"),31;case 2:return s.getLogger().debug("Found nl-block"),31;case 3:return s.getLogger().debug("Found space-block"),29;case 4:s.getLogger().debug(".",i.yytext);break;case 5:s.getLogger().debug("_",i.yytext);break;case 6:return 5;case 7:return i.yytext=-1,28;case 8:return i.yytext=i.yytext.replace(/columns\s+/,""),s.getLogger().debug("COLUMNS (LEX)",i.yytext),28;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:s.getLogger().debug("LEX: POPPING STR:",i.yytext),this.popState();break;case 14:return s.getLogger().debug("LEX: STR end:",i.yytext),"STR";case 15:return i.yytext=i.yytext.replace(/space\:/,""),s.getLogger().debug("SPACE NUM (LEX)",i.yytext),21;case 16:return i.yytext="1",s.getLogger().debug("COLUMNS (LEX)",i.yytext),21;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 22:return this.popState(),this.pushState("CLASSDEFID"),41;case 23:return this.popState(),42;case 24:return this.pushState("CLASS"),44;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;case 26:return this.popState(),46;case 27:return this.pushState("STYLE_STMNT"),47;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;case 29:return this.popState(),49;case 30:return this.pushState("acc_title"),"acc_title";case 31:return this.popState(),"acc_title_value";case 32:return this.pushState("acc_descr"),"acc_descr";case 33:return this.popState(),"acc_descr_value";case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 40:return this.popState(),s.getLogger().debug("Lex: ))"),"NODE_DEND";case 41:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 42:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 43:return this.popState(),s.getLogger().debug("Lex: (-"),"NODE_DEND";case 44:return this.popState(),s.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),s.getLogger().debug("Lex: (("),"NODE_DEND";case 46:return this.popState(),s.getLogger().debug("Lex: ]]"),"NODE_DEND";case 47:return this.popState(),s.getLogger().debug("Lex: ("),"NODE_DEND";case 48:return this.popState(),s.getLogger().debug("Lex: ])"),"NODE_DEND";case 49:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),s.getLogger().debug("Lex: /]"),"NODE_DEND";case 51:return this.popState(),s.getLogger().debug("Lex: )]"),"NODE_DEND";case 52:return this.popState(),s.getLogger().debug("Lex: )"),"NODE_DEND";case 53:return this.popState(),s.getLogger().debug("Lex: ]>"),"NODE_DEND";case 54:return this.popState(),s.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return s.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return s.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return s.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return s.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 61:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 62:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return s.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return s.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return s.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:return this.pushState("NODE"),36;case 67:return this.pushState("NODE"),36;case 68:return this.pushState("NODE"),36;case 69:return this.pushState("NODE"),36;case 70:return this.pushState("NODE"),36;case 71:return this.pushState("NODE"),36;case 72:return this.pushState("NODE"),36;case 73:return s.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),s.getLogger().debug("LEX ARR START"),38;case 75:return s.getLogger().debug("Lex: NODE_ID",i.yytext),32;case 76:return s.getLogger().debug("Lex: EOF",i.yytext),8;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:s.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:s.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return s.getLogger().debug("LEX: NODE_DESCR:",i.yytext),"NODE_DESCR";case 84:s.getLogger().debug("LEX POPPING"),this.popState();break;case 85:s.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (right): dir:",i.yytext),"DIR";case 87:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (left):",i.yytext),"DIR";case 88:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (x):",i.yytext),"DIR";case 89:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (y):",i.yytext),"DIR";case 90:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (up):",i.yytext),"DIR";case 91:return i.yytext=i.yytext.replace(/^,\s*/,""),s.getLogger().debug("Lex (down):",i.yytext),"DIR";case 92:return i.yytext="]>",s.getLogger().debug("Lex (ARROW_DIR end):",i.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 94:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 95:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 96:return s.getLogger().debug("Lex: LINK",i.yytext),15;case 97:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 98:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 99:return s.getLogger().debug("Lex: START_LINK",i.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return s.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),s.getLogger().debug("Lex: LINK","#"+i.yytext+"#"),15;case 103:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 104:return this.popState(),s.getLogger().debug("Lex: LINK",i.yytext),15;case 105:return s.getLogger().debug("Lex: COLON",i.yytext),i.yytext=i.yytext.slice(1),27}},rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return D}();L.lexer=A;function k(){this.yy={}}return k.prototype=L,L.Parser=k,new k}();ee.parser=ee;const Be=ee;let O={},ie=[],V={};const ce="color",ue="fill",Pe="bgFill",ge=",";let j={};const Fe=function(e,a=""){j[e]===void 0&&(j[e]={id:e,styles:[],textStyles:[]});const d=j[e];a!=null&&a.split(ge).forEach(c=>{const n=c.replace(/([^;]*);/,"$1").trim();if(c.match(ce)){const o=n.replace(ue,Pe).replace(ce,ue);d.textStyles.push(o)}d.styles.push(n)})},Ke=function(e,a=""){const d=O[e];a!=null&&(d.styles=a.split(ge))},Me=function(e,a){e.split(",").forEach(function(d){let c=O[d];if(c===void 0){const n=d.trim();O[n]={id:n,type:"na",children:[]},c=O[n]}c.classes||(c.classes=[]),c.classes.push(a)})},pe=(e,a)=>{const d=e.flat(),c=[];for(const n of d){if(n.type==="classDef"){Fe(n.id,n.css);continue}if(n.type==="applyClass"){Me(n.id,(n==null?void 0:n.styleClass)||"");continue}if(n.type==="applyStyles"){n!=null&&n.stylesStr&&Ke(n.id,n==null?void 0:n.stylesStr);continue}if(n.type==="column-setting")a.columns=n.columns||-1;else if(n.type==="edge")V[n.id]?V[n.id]++:V[n.id]=1,n.id=V[n.id]+"-"+n.id,ie.push(n);else{n.label||(n.type==="composite"?n.label="":n.label=n.id);const g=!O[n.id];if(g?O[n.id]=n:(n.type!=="na"&&(O[n.id].type=n.type),n.label!==n.id&&(O[n.id].label=n.label)),n.children&&pe(n.children,n),n.type==="space"){const o=n.width||1;for(let f=0;f{S.debug("Clear called"),Ee(),U={id:"root",type:"composite",children:[],columns:-1},O={root:U},re=[],j={},ie=[],V={}};function We(e){switch(S.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return S.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Ve(e){switch(S.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}function je(e){switch(e.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}let de=0;const Ue=()=>(de++,"id-"+Math.random().toString(36).substr(2,12)+"-"+de),Xe=e=>{U.children=e,pe(e,U),re=U.children},Ge=e=>{const a=O[e];return a?a.columns?a.columns:a.children?a.children.length:-1:-1},He=()=>[...Object.values(O)],qe=()=>re||[],Ze=()=>ie,Je=e=>O[e],Qe=e=>{O[e.id]=e},$e=()=>console,et=function(){return j},tt={getConfig:()=>se().block,typeStr2Type:We,edgeTypeStr2Type:Ve,edgeStrToEdgeData:je,getLogger:$e,getBlocksFlat:He,getBlocks:qe,getEdges:Ze,setHierarchy:Xe,getBlock:Je,setBlock:Qe,getColumns:Ge,getClasses:et,clear:Ye,generateId:Ue},st=tt,q=(e,a)=>{const d=Ae,c=d(e,"r"),n=d(e,"g"),g=d(e,"b");return we(c,n,g,a)},it=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${q(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${q(e.mainBkg,.5)}; + fill: ${q(e.clusterBkg,.5)}; + stroke: ${q(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,rt=it;function fe(e,a,d=!1){var c,n,g;const o=e;let f="default";(((c=o==null?void 0:o.classes)==null?void 0:c.length)||0)>0&&(f=((o==null?void 0:o.classes)||[]).join(" ")),f=f+" flowchart-label";let b=0,p="",x;switch(o.type){case"round":b=5,p="rect";break;case"composite":b=0,p="composite",x=0;break;case"square":p="rect";break;case"diamond":p="question";break;case"hexagon":p="hexagon";break;case"block_arrow":p="block_arrow";break;case"odd":p="rect_left_inv_arrow";break;case"lean_right":p="lean_right";break;case"lean_left":p="lean_left";break;case"trapezoid":p="trapezoid";break;case"inv_trapezoid":p="inv_trapezoid";break;case"rect_left_inv_arrow":p="rect_left_inv_arrow";break;case"circle":p="circle";break;case"ellipse":p="ellipse";break;case"stadium":p="stadium";break;case"subroutine":p="subroutine";break;case"cylinder":p="cylinder";break;case"group":p="rect";break;case"doublecircle":p="doublecircle";break;default:p="rect"}const y=De((o==null?void 0:o.styles)||[]),T=o.label,v=o.size||{width:0,height:0,x:0,y:0};return{labelStyle:y.labelStyle,shape:p,labelText:T,rx:b,ry:b,class:f,style:y.style,id:o.id,directions:o.directions,width:v.width,height:v.height,x:v.x,y:v.y,positioned:d,intersect:void 0,type:o.type,padding:x??(((g=(n=se())==null?void 0:n.block)==null?void 0:g.padding)||0)}}async function nt(e,a,d){const c=fe(a,d,!1);if(c.type==="group")return;const n=await he(e,c),g=n.node().getBBox(),o=d.getBlock(c.id);o.size={width:g.width,height:g.height,x:0,y:0,node:n},d.setBlock(o),n.remove()}async function at(e,a,d){const c=fe(a,d,!0);d.getBlock(c.id).type!=="space"&&(await he(e,c),a.intersect=c==null?void 0:c.intersect,Te(c))}async function ne(e,a,d,c){for(const n of a)await c(e,n,d),n.children&&await ne(e,n.children,d,c)}async function ot(e,a,d){await ne(e,a,d,nt)}async function lt(e,a,d){await ne(e,a,d,at)}async function ct(e,a,d,c,n){const g=new ze({multigraph:!0,compound:!0});g.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const o of d)o.size&&g.setNode(o.id,{width:o.size.width,height:o.size.height,intersect:o.intersect});for(const o of a)if(o.start&&o.end){const f=c.getBlock(o.start),b=c.getBlock(o.end);if(f!=null&&f.size&&(b!=null&&b.size)){const p=f.size,x=b.size,y=[{x:p.x,y:p.y},{x:p.x+(x.x-p.x)/2,y:p.y+(x.y-p.y)/2},{x:x.x,y:x.y}];await ke(e,{v:o.start,w:o.end,name:o.id},{...o,arrowTypeEnd:o.arrowTypeEnd,arrowTypeStart:o.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",g,n),o.label&&(await Ie(e,{...o,label:o.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:o.arrowTypeEnd,arrowTypeStart:o.arrowTypeStart,points:y,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),await Oe({...o,x:y[1].x,y:y[1].y},{originalPath:y}))}}}const _=((le=(oe=_e())==null?void 0:oe.block)==null?void 0:le.padding)||8;function ut(e,a){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(a<0||!Number.isInteger(a))throw new Error("Position must be a non-negative integer."+a);if(e<0)return{px:a,py:0};if(e===1)return{px:0,py:a};const d=a%e,c=Math.floor(a/e);return{px:d,py:c}}const dt=e=>{let a=0,d=0;for(const c of e.children){const{width:n,height:g,x:o,y:f}=c.size||{width:0,height:0,x:0,y:0};S.debug("getMaxChildSize abc95 child:",c.id,"width:",n,"height:",g,"x:",o,"y:",f,c.type),c.type!=="space"&&(n>a&&(a=n/(e.widthInColumns||1)),g>d&&(d=g))}return{width:a,height:d}};function te(e,a,d=0,c=0){var n,g,o,f,b,p,x,y,T,v,N;S.debug("setBlockSizes abc95 (start)",e.id,(n=e==null?void 0:e.size)==null?void 0:n.x,"block width =",e==null?void 0:e.size,"sieblingWidth",d),(g=e==null?void 0:e.size)!=null&&g.width||(e.size={width:d,height:c,x:0,y:0});let E=0,L=0;if(((o=e.children)==null?void 0:o.length)>0){for(const h of e.children)te(h,a);const A=dt(e);E=A.width,L=A.height,S.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",E,L);for(const h of e.children)h.size&&(S.debug(`abc95 Setting size of children of ${e.id} id=${h.id} ${E} ${L} ${h.size}`),h.size.width=E*(h.widthInColumns||1)+_*((h.widthInColumns||1)-1),h.size.height=L,h.size.x=0,h.size.y=0,S.debug(`abc95 updating size of ${e.id} children child:${h.id} maxWidth:${E} maxHeight:${L}`));for(const h of e.children)te(h,a,E,L);const k=e.columns||-1;let D=0;for(const h of e.children)D+=h.widthInColumns||1;let l=e.children.length;k>0&&k0?Math.min(e.children.length,k):e.children.length;if(h>0){const t=(i-h*_-_)/h;S.debug("abc95 (growing to fit) width",e.id,i,(x=e.size)==null?void 0:x.width,t);for(const m of e.children)m.size&&(m.size.width=t)}}e.size={width:i,height:u,x:0,y:0}}S.debug("setBlockSizes abc94 (done)",e.id,(y=e==null?void 0:e.size)==null?void 0:y.x,(T=e==null?void 0:e.size)==null?void 0:T.width,(v=e==null?void 0:e.size)==null?void 0:v.y,(N=e==null?void 0:e.size)==null?void 0:N.height)}function be(e,a){var d,c,n,g,o,f,b,p,x,y,T,v,N,E,L,A,k;S.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${(d=e==null?void 0:e.size)==null?void 0:d.x} y: ${(c=e==null?void 0:e.size)==null?void 0:c.y} width: ${(n=e==null?void 0:e.size)==null?void 0:n.width}`);const D=e.columns||-1;if(S.debug("layoutBlocks columns abc95",e.id,"=>",D,e),e.children&&e.children.length>0){const l=((o=(g=e==null?void 0:e.children[0])==null?void 0:g.size)==null?void 0:o.width)||0,s=e.children.length*l+(e.children.length-1)*_;S.debug("widthOfChildren 88",s,"posX");let i=0;S.debug("abc91 block?.size?.x",e.id,(f=e==null?void 0:e.size)==null?void 0:f.x);let u=(b=e==null?void 0:e.size)!=null&&b.x?((p=e==null?void 0:e.size)==null?void 0:p.x)+(-((x=e==null?void 0:e.size)==null?void 0:x.width)/2||0):-_,h=0;for(const t of e.children){const m=e;if(!t.size)continue;const{width:r,height:R}=t.size,{px:Y,py:F}=ut(D,i);if(F!=h&&(h=F,u=(y=e==null?void 0:e.size)!=null&&y.x?((T=e==null?void 0:e.size)==null?void 0:T.x)+(-((v=e==null?void 0:e.size)==null?void 0:v.width)/2||0):-_,S.debug("New row in layout for block",e.id," and child ",t.id,h)),S.debug(`abc89 layout blocks (child) id: ${t.id} Pos: ${i} (px, py) ${Y},${F} (${(N=m==null?void 0:m.size)==null?void 0:N.x},${(E=m==null?void 0:m.size)==null?void 0:E.y}) parent: ${m.id} width: ${r}${_}`),m.size){const C=r/2;t.size.x=u+_+C,S.debug(`abc91 layout blocks (calc) px, pyid:${t.id} startingPos=X${u} new startingPosX${t.size.x} ${C} padding=${_} width=${r} halfWidth=${C} => x:${t.size.x} y:${t.size.y} ${t.widthInColumns} (width * (child?.w || 1)) / 2 ${r*((t==null?void 0:t.widthInColumns)||1)/2}`),u=t.size.x+C,t.size.y=m.size.y-m.size.height/2+F*(R+_)+R/2+_,S.debug(`abc88 layout blocks (calc) px, pyid:${t.id}startingPosX${u}${_}${C}=>x:${t.size.x}y:${t.size.y}${t.widthInColumns}(width * (child?.w || 1)) / 2${r*((t==null?void 0:t.widthInColumns)||1)/2}`)}t.children&&be(t),i+=(t==null?void 0:t.widthInColumns)||1,S.debug("abc88 columnsPos",t,i)}}S.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${(L=e==null?void 0:e.size)==null?void 0:L.x} y: ${(A=e==null?void 0:e.size)==null?void 0:A.y} width: ${(k=e==null?void 0:e.size)==null?void 0:k.width}`)}function xe(e,{minX:a,minY:d,maxX:c,maxY:n}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:g,y:o,width:f,height:b}=e.size;g-f/2c&&(c=g+f/2),o+b/2>n&&(n=o+b/2)}if(e.children)for(const g of e.children)({minX:a,minY:d,maxX:c,maxY:n}=xe(g,{minX:a,minY:d,maxX:c,maxY:n}));return{minX:a,minY:d,maxX:c,maxY:n}}function ht(e){const a=e.getBlock("root");if(!a)return;te(a,e,0,0),be(a),S.debug("getBlocks",JSON.stringify(a,null,2));const{minX:d,minY:c,maxX:n,maxY:g}=xe(a),o=g-c,f=n-d;return{x:d,y:c,width:f,height:o}}const gt=function(e,a){return a.db.getClasses()},pt=async function(e,a,d,c){const{securityLevel:n,block:g}=se(),o=c.db;let f;n==="sandbox"&&(f=H("#i"+a));const b=n==="sandbox"?H(f.nodes()[0].contentDocument.body):H("body"),p=n==="sandbox"?b.select(`[id="${a}"]`):H(`[id="${a}"]`);Ne(p,["point","circle","cross"],c.type,a);const y=o.getBlocks(),T=o.getBlocksFlat(),v=o.getEdges(),N=p.insert("g").attr("class","block");await ot(N,y,o);const E=ht(o);if(await lt(N,y,o),await ct(N,v,T,o,a),E){const L=E,A=Math.max(1,Math.round(.125*(L.width/L.height))),k=L.height+A+10,D=L.width+10,{useMaxWidth:l}=g;ye(p,k,D,!!l),S.debug("Here Bounds",E,L),p.attr("viewBox",`${L.x-5} ${L.y-5} ${L.width+10} ${L.height+10}`)}Ce(Re)},ft={draw:pt,getClasses:gt},Ot={parser:Be,db:st,renderer:ft,styles:rt};export{Ot as diagram}; diff --git a/docs/assets/chunks/c4Diagram-b947cdbb.DdN9w73L.js b/docs/assets/chunks/c4Diagram-b947cdbb.DdN9w73L.js new file mode 100644 index 0000000..1f0a0f5 --- /dev/null +++ b/docs/assets/chunks/c4Diagram-b947cdbb.DdN9w73L.js @@ -0,0 +1,10 @@ +import{s as Ce,g as we,a as Oe,b as Te,c as Dt,d as ue,e as Re,f as wt,h as Nt,l as le,i as De,w as Se,j as Kt,k as oe,m as Pe}from"../app.Dv4846sG.js";import{d as Me,g as Le}from"./svgDrawCommon-0ee1b4e9.CCRf0t7P.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";var Yt=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],L=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],At=[14,42],Vt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ot=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],ne=[12,14,33,42],Pt=[12,14,33,42,76,77,79,80],mt=[12,33],zt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Tt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(At,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(At,[2,14]),e(Vt,[2,16],{12:[1,76]}),e(At,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(At,[2,15]),e(Vt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(At,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ot,[2,21]),e(Ot,[2,22]),e(w,[2,39]),e(ne,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Pt,[2,73]),{78:[1,133]},e(Pt,[2,75]),e(Pt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Vt,[2,18]),e(At,[2,38]),e(ne,[2,72]),e(Pt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(zt,[2,25]),e(zt,[2,26],{12:[1,138]}),e(zt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Tt=this.table,y="",Et=0,se=0,Ee=2,ae=1,ve=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var Qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qt)&&(vt.yy[Qt]=this.yy[Qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Ht=D.yylloc;u.push(Ht);var ke=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ae(){var X;return X=g.pop()||D.lex()||ae,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,N,qt,Ct={},Mt,z,re,Lt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ae()),N=Tt[kt]&&Tt[kt][M]),typeof N>"u"||!N.length||!N[0]){var Gt="";Lt=[];for(Mt in Tt[kt])this.terminals_[Mt]&&Mt>Ee&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Gt="Parse error on line "+(Et+1)+`: +`+D.showPosition()+` +Expecting `+Lt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Gt="Parse error on line "+(Et+1)+": Unexpected "+(M==ae?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(Gt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:Ht,expected:Lt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+M);switch(N[0]){case 1:m.push(M),T.push(D.yytext),u.push(D.yylloc),m.push(N[1]),M=null,se=D.yyleng,y=D.yytext,Et=D.yylineno,Ht=D.yylloc;break;case 2:if(z=this.productions_[N[1]][1],Ct.$=T[T.length-z],Ct._$={first_line:u[u.length-(z||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(z||1)].first_column,last_column:u[u.length-1].last_column},ke&&(Ct._$.range=[u[u.length-(z||1)].range[0],u[u.length-1].range[1]]),qt=this.performAction.apply(Ct,[y,se,Et,vt.yy,N[1],T,u].concat(ve)),typeof qt<"u")return qt;z&&(m=m.slice(0,-1*z*2),T=T.slice(0,-1*z),u=u.slice(0,-1*z)),m.push(this.productions_[N[1]][0]),T.push(Ct.$),u.push(Ct._$),re=Tt[m[m.length-2]][m[m.length-1]],m.push(re);break;case 3:return!0}}return!0}},me=function(){var bt={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` +`+x+"^"},test_match:function(_,x){var m,g,T;if(this.options.backtrack_lexer&&(T={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(T.yylloc.range=this.yylloc.range.slice(0))),g=_[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],m=this.performAction.call(this,this.yy,this,x,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),m)return m;if(this._backtrack){for(var u in T)this[u]=T[u];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,x,m,g;this._more||(this.yytext="",this.match="");for(var T=this._currentRules(),u=0;ux[0].length)){if(x=m,g=u,this.options.backtrack_lexer){if(_=this.test_match(m,T[u]),_!==!1)return _;if(this._backtrack){x=!1;continue}else return!1}else if(!this.options.flex)break}return x?(_=this.test_match(x,T[g]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var x=this.next();return x||this.lex()},begin:function(x){this.conditionStack.push(x)},popState:function(){var x=this.conditionStack.length-1;return x>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(x){return x=this.conditionStack.length-1-Math.abs(x||0),x>=0?this.conditionStack[x]:"INITIAL"},pushState:function(x){this.begin(x)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(x,m,g,T){switch(g){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),26;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;case 23:return this.begin("person"),44;case 24:return this.begin("system_ext_queue"),51;case 25:return this.begin("system_ext_db"),50;case 26:return this.begin("system_ext"),49;case 27:return this.begin("system_queue"),48;case 28:return this.begin("system_db"),47;case 29:return this.begin("system"),46;case 30:return this.begin("boundary"),37;case 31:return this.begin("enterprise_boundary"),34;case 32:return this.begin("system_boundary"),36;case 33:return this.begin("container_ext_queue"),57;case 34:return this.begin("container_ext_db"),56;case 35:return this.begin("container_ext"),55;case 36:return this.begin("container_queue"),54;case 37:return this.begin("container_db"),53;case 38:return this.begin("container"),52;case 39:return this.begin("container_boundary"),38;case 40:return this.begin("component_ext_queue"),63;case 41:return this.begin("component_ext_db"),62;case 42:return this.begin("component_ext"),61;case 43:return this.begin("component_queue"),60;case 44:return this.begin("component_db"),59;case 45:return this.begin("component"),58;case 46:return this.begin("node"),39;case 47:return this.begin("node"),39;case 48:return this.begin("node_l"),40;case 49:return this.begin("node_r"),41;case 50:return this.begin("rel"),64;case 51:return this.begin("birel"),65;case 52:return this.begin("rel_u"),66;case 53:return this.begin("rel_u"),66;case 54:return this.begin("rel_d"),67;case 55:return this.begin("rel_d"),67;case 56:return this.begin("rel_l"),68;case 57:return this.begin("rel_l"),68;case 58:return this.begin("rel_r"),69;case 59:return this.begin("rel_r"),69;case 60:return this.begin("rel_b"),70;case 61:return this.begin("rel_index"),71;case 62:return this.begin("update_el_style"),72;case 63:return this.begin("update_rel_style"),73;case 64:return this.begin("update_layout_config"),74;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return bt}();Xt.lexer=me;function Wt(){this.yy={}}return Wt.prototype=Xt,Xt.Parser=Wt,new Wt}();Yt.parser=Yt;const Ne=Yt;let U=[],_t=[""],P="global",j="",V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],St=[],te="",ee=!1,It=4,jt=2;var de;const Be=function(){return de},Ye=function(e){de=ue(e,Dt())},Ie=function(e,t,a,o,l,i,s,r,n){if(e==null||t===void 0||t===null||a===void 0||a===null||o===void 0||o===null)return;let h={};const f=St.find(d=>d.from===t&&d.to===a);if(f?h=f:St.push(h),h.type=e,h.from=t,h.to=a,h.label={text:o},l==null)h.techn={text:""};else if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]={text:p}}else h.techn={text:l};if(i==null)h.descr={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.descr={text:i};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof r=="object"){let[d,p]=Object.entries(r)[0];h[d]=p}else h.tags=r;if(typeof n=="object"){let[d,p]=Object.entries(n)[0];h[d]=p}else h.link=n;h.wrap=xt()},je=function(e,t,a,o,l,i,s){if(t===null||a===null)return;let r={};const n=U.find(h=>h.alias===t);if(n&&t===n.alias?r=n:(r.alias=t,U.push(r)),a==null?r.label={text:""}:r.label={text:a},o==null)r.descr={text:""};else if(typeof o=="object"){let[h,f]=Object.entries(o)[0];r[h]={text:f}}else r.descr={text:o};if(typeof l=="object"){let[h,f]=Object.entries(l)[0];r[h]=f}else r.sprite=l;if(typeof i=="object"){let[h,f]=Object.entries(i)[0];r[h]=f}else r.tags=i;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];r[h]=f}else r.link=s;r.typeC4Shape={text:e},r.parentBoundary=P,r.wrap=xt()},Ue=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},Fe=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=U.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,U.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.techn={text:""};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.techn={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof i=="object"){let[f,d]=Object.entries(i)[0];n[f]=d}else n.sprite=i;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.wrap=xt(),n.typeC4Shape={text:e},n.parentBoundary=P},Ve=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"system"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},ze=function(e,t,a,o,l){if(e===null||t===null)return;let i={};const s=V.find(r=>r.alias===e);if(s&&e===s.alias?i=s:(i.alias=e,V.push(i)),t==null?i.label={text:""}:i.label={text:t},a==null)i.type={text:"container"};else if(typeof a=="object"){let[r,n]=Object.entries(a)[0];i[r]={text:n}}else i.type={text:a};if(typeof o=="object"){let[r,n]=Object.entries(o)[0];i[r]=n}else i.tags=o;if(typeof l=="object"){let[r,n]=Object.entries(l)[0];i[r]=n}else i.link=l;i.parentBoundary=P,i.wrap=xt(),j=P,P=e,_t.push(j)},Xe=function(e,t,a,o,l,i,s,r){if(t===null||a===null)return;let n={};const h=V.find(f=>f.alias===t);if(h&&t===h.alias?n=h:(n.alias=t,V.push(n)),a==null?n.label={text:""}:n.label={text:a},o==null)n.type={text:"node"};else if(typeof o=="object"){let[f,d]=Object.entries(o)[0];n[f]={text:d}}else n.type={text:o};if(l==null)n.descr={text:""};else if(typeof l=="object"){let[f,d]=Object.entries(l)[0];n[f]={text:d}}else n.descr={text:l};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];n[f]=d}else n.tags=s;if(typeof r=="object"){let[f,d]=Object.entries(r)[0];n[f]=d}else n.link=r;n.nodeType=e,n.parentBoundary=P,n.wrap=xt(),j=P,P=t,_t.push(j)},We=function(){P=j,_t.pop(),j=_t.pop(),_t.push(j)},Qe=function(e,t,a,o,l,i,s,r,n,h,f){let d=U.find(p=>p.alias===t);if(!(d===void 0&&(d=V.find(p=>p.alias===t),d===void 0))){if(a!=null)if(typeof a=="object"){let[p,E]=Object.entries(a)[0];d[p]=E}else d.bgColor=a;if(o!=null)if(typeof o=="object"){let[p,E]=Object.entries(o)[0];d[p]=E}else d.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,E]=Object.entries(l)[0];d[p]=E}else d.borderColor=l;if(i!=null)if(typeof i=="object"){let[p,E]=Object.entries(i)[0];d[p]=E}else d.shadowing=i;if(s!=null)if(typeof s=="object"){let[p,E]=Object.entries(s)[0];d[p]=E}else d.shape=s;if(r!=null)if(typeof r=="object"){let[p,E]=Object.entries(r)[0];d[p]=E}else d.sprite=r;if(n!=null)if(typeof n=="object"){let[p,E]=Object.entries(n)[0];d[p]=E}else d.techn=n;if(h!=null)if(typeof h=="object"){let[p,E]=Object.entries(h)[0];d[p]=E}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,E]=Object.entries(f)[0];d[p]=E}else d.legendSprite=f}},He=function(e,t,a,o,l,i,s){const r=St.find(n=>n.from===t&&n.to===a);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[n,h]=Object.entries(o)[0];r[n]=h}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[n,h]=Object.entries(l)[0];r[n]=h}else r.lineColor=l;if(i!=null)if(typeof i=="object"){let[n,h]=Object.entries(i)[0];r[n]=parseInt(h)}else r.offsetX=parseInt(i);if(s!=null)if(typeof s=="object"){let[n,h]=Object.entries(s)[0];r[n]=parseInt(h)}else r.offsetY=parseInt(s)}},qe=function(e,t,a){let o=It,l=jt;if(typeof t=="object"){const i=Object.values(t)[0];o=parseInt(i)}else o=parseInt(t);if(typeof a=="object"){const i=Object.values(a)[0];l=parseInt(i)}else l=parseInt(a);o>=1&&(It=o),l>=1&&(jt=l)},Ge=function(){return It},Ke=function(){return jt},Je=function(){return P},Ze=function(){return j},fe=function(e){return e==null?U:U.filter(t=>t.parentBoundary===e)},$e=function(e){return U.find(t=>t.alias===e)},t0=function(e){return Object.keys(fe(e))},e0=function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},i0=function(){return St},n0=function(){return te},s0=function(e){ee=e},xt=function(){return ee},a0=function(){U=[],V=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],j="",P="global",_t=[""],St=[],_t=[""],te="",ee=!1,It=4,jt=2},r0={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},l0={FILLED:0,OPEN:1},o0={LEFTOF:0,RIGHTOF:1,OVER:2},c0=function(e){te=ue(e,Dt())},Jt={addPersonOrSystem:je,addPersonOrSystemBoundary:Ve,addContainer:Ue,addContainerBoundary:ze,addComponent:Fe,addDeploymentNode:Xe,popBoundaryParseStack:We,addRel:Ie,updateElStyle:Qe,updateRelStyle:He,updateLayoutConfig:qe,autoWrap:xt,setWrap:s0,getC4ShapeArray:fe,getC4Shape:$e,getC4ShapeKeys:t0,getBoundarys:e0,getCurrentBoundaryParse:Je,getParentBoundaryParse:Ze,getRels:i0,getTitle:n0,getC4Type:Be,getC4ShapeInRow:Ge,getC4BoundaryInRow:Ke,setAccTitle:Ce,getAccTitle:we,getAccDescription:Oe,setAccDescription:Te,getConfig:()=>Dt().c4,clear:a0,LINETYPE:r0,ARROWTYPE:l0,PLACEMENT:o0,setTitle:c0,setC4Type:Ye},ie=function(e,t){return Me(e,t)},pe=function(e,t,a,o,l,i){const s=e.append("image");s.attr("width",t),s.attr("height",a),s.attr("x",o),s.attr("y",l);let r=i.startsWith("data:image/png;base64")?i:Pe.sanitizeUrl(i);s.attr("xlink:href",r)},h0=(e,t,a)=>{const o=e.append("g");let l=0;for(let i of t){let s=i.textColor?i.textColor:"#444444",r=i.lineColor?i.lineColor:"#444444",n=i.offsetX?parseInt(i.offsetX):0,h=i.offsetY?parseInt(i.offsetY):0,f="";if(l===0){let p=o.append("line");p.attr("x1",i.startPoint.x),p.attr("y1",i.startPoint.y),p.attr("x2",i.endPoint.x),p.attr("y2",i.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",r),p.style("fill","none"),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",i.startPoint.x).replaceAll("starty",i.startPoint.y).replaceAll("controlx",i.startPoint.x+(i.endPoint.x-i.startPoint.x)/2-(i.endPoint.x-i.startPoint.x)/4).replaceAll("controly",i.startPoint.y+(i.endPoint.y-i.startPoint.y)/2).replaceAll("stopx",i.endPoint.x).replaceAll("stopy",i.endPoint.y)),i.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(i.type==="birel"||i.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=a.messageFont();W(a)(i.label.text,o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+h,i.label.width,i.label.height,{fill:s},d),i.techn&&i.techn.text!==""&&(d=a.messageFont(),W(a)("["+i.techn.text+"]",o,Math.min(i.startPoint.x,i.endPoint.x)+Math.abs(i.endPoint.x-i.startPoint.x)/2+n,Math.min(i.startPoint.y,i.endPoint.y)+Math.abs(i.endPoint.y-i.startPoint.y)/2+a.messageFontSize+5+h,Math.max(i.label.width,i.techn.width),i.techn.height,{fill:s,"font-style":"italic"},d))}},u0=function(e,t,a){const o=e.append("g");let l=t.bgColor?t.bgColor:"none",i=t.borderColor?t.borderColor:"#444444",s=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let n={x:t.x,y:t.y,fill:l,stroke:i,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};ie(o,n);let h=a.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,W(a)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},h),t.type&&t.type.text!==""&&(h=a.boundaryFont(),h.fontColor=s,W(a)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},h)),t.descr&&t.descr.text!==""&&(h=a.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,W(a)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},h))},d0=function(e,t,a){var o;let l=t.bgColor?t.bgColor:a[t.typeC4Shape.text+"_bg_color"],i=t.borderColor?t.borderColor:a[t.typeC4Shape.text+"_border_color"],s=t.fontColor?t.fontColor:"#FFFFFF",r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}const n=e.append("g");n.attr("class","person-man");const h=Le();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":h.x=t.x,h.y=t.y,h.fill=l,h.width=t.width,h.height=t.height,h.stroke=i,h.rx=2.5,h.ry=2.5,h.attrs={"stroke-width":.5},ie(n,h);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":n.append("path").attr("fill",l).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),n.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let f=E0(a,t.typeC4Shape.text);switch(n.append("text").attr("fill",s).attr("font-family",f.fontFamily).attr("font-size",f.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":pe(n,48,48,t.x+t.width/2-24,t.y+t.image.Y,r);break}let d=a[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=s,W(a)(t.label.text,n,t.x,t.y+t.label.Y,t.width,t.height,{fill:s},d),d=a[t.typeC4Shape.text+"Font"](),d.fontColor=s,t.techn&&((o=t.techn)==null?void 0:o.text)!==""?W(a)(t.techn.text,n,t.x,t.y+t.techn.Y,t.width,t.height,{fill:s,"font-style":"italic"},d):t.type&&t.type.text!==""&&W(a)(t.type.text,n,t.x,t.y+t.type.Y,t.width,t.height,{fill:s,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=a.personFont(),d.fontColor=s,W(a)(t.descr.text,n,t.x,t.y+t.descr.Y,t.width,t.height,{fill:s},d)),t.height},f0=function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},p0=function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},y0=function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},g0=function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},b0=function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},_0=function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},x0=function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},m0=function(e){const a=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);a.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),a.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},E0=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),W=function(){function e(l,i,s,r,n,h,f){const d=i.append("text").attr("x",s+n/2).attr("y",r+h/2+5).style("text-anchor","middle").text(l);o(d,f)}function t(l,i,s,r,n,h,f,d){const{fontSize:p,fontFamily:E,fontWeight:O}=d,R=l.split(Kt.lineBreakRegex);for(let S=0;S=this.data.widthLimit||o>=this.data.widthLimit||this.nextData.cnt>ye)&&(a=this.nextData.startx+t.margin+b.nextLinePaddingX,l=this.nextData.stopy+t.margin*2,this.nextData.stopx=o=a+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=l+t.height,this.nextData.cnt=1),t.x=a,t.y=l,this.updateVal(this.data,"startx",a,Math.min),this.updateVal(this.data,"starty",l,Math.min),this.updateVal(this.data,"stopx",o,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",a,Math.min),this.updateVal(this.nextData,"starty",l,Math.min),this.updateVal(this.nextData,"stopx",o,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},$t(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const $t=function(e){Re(b,e),e.fontFamily&&(b.personFontFamily=b.systemFontFamily=b.messageFontFamily=e.fontFamily),e.fontSize&&(b.personFontSize=b.systemFontSize=b.messageFontSize=e.fontSize),e.fontWeight&&(b.personFontWeight=b.systemFontWeight=b.messageFontWeight=e.fontWeight)},Rt=(e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),Bt=e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),v0=e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight});function I(e,t,a,o,l){if(!t[e].width)if(a)t[e].text=Se(t[e].text,l,o),t[e].textLines=t[e].text.split(Kt.lineBreakRegex).length,t[e].width=l,t[e].height=oe(t[e].text,o);else{let i=t[e].text.split(Kt.lineBreakRegex);t[e].textLines=i.length;let s=0;t[e].height=0,t[e].width=0;for(const r of i)t[e].width=Math.max(wt(r,o),t[e].width),s=oe(r,o),t[e].height=t[e].height+s}}const be=function(e,t,a){t.x=a.data.startx,t.y=a.data.starty,t.width=a.data.stopx-a.data.startx,t.height=a.data.stopy-a.data.starty,t.label.y=b.c4ShapeMargin-35;let o=t.wrap&&b.wrap,l=Bt(b);l.fontSize=l.fontSize+2,l.fontWeight="bold";let i=wt(t.label.text,l);I("label",t,o,l,i),F.drawBoundary(e,t,b)},_e=function(e,t,a,o){let l=0;for(const i of o){l=0;const s=a[i];let r=Rt(b,s.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,s.typeC4Shape.width=wt("«"+s.typeC4Shape.text+"»",r),s.typeC4Shape.height=r.fontSize+2,s.typeC4Shape.Y=b.c4ShapePadding,l=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=l,l=s.image.Y+s.image.height);let n=s.wrap&&b.wrap,h=b.width-b.c4ShapePadding*2,f=Rt(b,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",s,n,f,h),s.label.Y=l+8,l=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let E=Rt(b,s.typeC4Shape.text);I("type",s,n,E,h),s.type.Y=l+5,l=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let E=Rt(b,s.techn.text);I("techn",s,n,E,h),s.techn.Y=l+5,l=s.techn.Y+s.techn.height}let d=l,p=s.label.width;if(s.descr&&s.descr.text!==""){let E=Rt(b,s.typeC4Shape.text);I("descr",s,n,E,h),s.descr.Y=l+20,l=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=l-s.descr.textLines*5}p=p+b.c4ShapePadding,s.width=Math.max(s.width||b.width,p,b.width),s.height=Math.max(s.height||b.height,d,b.height),s.margin=s.margin||b.c4ShapeMargin,e.insert(s),F.drawC4Shape(t,s,b)}e.bumpLastMargin(b.c4ShapeMargin)};class B{constructor(t,a){this.x=t,this.y=a}}let ce=function(e,t){let a=e.x,o=e.y,l=t.x,i=t.y,s=a+e.width/2,r=o+e.height/2,n=Math.abs(a-l),h=Math.abs(o-i),f=h/n,d=e.height/e.width,p=null;return o==i&&al?p=new B(a,r):a==l&&oi&&(p=new B(s,o)),a>l&&o=f?p=new B(a,r+f*e.width/2):p=new B(s-n/h*e.height/2,o+e.height):a=f?p=new B(a+e.width,r+f*e.width/2):p=new B(s+n/h*e.height/2,o+e.height):ai?d>=f?p=new B(a+e.width,r-f*e.width/2):p=new B(s+e.height/2*n/h,o):a>l&&o>i&&(d>=f?p=new B(a,r-e.width/2*f):p=new B(s-e.height/2*n/h,o)),p},k0=function(e,t){let a={x:0,y:0};a.x=t.x+t.width/2,a.y=t.y+t.height/2;let o=ce(e,a);a.x=e.x+e.width/2,a.y=e.y+e.height/2;let l=ce(t,a);return{startPoint:o,endPoint:l}};const A0=function(e,t,a,o){let l=0;for(let i of t){l=l+1;let s=i.wrap&&b.wrap,r=v0(b);o.db.getC4Type()==="C4Dynamic"&&(i.label.text=l+": "+i.label.text);let h=wt(i.label.text,r);I("label",i,s,r,h),i.techn&&i.techn.text!==""&&(h=wt(i.techn.text,r),I("techn",i,s,r,h)),i.descr&&i.descr.text!==""&&(h=wt(i.descr.text,r),I("descr",i,s,r,h));let f=a(i.from),d=a(i.to),p=k0(f,d);i.startPoint=p.startPoint,i.endPoint=p.endPoint}F.drawRels(e,t,b)};function xe(e,t,a,o,l){let i=new ge(l);i.data.widthLimit=a.data.widthLimit/Math.min(Zt,o.length);for(let[s,r]of o.entries()){let n=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=n,n=r.image.Y+r.image.height);let h=r.wrap&&b.wrap,f=Bt(b);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",I("label",r,h,f,i.data.widthLimit),r.label.Y=n+8,n=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let O=Bt(b);I("type",r,h,O,i.data.widthLimit),r.type.Y=n+5,n=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let O=Bt(b);O.fontSize=O.fontSize-2,I("descr",r,h,O,i.data.widthLimit),r.descr.Y=n+20,n=r.descr.Y+r.descr.height}if(s==0||s%Zt===0){let O=a.data.startx+b.diagramMarginX,R=a.data.stopy+b.diagramMarginY+n;i.setData(O,O,R,R)}else{let O=i.data.stopx!==i.data.startx?i.data.stopx+b.diagramMarginX:i.data.startx,R=i.data.starty;i.setData(O,O,R,R)}i.name=r.alias;let d=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&_e(i,e,d,p),t=r.alias;let E=l.db.getBoundarys(t);E.length>0&&xe(e,t,i,E,l),r.alias!=="global"&&be(e,r,i),a.data.stopy=Math.max(i.data.stopy+b.c4ShapeMargin,a.data.stopy),a.data.stopx=Math.max(i.data.stopx+b.c4ShapeMargin,a.data.stopx),Ut=Math.max(Ut,a.data.stopx),Ft=Math.max(Ft,a.data.stopy)}}const C0=function(e,t,a,o){b=Dt().c4;const l=Dt().securityLevel;let i;l==="sandbox"&&(i=Nt("#i"+t));const s=l==="sandbox"?Nt(i.nodes()[0].contentDocument.body):Nt("body");let r=o.db;o.db.setWrap(b.wrap),ye=r.getC4ShapeInRow(),Zt=r.getC4BoundaryInRow(),le.debug(`C:${JSON.stringify(b,null,2)}`);const n=l==="sandbox"?s.select(`[id="${t}"]`):Nt(`[id="${t}"]`);F.insertComputerIcon(n),F.insertDatabaseIcon(n),F.insertClockIcon(n);let h=new ge(o);h.setData(b.diagramMarginX,b.diagramMarginX,b.diagramMarginY,b.diagramMarginY),h.data.widthLimit=screen.availWidth,Ut=b.diagramMarginX,Ft=b.diagramMarginY;const f=o.db.getTitle();let d=o.db.getBoundarys("");xe(n,"",h,d,o),F.insertArrowHead(n),F.insertArrowEnd(n),F.insertArrowCrossHead(n),F.insertArrowFilledHead(n),A0(n,o.db.getRels(),o.db.getC4Shape,o),h.data.stopx=Ut,h.data.stopy=Ft;const p=h.data;let O=p.stopy-p.starty+2*b.diagramMarginY;const S=p.stopx-p.startx+2*b.diagramMarginX;f&&n.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*b.diagramMarginX).attr("y",p.starty+b.diagramMarginY),De(n,O,S,b.useMaxWidth);const L=f?60:0;n.attr("viewBox",p.startx-b.diagramMarginX+" -"+(b.diagramMarginY+L)+" "+S+" "+(O+L)),le.debug("models:",p)},he={drawPersonOrSystemArray:_e,drawBoundary:be,setConf:$t,draw:C0},w0=e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,O0=w0,P0={parser:Ne,db:Jt,renderer:he,styles:O0,init:({c4:e,wrap:t})=>{he.setConf(e),Jt.setWrap(t)}};export{P0 as diagram}; diff --git a/docs/assets/chunks/channel.CoK99RiJ.js b/docs/assets/chunks/channel.CoK99RiJ.js new file mode 100644 index 0000000..594d185 --- /dev/null +++ b/docs/assets/chunks/channel.CoK99RiJ.js @@ -0,0 +1 @@ +import{al as o,am as n}from"../app.Dv4846sG.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c}; diff --git a/docs/assets/chunks/classDiagram-35230388.CNtWKbXw.js b/docs/assets/chunks/classDiagram-35230388.CNtWKbXw.js new file mode 100644 index 0000000..a439efc --- /dev/null +++ b/docs/assets/chunks/classDiagram-35230388.CNtWKbXw.js @@ -0,0 +1,2 @@ +import{p as A,d as S,s as G}from"./styles-6860f46c._P3OlwMg.js";import{c as v,l as y,h as B,i as W,ao as $,y as M,ar as I}from"../app.Dv4846sG.js";import{G as O}from"./graph.CEI0PYYp.js";import{l as P}from"./layout.B9Jo_8FM.js";import{l as X}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";let H=0;const Y=function(i,a,t,o,p){const g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(e=>!Number.isNaN(e.y));const s=a.points,c=X().x(function(e){return e.x}).y(function(e){return e.y}).curve($),n=i.append("path").attr("d",c(s)).attr("id","edge"+H).attr("class","relation");let r="";o.arrowMarkerAbsolute&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+r+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+r+"#"+g(t.relation.type2)+"End)");let f,h;const x=a.points.length;let b=M.calcLabelPosition(a.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=M.calcCardinalityPosition(t.relation.type1!=="none",a.points,a.points[0]),d=M.calcCardinalityPosition(t.relation.type2!=="none",a.points,a.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){const e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;const l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),H++},J=function(i,a,t,o){y.debug("Rendering class ",a,t);const p=a.id,g={id:p,label:a.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup");let c;a.link?c=s.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;a.annotations.forEach(function(d){const l=c.append("tspan").text("«"+d+"»");n||l.attr("dy",t.textHeight),n=!1});let r=C(a);const f=c.append("tspan").text(r).attr("class","title");n||f.attr("dy",t.textHeight);const h=c.node().getBBox().height;let x,b,u;if(a.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);const d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.members.forEach(function(l){_(d,l,n,t),n=!1}),b=d.node().getBBox()}if(a.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);const d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.methods.forEach(function(l){_(d,l,n,t),n=!1})}const m=s.node().getBBox();var w=" ";a.cssClasses.length>0&&(w=w+a.cssClasses.join(" "));const e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),a.tooltip&&c.insert("title").text(a.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},C=function(i){let a=i.id;return i.type&&(a+="<"+I(i.type)+">"),a},Z=function(i,a,t,o){y.debug("Rendering note ",a,t);const p=a.id,g={id:p,text:a.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup");let c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const n=JSON.parse(`"${a.text}"`).split(` +`);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});const r=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",r.width+2*t.padding).attr("height",r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},_=function(i,a,t,o){const{displayText:p,cssStyle:g}=a.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",a.cssStyle),t||s.attr("dy",o.textHeight)},N={getClassTitleString:C,drawClass:J,drawEdge:Y,drawNote:Z};let T={};const E=20,L=function(i){const a=Object.entries(T).find(t=>t[1].label===i);if(a)return a[0]},R=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},F=function(i,a,t,o){const p=v().class;T={},y.info("Rendering diagram "+i);const g=v().securityLevel;let s;g==="sandbox"&&(s=B("#i"+a));const c=g==="sandbox"?B(s.nodes()[0].contentDocument.body):B("body"),n=c.select(`[id='${a}']`);R(n);const r=new O({multigraph:!0});r.setGraph({isMultiGraph:!0}),r.setDefaultEdgeLabel(function(){return{}});const f=o.db.getClasses(),h=Object.keys(f);for(const e of h){const d=f[e],l=N.drawClass(n,d,p,o);T[l.id]=l,r.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),r.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);const d=N.drawNote(n,e,p,o);T[d.id]=d,r.setNode(d.id,d),e.class&&e.class in f&&r.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),P(r),r.nodes().forEach(function(e){e!==void 0&&r.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(r.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(r.node(e).x-r.node(e).width/2)+","+(r.node(e).y-r.node(e).height/2)+" )"))}),r.edges().forEach(function(e){e!==void 0&&r.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r.edge(e))),N.drawEdge(n,r.edge(e),r.edge(e).relation,p,o))});const u=n.node().getBBox(),m=u.width+E*2,w=u.height+E*2;W(n,w,m,p.useMaxWidth);const k=`${u.x-E} ${u.y-E} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},U={draw:F},at={parser:A,db:S,renderer:U,styles:G,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,S.clear()}};export{at as diagram}; diff --git a/docs/assets/chunks/classDiagram-v2-412acd34.Eg7J1noV.js b/docs/assets/chunks/classDiagram-v2-412acd34.Eg7J1noV.js new file mode 100644 index 0000000..24233f1 --- /dev/null +++ b/docs/assets/chunks/classDiagram-v2-412acd34.Eg7J1noV.js @@ -0,0 +1,2 @@ +import{p as M,d as _,s as R}from"./styles-6860f46c._P3OlwMg.js";import{l as d,c,h as w,y as B,t as G,p as D,r as E,o as C,j as A}from"../app.Dv4846sG.js";import{G as z}from"./graph.CEI0PYYp.js";import{r as P}from"./index-8fae9850.AUF3rEmQ.js";import"./layout.B9Jo_8FM.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./clone.D_kVq7Za.js";import"./edges-d417c7a0.DU1W7dRA.js";import"./createText-423428c9.B39V2kZ0.js";import"./line._MqlDceE.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";const S=s=>A.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const q=function(s,e,y,a){const t=Object.keys(s);d.info("keys:",t),d.info(s),t.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};e.setNode(l.id,p),$(l.classes,e,y,a,l.id),d.info("setNode",p)})},$=function(s,e,y,a,t){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==t).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),m=n.label??n.id,u=0,b={labelStyle:f.labelStyle,shape:"class_box",labelText:S(m),classData:n,rx:u,ry:u,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,t)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};e.setNode(n.id,b),t&&e.setParent(n.id,t),d.info("setNode",b)})},F=function(s,e,y,a){d.info(s),s.forEach(function(t,i){var o,r;const l=t,n="",p={labelStyle:"",style:""},f=l.text,m=0,h={labelStyle:p.labelStyle,shape:"note",labelText:S(f),noteData:l,rx:m,ry:m,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(e.setNode(l.id,h),d.info("setNode",h),!l.class||!(l.class in a))return;const b=y+i,x={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,C)};e.setEdge(l.id,l.class,x,b)})},H=function(s,e){const y=c().flowchart;let a=0;s.forEach(function(t){var i;a++;const o={classes:"relation",pattern:t.relation.lineType==1?"dashed":"solid",id:`id_${t.id1}_${t.id2}_${a}`,arrowhead:t.type==="arrow_open"?"none":"normal",startLabelRight:t.relationTitle1==="none"?"":t.relationTitle1,endLabelLeft:t.relationTitle2==="none"?"":t.relationTitle2,arrowTypeStart:N(t.relation.type1),arrowTypeEnd:N(t.relation.type2),style:"fill:none",labelStyle:"",curve:E(y==null?void 0:y.curve,C)};if(d.info(o,t),t.style!==void 0){const r=D(t.style);o.style=r.style,o.labelStyle=r.labelStyle}t.text=t.title,t.text===void 0?t.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label=''+t.text+""):(o.labelType="text",o.label=t.text.replace(A.lineBreakRegex,` +`),t.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),e.setEdge(t.id1,t.id2,o,a)})},V=function(s){k={...k,...s}},W=async function(s,e,y,a){d.info("Drawing class - ",e);const t=c().flowchart??c().class,i=c().securityLevel;d.info("config:",t);const o=(t==null?void 0:t.nodeSpacing)??50,r=(t==null?void 0:t.rankSpacing)??50,l=new z({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:o,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),p=a.db.getClasses(),f=a.db.getRelations(),m=a.db.getNotes();d.info(f),q(n,l,e,a),$(p,l,e,a),H(f,l),F(m,l,f.length+1,p);let u;i==="sandbox"&&(u=w("#i"+e));const h=i==="sandbox"?w(u.nodes()[0].contentDocument.body):w("body"),b=h.select(`[id="${e}"]`),x=h.select("#"+e+" g");if(await P(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),B.insertTitle(b,"classTitleText",(t==null?void 0:t.titleTopMargin)??5,a.db.getDiagramTitle()),G(l,b,t==null?void 0:t.diagramPadding,t==null?void 0:t.useMaxWidth),!(t!=null&&t.htmlLabels)){const T=i==="sandbox"?u.nodes()[0].contentDocument:document,I=T.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const g of I){const L=g.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),g.insertBefore(v,g.firstChild)}}};function N(s){let e;switch(s){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const J={setConf:V,draw:W},nt={parser:M,db:_,renderer:J,styles:R,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,_.clear()}};export{nt as diagram}; diff --git a/docs/assets/chunks/clone.D_kVq7Za.js b/docs/assets/chunks/clone.D_kVq7Za.js new file mode 100644 index 0000000..7717bf9 --- /dev/null +++ b/docs/assets/chunks/clone.D_kVq7Za.js @@ -0,0 +1 @@ +import{a as r}from"./graph.CEI0PYYp.js";var a=4;function n(o){return r(o,a)}export{n as c}; diff --git a/docs/assets/chunks/createText-423428c9.B39V2kZ0.js b/docs/assets/chunks/createText-423428c9.B39V2kZ0.js new file mode 100644 index 0000000..c9b9637 --- /dev/null +++ b/docs/assets/chunks/createText-423428c9.B39V2kZ0.js @@ -0,0 +1,7 @@ +import{l as At,an as zt,ap as It}from"../app.Dv4846sG.js";const Tt={};function Bt(n,r){const t=r||Tt,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return et(n,e,u)}function et(n,r,t){if(Lt(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return Vn(n.children,r,t)}return Array.isArray(n)?Vn(n,r,t):""}function Vn(n,r,t){const e=[];let u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Wn={}.hasOwnProperty;function Ot(n){const r={};let t=-1;for(;++tl))return;const T=r.events.length;let H=T,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=T;kF;){const _=t[D];r.containerState=_[1],_[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Un(n){if(n===null||Z(n)||Ht(n))return 1;if(qt(n))return 2}function Ln(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);$n(f,-m),$n(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Ln(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&z(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||C(k)?n.check(Yn,I,D)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||C(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function D(k){return n.exit("codeFenced"),r(k)}function _(k,T,H){let N=0;return V;function V(w){return k.enter("lineEnding"),k.consume(w),k.exit("lineEnding"),y}function y(w){return k.enter("codeFencedFence"),z(w)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):S(w)}function S(w){return w===a?(k.enter("codeFencedFenceSequence"),P(w)):H(w)}function P(w){return w===a?(N++,k.consume(w),P):N>=l?(k.exit("codeFencedFenceSequence"),z(w)?O(k,R,"whitespace")(w):R(w)):H(w)}function R(w){return w===null||C(w)?(k.exit("codeFencedFence"),T(w)):H(w)}}}function re(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const Cn={name:"codeIndented",tokenize:ue},ie={tokenize:le,partial:!0};function ue(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):C(c)?n.attempt(ie,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||C(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function le(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):C(l)?u(l):t(l)}}const ae={name:"codeText",tokenize:ce,resolve:oe,previous:se};function oe(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function at(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),I(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||C(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function I(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):C(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||C(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!z(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function st(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):C(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||C(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return C(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):z(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ke={name:"definition",tokenize:be},de={tokenize:ye,partial:!0};function be(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return ot.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return at(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(de,f,f)(h)}function f(h){return z(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||C(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function ye(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return st(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return z(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||C(a)?r(a):t(a)}}const Se={name:"hardBreakEscape",tokenize:Fe};function Fe(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return C(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Ee={name:"headingAtx",tokenize:we,resolve:Ce};function Ce(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||C(p)?(n.exit("atxHeading"),r(p)):z(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ae=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jn=["pre","script","style","textarea"],ze={name:"htmlFlow",tokenize:Le,resolveTo:Be,concrete:!0},Ie={tokenize:De,partial:!0},Te={tokenize:Oe,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Le(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,I):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function I(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function M(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Jn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ae.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),M):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return z(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),D):z(s)?(n.consume(s),F):V(s)}function D(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),D):_(s)}function _(s){return s===61?(n.consume(s),k):z(s)?(n.consume(s),_):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,T):z(s)?(n.consume(s),k):H(s)}function T(s){return s===m?(n.consume(s),m=null,N):s===null||C(s)?t(s):(n.consume(s),T)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?_(s):(n.consume(s),H)}function N(s){return s===47||s===62||z(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||C(s)?S(s):z(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),U):s===60&&u===1?(n.consume(s),W):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):C(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(Ie,rn,P)(s)):s===null||C(s)?(n.exit("htmlFlowData"),P(s)):(n.consume(s),S)}function P(s){return n.check(Te,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),w}function w(s){return s===null||C(s)?P(s):(n.enter("htmlFlowData"),S(s))}function U(s){return s===45?(n.consume(s),o):S(s)}function W(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Jn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||C(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Oe(n,r,t){const e=this;return u;function u(l){return C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function De(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const Pe={name:"htmlText",tokenize:_e};function _e(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),_):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):C(o)?(l=f,W(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?U(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?I:A):t(o)}function I(o){return o===null?t(o):o===93?(n.consume(o),M):C(o)?(l=I,W(o)):(n.consume(o),I)}function M(o){return o===93?(n.consume(o),b):I(o)}function b(o){return o===62?U(o):o===93?(n.consume(o),b):I(o)}function j(o){return o===null||o===62?U(o):C(o)?(l=j,W(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),D):C(o)?(l=F,W(o)):(n.consume(o),F)}function D(o){return o===62?U(o):F(o)}function _(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):T(o)}function T(o){return C(o)?(l=T,W(o)):z(o)?(n.consume(o),T):U(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),U):o===58||o===95||nn(o)?(n.consume(o),V):C(o)?(l=N,W(o)):z(o)?(n.consume(o),N):U(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):C(o)?(l=y,W(o)):z(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,P):C(o)?(l=S,W(o)):z(o)?(n.consume(o),S):(n.consume(o),R)}function P(o){return o===u?(n.consume(o),u=void 0,w):o===null?t(o):C(o)?(l=P,W(o)):(n.consume(o),P)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function w(o){return o===47||o===62||Z(o)?N(o):t(o)}function U(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function W(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return z(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const Dn={name:"labelEnd",tokenize:Ne,resolveTo:He,resolveAll:qe},Me={tokenize:Ve},je={tokenize:We},Re={tokenize:Qe};function qe(n){let r=-1;for(;++r=3&&(c===null||C(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),z(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:ve,continuation:{tokenize:nr},exit:er},Ke={tokenize:rr,partial:!0},Xe={tokenize:tr,partial:!0};function ve(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Ke,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return z(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function nr(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!z(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Xe,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function tr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function er(n){n.exit(this.containerState.type)}function rr(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Kn={name:"setextUnderline",tokenize:ur,resolveTo:ir};function ir(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ur(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),z(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||C(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const lr={tokenize:ar};function ar(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(pe,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const or={resolveAll:ht()},sr=ct("string"),cr=ct("text");function ct(n){return{tokenize:r,resolveAll:ht(n==="text"?hr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function mr(n,r){let t=-1;const e=[];let u;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Ir=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Tr(n){return n.replace(Ir,Br)}function Br(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){const u=t.charCodeAt(1),i=u===120||u===88;return pt(t.slice(i?2:1),i?16:10)}return On(t)||n}function yn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?vn(n.position):"start"in n||"end"in n?vn(n):"line"in n||"column"in n?Tn(n):""}function Tn(n){return nt(n&&n.line)+":"+nt(n&&n.column)}function vn(n){return Tn(n&&n.start)+"-"+Tn(n&&n.end)}function nt(n){return n&&typeof n=="number"?n:1}const ft={}.hasOwnProperty,mt=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Lr(t)(zr(wr(t).document().write(Ar()(n,r,!0))))};function Lr(n){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Hn),autolinkProtocol:y,autolinkEmail:y,atxHeading:a(jn),blockQuote:a(Fn),characterEscape:y,characterReference:y,codeFenced:a(Mn),codeFencedFenceInfo:m,codeFencedFenceMeta:m,codeIndented:a(Mn,m),codeText:a(kt,m),codeTextData:y,data:y,codeFlowValue:y,definition:a(dt),definitionDestinationString:m,definitionLabelString:m,definitionTitleString:m,emphasis:a(bt),hardBreakEscape:a(Rn),hardBreakTrailing:a(Rn),htmlFlow:a(qn,m),htmlFlowData:y,htmlText:a(qn,m),htmlTextData:y,image:a(yt),label:m,link:a(Hn),listItem:a(St),listItemValue:A,listOrdered:a(Nn,h),listUnordered:a(Nn),paragraph:a(Ft),reference:hn,referenceString:m,resourceDestinationString:m,resourceTitleString:m,setextHeading:a(jn),strong:a(Et),thematicBreak:a(wt)},exit:{atxHeading:p(),atxHeadingSequence:T,autolink:p(),autolinkEmail:mn,autolinkProtocol:fn,blockQuote:p(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:pn,characterReferenceMarkerNumeric:pn,characterReferenceValue:an,codeFenced:p(j),codeFencedFence:b,codeFencedFenceInfo:I,codeFencedFenceMeta:M,codeFlowValue:S,codeIndented:p(F),codeText:p(W),codeTextData:S,data:S,definition:p(),definitionDestinationString:k,definitionLabelString:D,definitionTitleString:_,emphasis:p(),hardBreakEscape:p(R),hardBreakTrailing:p(R),htmlFlow:p(w),htmlFlowData:S,htmlText:p(U),htmlTextData:S,image:p(en),label:J,labelText:o,lineEnding:P,link:p(G),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:Q,resourceDestinationString:rn,resourceTitleString:s,resource:K,setextHeading:p(V),setextHeadingLineSequence:N,setextHeadingText:H,strong:p(),thematicBreak:p()}};xt(r,(n||{}).mdastExtensions||[]);const t={};return e;function e(g){let d={type:"root",children:[]};const E={stack:[d],tokenStack:[],config:r,enter:c,exit:f,buffer:m,resume:x,setData:i,getData:l},B=[];let L=-1;for(;++L0){const X=E.tokenStack[E.tokenStack.length-1];(X[1]||tt).call(E,void 0,X[0])}for(d.position={start:sn(g.length>0?g[0][1].start:{line:1,column:1,offset:0}),end:sn(g.length>0?g[g.length-2][1].end:{line:1,column:1,offset:0})},L=-1;++L{p!==0&&(u++,e.push([])),c.split(" ").forEach(f=>{f&&e[u].push({content:f,type:a})})}):(l.type==="strong"||l.type==="emphasis")&&l.children.forEach(m=>{i(m,l.type)})}return t.forEach(l=>{l.type==="paragraph"&&l.children.forEach(a=>{i(a)})}),e}function _r(n){const{children:r}=mt(n);function t(e){return e.type==="text"?e.value.replace(/\n/g,"
"):e.type==="strong"?`${e.children.map(t).join("")}`:e.type==="emphasis"?`${e.children.map(t).join("")}`:e.type==="paragraph"?`

${e.children.map(t).join("")}

`:`Unsupported markdown: ${e.type}`}return r.map(t).join("")}function Mr(n){return Intl.Segmenter?[...new Intl.Segmenter().segment(n)].map(r=>r.segment):[...n]}function jr(n,r){const t=Mr(r.content);return gt(n,[],t,r.type)}function gt(n,r,t,e){if(t.length===0)return[{content:r.join(""),type:e},{content:"",type:e}];const[u,...i]=t,l=[...r,u];return n([{content:l.join(""),type:e}])?gt(n,l,i,e):(r.length===0&&u&&(r.push(u),t.shift()),[{content:r.join(""),type:e},{content:t.join(""),type:e}])}function Rr(n,r){if(n.some(({content:t})=>t.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return Bn(n,r)}function Bn(n,r,t=[],e=[]){if(n.length===0)return e.length>0&&t.push(e),t.length>0?t:[];let u="";n[0].content===" "&&(u=" ",n.shift());const i=n.shift()??{content:" ",type:"normal"},l=[...e];if(u!==""&&l.push({content:u,type:"normal"}),l.push(i),r(l))return Bn(n,r,t,l);if(e.length>0)t.push(e),n.unshift(i);else if(i.content){const[a,m]=jr(r,i);t.push([a]),m.content&&n.unshift(m)}return Bn(n,r,t)}function qr(n,r){r&&n.attr("style",r)}function Hr(n,r,t,e,u=!1){const i=n.append("foreignObject"),l=i.append("xhtml:div"),a=r.label,m=r.isNode?"nodeLabel":"edgeLabel";l.html(` + "+a+""),qr(l,r.labelStyle),l.style("display","table-cell"),l.style("white-space","nowrap"),l.style("max-width",t+"px"),l.attr("xmlns","http://www.w3.org/1999/xhtml"),u&&l.attr("class","labelBkg");let c=l.node().getBoundingClientRect();return c.width===t&&(l.style("display","table"),l.style("white-space","break-spaces"),l.style("width",t+"px"),c=l.node().getBoundingClientRect()),i.style("width",c.width),i.style("height",c.height),i.node()}function Pn(n,r,t){return n.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",r*t-.1+"em").attr("dy",t+"em")}function Nr(n,r,t){const e=n.append("text"),u=Pn(e,1,r);_n(u,t);const i=u.node().getComputedTextLength();return e.remove(),i}function Qr(n,r,t){var e;const u=n.append("text"),i=Pn(u,1,r);_n(i,[{content:t,type:"normal"}]);const l=(e=i.node())==null?void 0:e.getBoundingClientRect();return l&&u.remove(),l}function Vr(n,r,t,e=!1){const i=r.append("g"),l=i.insert("rect").attr("class","background"),a=i.append("text").attr("y","-10.1");let m=0;for(const c of t){const p=x=>Nr(i,1.1,x)<=n,f=p(c)?[c]:Rr(c,p);for(const x of f){const h=Pn(a,m,1.1);_n(h,x),m++}}if(e){const c=a.node().getBBox(),p=2;return l.attr("x",-p).attr("y",-p).attr("width",c.width+2*p).attr("height",c.height+2*p),i.node()}else return a.node()}function _n(n,r){n.text(""),r.forEach((t,e)=>{const u=n.append("tspan").attr("font-style",t.type==="emphasis"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",t.type==="strong"?"bold":"normal");e===0?u.text(t.content):u.text(" "+t.content)})}const Ur=(n,r="",{style:t="",isTitle:e=!1,classes:u="",useHtmlLabels:i=!0,isNode:l=!0,width:a=200,addSvgBackground:m=!1}={})=>{if(At.info("createText",r,t,e,u,i,l,m),i){const c=_r(r),p={isNode:l,label:zt(c).replace(/fa[blrs]?:fa-[\w-]+/g,x=>``),labelStyle:t.replace("fill:","color:")};return Hr(n,p,a,u,m)}else{const c=Pr(r);return Vr(a,n,c,m)}};export{Qr as a,Ur as c}; diff --git a/docs/assets/chunks/edges-d417c7a0.DU1W7dRA.js b/docs/assets/chunks/edges-d417c7a0.DU1W7dRA.js new file mode 100644 index 0000000..21d1bf8 --- /dev/null +++ b/docs/assets/chunks/edges-d417c7a0.DU1W7dRA.js @@ -0,0 +1,4 @@ +import{q as H,c as b,d as V,an as q,h as E,l as g,y as j,ao as lt}from"../app.Dv4846sG.js";import{c as st}from"./createText-423428c9.B39V2kZ0.js";import{l as ct}from"./line._MqlDceE.js";const ht=(e,t,a,i)=>{t.forEach(l=>{wt[l](e,a,i)})},ot=(e,t,a)=>{g.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},yt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},pt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},ft=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},xt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},gt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},ut=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},bt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},wt={extension:ot,composition:yt,aggregation:pt,dependency:ft,lollipop:xt,point:dt,circle:gt,cross:ut,barb:bt},hr=ht;function mt(e,t){t&&e.attr("style",t)}function kt(e){const t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=t.append("xhtml:div"),i=e.label,l=e.isNode?"nodeLabel":"edgeLabel";return a.html('"+i+""),mt(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const vt=(e,t,a,i)=>{let l=e||"";if(typeof l=="object"&&(l=l[0]),H(b().flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),g.debug("vertexText"+l);const r={isNode:i,label:q(l).replace(/fa[blrs]?:fa-[\w-]+/g,n=>``),labelStyle:t.replace("fill:","color:")};return kt(r)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof l=="string"?s=l.split(/\\n|\n|/gi):Array.isArray(l)?s=l:s=[];for(const n of s){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),a?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=n.trim(),r.appendChild(c)}return r}},R=vt,M=async(e,t,a,i)=>{let l;const r=t.useHtmlLabels||H(b().flowchart.htmlLabels);a?l=a:l="node default";const s=e.insert("g").attr("class",l).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=n.node();let h;t.labelType==="markdown"?h=st(n,V(q(c),b()),{useHtmlLabels:r,width:t.width||b().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(R(V(q(c),b()),t.labelStyle,!1,i));let y=h.getBBox();const f=t.padding/2;if(H(b().flowchart.htmlLabels)){const p=h.children[0],d=E(h),k=p.getElementsByTagName("img");if(k){const x=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(u=>new Promise(S=>{function B(){if(u.style.display="flex",u.style.flexDirection="column",x){const C=b().fontSize?b().fontSize:window.getComputedStyle(document.body).fontSize,D=parseInt(C,10)*5+"px";u.style.minWidth=D,u.style.maxWidth=D}else u.style.width="100%";S(u)}setTimeout(()=>{u.complete&&B()}),u.addEventListener("error",B),u.addEventListener("load",B)})))}y=p.getBoundingClientRect(),d.attr("width",y.width),d.attr("height",y.height)}return r?n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"):n.attr("transform","translate(0, "+-y.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:y,halfPadding:f,label:n}},m=(e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height};function I(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}function Lt(e,t){return e.intersect(t)}function it(e,t,a,i){var l=e.x,r=e.y,s=l-i.x,n=r-i.y,c=Math.sqrt(t*t*n*n+a*a*s*s),o=Math.abs(t*a*s/c);i.x0}function Tt(e,t,a){var i=e.x,l=e.y,r=[],s=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),n=Math.min(n,d.y)}):(s=Math.min(s,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-s,o=l-e.height/2-n,h=0;h1&&r.sort(function(d,k){var x=d.x-a.x,u=d.y-a.y,S=Math.sqrt(x*x+u*u),B=k.x-a.x,C=k.y-a.y,X=Math.sqrt(B*B+C*C);return S{var a=e.x,i=e.y,l=t.x-a,r=t.y-i,s=e.width/2,n=e.height/2,c,o;return Math.abs(r)*s>Math.abs(l)*n?(r<0&&(n=-n),c=r===0?0:n*l/r,o=n):(l<0&&(s=-s),c=s,o=l===0?0:s*r/l),{x:a+c,y:i+o}},Et=Bt,w={node:Lt,circle:St,ellipse:it,polygon:Tt,rect:Et},Ct=async(e,t)=>{t.useHtmlLabels||b().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:r}=await M(e,t,"node "+t.classes,!0);g.info("Classes = ",t.classes);const s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-r).attr("y",-l.height/2-r).attr("width",l.width+t.padding).attr("height",l.height+t.padding),m(t,s),t.intersect=function(n){return w.rect(t,n)},i},$t=Ct,_t=e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},Rt=(e,t,a)=>{const i=_t(e),l=2,r=t.height+2*a.padding,s=r/l,n=t.width+2*s+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*c},{x:n-s,y:0},{x:n,y:0},{x:n,y:-r/3},{x:n+2*c,y:-r/2},{x:n,y:-2*r/3},{x:n,y:-r},{x:n-s,y:-r},{x:n/2,y:-r-2*c},{x:s,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:s,y:-r},{x:n-s,y:-r},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-r+s},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-r+s},{x:n,y:-r}]:i.has("right")&&i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-r}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-r}]:i.has("right")?[{x:s,y:-c},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r+c}]:i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},K=e=>e?" "+e:"",_=(e,t)=>`${t||"node default"}${K(e.classes)} ${K(e.class)}`,P=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=l+r,n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];g.info("Question main (Circle)");const c=I(a,s,s,n);return c.attr("style",t.style),m(t,c),t.intersect=function(o){return g.warn("Intersect called"),w.polygon(t,n,o)},a},Ht=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return w.circle(t,14,s)},a},It=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=4,r=i.height+t.padding,s=r/l,n=i.width+2*s+t.padding,c=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}],o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Nt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,void 0,!0),l=2,r=i.height+2*t.padding,s=r/l,n=i.width+2*s+t.padding,c=Rt(t.directions,i,t),o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Ot=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-r/2,y:0},{x:l,y:0},{x:l,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return I(a,l,r,s).attr("style",t.style),t.width=l+r,t.height=r,t.intersect=function(c){return w.polygon(t,s,c)},a},Wt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Xt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:2*r/6,y:0},{x:l+r/6,y:0},{x:l-2*r/6,y:-r},{x:-r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Yt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l+2*r/6,y:0},{x:l-r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Dt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:-2*r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},At=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l+r/2,y:0},{x:l,y:-r/2},{x:l+r/2,y:-r},{x:0,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},jt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=l/2,s=r/(2.5+l/50),n=i.height+s+t.padding,c="M 0,"+s+" a "+r+","+s+" 0,0,0 "+l+" 0 a "+r+","+s+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+r+","+s+" 0,0,0 "+l+" 0 l 0,"+-n,o=a.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+s)+")");return m(t,o),t.intersect=function(h){const y=w.rect(t,h),f=y.x-t.x;if(r!=0&&(Math.abs(f)t.height/2-s)){let p=s*s*(1-f*f/(r*r));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),y.y+=p}return y},a},Ut=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes+" "+t.class,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},zt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},Zt=async(e,t)=>{const{shapeSvg:a}=await M(e,t,"label",!0);g.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,r=0;if(i.attr("width",l).attr("height",r),a.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(Q(i,t.props.borders,l,r),s.delete("borders")),s.forEach(n=>{g.warn(`Unknown node property ${n}`)})}return m(t,i),t.intersect=function(s){return w.rect(t,s)},a};function Q(e,t,a,i){const l=[],r=n=>{l.push(n,0)},s=n=>{l.push(0,n)};t.includes("t")?(g.debug("add top border"),r(a)):s(a),t.includes("r")?(g.debug("add right border"),r(i)):s(i),t.includes("b")?(g.debug("add bottom border"),r(a)):s(a),t.includes("l")?(g.debug("add left border"),r(i)):s(i),e.attr("stroke-dasharray",l.join(" "))}const Gt=(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),r=i.insert("line"),s=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof n=="object"?c=n[0]:c=n,g.info("Label text abc79",c,n,typeof n=="object");const o=s.node().appendChild(R(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(b().flowchart.htmlLabels)){const k=o.children[0],x=E(o);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}g.info("Text 2",n);const y=n.slice(1,n.length);let f=o.getBBox();const p=s.node().appendChild(R(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(H(b().flowchart.htmlLabels)){const k=p.children[0],x=E(p);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}const d=t.padding/2;return E(p).attr("transform","translate( "+(h.width>f.width?0:(f.width-h.width)/2)+", "+(f.height+d+5)+")"),E(o).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.height+t.padding,r=i.width+l/4+t.padding,s=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-r/2).attr("y",-l/2).attr("width",r).attr("height",l);return m(t,s),t.intersect=function(n){return w.rect(t,n)},a},qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t,void 0),!0),r=a.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("Circle main"),m(t,r),t.intersect=function(s){return g.info("Circle intersect",t,i.width/2+l,s),w.circle(t,i.width/2+l,s)},a},Qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t,void 0),!0),r=5,s=a.insert("g",":first-child"),n=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+r).attr("width",i.width+t.padding+r*2).attr("height",i.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("DoubleCircle main"),m(t,n),t.intersect=function(o){return g.info("DoubleCircle intersect",t,i.width/2+l+r,o),w.circle(t,i.width/2+l+r,o)},a},Vt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t,void 0),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l,y:0},{x:l,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Jt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),m(t,i),t.intersect=function(l){return w.circle(t,7,l)},a},tt=(e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,r=10;a==="LR"&&(l=10,r=70);const s=i.append("rect").attr("x",-1*l/2).attr("y",-1*r/2).attr("width",l).attr("height",r).attr("class","fork-join");return m(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return w.rect(t,n)},i},Kt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),m(t,l),t.intersect=function(r){return w.circle(t,7,r)},a},Pt=(e,t)=>{const a=t.padding/2,i=4,l=8;let r;t.classes?r="node "+t.classes:r="node default";const s=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line");let h=0,y=i;const f=s.insert("g").attr("class","label");let p=0;const d=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",x=f.node().appendChild(R(k,t.labelStyle,!0,!0));let u=x.getBBox();if(H(b().flowchart.htmlLabels)){const v=x.children[0],L=E(x);u=v.getBoundingClientRect(),L.attr("width",u.width),L.attr("height",u.height)}t.classData.annotations[0]&&(y+=u.height+i,h+=u.width);let S=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(b().flowchart.htmlLabels?S+="<"+t.classData.type+">":S+="<"+t.classData.type+">");const B=f.node().appendChild(R(S,t.labelStyle,!0,!0));E(B).attr("class","classTitle");let C=B.getBBox();if(H(b().flowchart.htmlLabels)){const v=B.children[0],L=E(B);C=v.getBoundingClientRect(),L.attr("width",C.width),L.attr("height",C.height)}y+=C.height+i,C.width>h&&(h=C.width);const X=[];t.classData.members.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,X.push(N)}),y+=l;const D=[];if(t.classData.methods.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,D.push(N)}),y+=l,d){let v=(h-u.width)/2;E(x).attr("transform","translate( "+(-1*h/2+v)+", "+-1*y/2+")"),p=u.height+i}let nt=(h-C.width)/2;return E(B).attr("transform","translate( "+(-1*h/2+nt)+", "+(-1*y/2+p)+")"),p+=C.height+i,c.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,X.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p+l/2)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),p+=l,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,D.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),m(t,n),t.intersect=function(v){return w.rect(t,v)},s},rt={rhombus:P,composite:zt,question:P,rect:Ut,labelRect:Zt,rectWithTitle:Gt,choice:Ht,circle:qt,doublecircle:Qt,stadium:Ft,hexagon:It,block_arrow:Nt,rect_left_inv_arrow:Ot,lean_right:Wt,lean_left:Xt,trapezoid:Yt,inv_trapezoid:Dt,rect_right_inv_arrow:At,cylinder:jt,start:Jt,end:Kt,note:$t,subroutine:Vt,fork:tt,join:tt,class_box:Pt};let Y={};const or=async(e,t,a)=>{let i,l;if(t.link){let r;b().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),l=await rt[t.shape](i,t,a)}else l=await rt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),i.attr("data-node","true"),i.attr("data-id",t.id),Y[t.id]=i,t.haveCallback&&Y[t.id].attr("class",Y[t.id].attr("class")+" clickable"),i},yr=(e,t)=>{Y[t.id]=e},pr=()=>{Y={}},fr=e=>{const t=Y[e.id];g.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},tr=({flowchart:e})=>{var t,a;const i=((t=e==null?void 0:e.subGraphTitleMargin)==null?void 0:t.top)??0,l=((a=e==null?void 0:e.subGraphTitleMargin)==null?void 0:a.bottom)??0,r=i+l;return{subGraphTitleTopMargin:i,subGraphTitleBottomMargin:l,subGraphTitleTotalMargin:r}},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Z(e),t=Z(t);const[a,i]=[e.x,e.y],[l,r]=[t.x,t.y],s=l-a,n=r-i;return{angle:Math.atan(n/s),deltaX:s,deltaY:n}}const Z=e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,rr=e=>({x:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaX:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.cos(r)*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaX:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.cos(r)*(s>=0?1:-1)}return Z(t).x+l},y:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaY:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.abs(Math.sin(r))*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaY:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.abs(Math.sin(r))*(s>=0?1:-1)}return Z(t).y+l}}),ar=(e,t,a,i,l)=>{t.arrowTypeStart&&at(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&at(e,"end",t.arrowTypeEnd,a,i,l)},er={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},at=(e,t,a,i,l,r)=>{const s=er[a];if(!s){g.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${r}-${s}${n})`)};let G={},T={};const xr=()=>{G={},T={}},dr=(e,t)=>{const a=H(b().flowchart.htmlLabels),i=t.labelType==="markdown"?st(e,t.label,{style:t.labelStyle,useHtmlLabels:a,addSvgBackground:!0}):R(t.label,t.labelStyle),l=e.insert("g").attr("class","edgeLabel"),r=l.insert("g").attr("class","label");r.node().appendChild(i);let s=i.getBBox();if(a){const c=i.children[0],o=E(i);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),G[t.id]=l,t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){const c=R(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startLeft=o,z(n,t.startLabelLeft)}if(t.startLabelRight){const c=R(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=o.node().appendChild(c),h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startRight=o,z(n,t.startLabelRight)}if(t.endLabelLeft){const c=R(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endLeft=o,z(n,t.endLabelLeft)}if(t.endLabelRight){const c=R(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endRight=o,z(n,t.endLabelRight)}return i};function z(e,t){b().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}const gr=(e,t)=>{g.debug("Moving label abc88 ",e.id,e.label,G[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=b(),{subGraphTitleTotalMargin:l}=tr(i);if(e.label){const r=G[e.id];let s=e.x,n=e.y;if(a){const c=j.calcLabelPosition(a);g.debug("Moving label "+e.label+" from (",s,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(s=c.x,n=c.y)}r.attr("transform",`translate(${s}, ${n+l/2})`)}if(e.startLabelLeft){const r=T[e.id].startLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.startLabelRight){const r=T[e.id].startRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelLeft){const r=T[e.id].endLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelRight){const r=T[e.id].endRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}},sr=(e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),r=Math.abs(t.y-i),s=e.width/2,n=e.height/2;return l>=s||r>=n},ir=(e,t,a)=>{g.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,r=Math.abs(i-a.x),s=e.width/2;let n=a.xMath.abs(i-t.x)*c){let y=a.y{g.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(r=>{if(!sr(t,r)&&!l){const s=ir(t,i,r);let n=!1;a.forEach(c=>{n=n||c.x===s.x&&c.y===s.y}),a.some(c=>c.x===s.x&&c.y===s.y)||a.push(s),l=!0}else i=r,l||a.push(r)}),a},ur=function(e,t,a,i,l,r,s){let n=a.points;g.debug("abc88 InsertEdge: edge=",a,"e=",t);let c=!1;const o=r.node(t.v);var h=r.node(t.w);h!=null&&h.intersect&&(o!=null&&o.intersect)&&(n=n.slice(1,a.points.length-1),n.unshift(o.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(g.debug("to cluster abc88",i[a.toCluster]),n=et(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(g.debug("from cluster abc88",i[a.fromCluster]),n=et(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);const y=n.filter(C=>!Number.isNaN(C.y));let f=lt;a.curve&&(l==="graph"||l==="flowchart")&&(f=a.curve);const{x:p,y:d}=rr(a),k=ct().x(p).y(d).curve(f);let x;switch(a.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-thick";break;default:x=""}switch(a.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break}const u=e.append("path").attr("d",k(y)).attr("id",a.id).attr("class"," "+x+(a.classes?" "+a.classes:"")).attr("style",a.style);let S="";(b().flowchart.arrowMarkerAbsolute||b().state.arrowMarkerAbsolute)&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\("),S=S.replace(/\)/g,"\\)")),ar(u,a,S,s,l);let B={};return c&&(B.updatedPath=n),B.originalPath=a.points,B};export{or as a,dr as b,ur as c,gr as d,pr as e,xr as f,tr as g,R as h,hr as i,Et as j,rr as k,M as l,ar as m,fr as p,yr as s,m as u}; diff --git a/docs/assets/chunks/erDiagram-0ea73325.D6LayG_5.js b/docs/assets/chunks/erDiagram-0ea73325.D6LayG_5.js new file mode 100644 index 0000000..c75ed94 --- /dev/null +++ b/docs/assets/chunks/erDiagram-0ea73325.D6LayG_5.js @@ -0,0 +1,51 @@ +import{c as Z,s as Et,g as mt,b as gt,a as kt,v as xt,x as Rt,l as V,z as Ot,h as rt,y as bt,i as Nt,ao as Tt,ar as At}from"../app.Dv4846sG.js";import{G as Mt}from"./graph.CEI0PYYp.js";import{l as St}from"./layout.B9Jo_8FM.js";import{l as wt}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";const It=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Dt(t){return typeof t=="string"&&It.test(t)}const A=[];for(let t=0;t<256;++t)A.push((t+256).toString(16).slice(1));function vt(t,e=0){return A[t[e+0]]+A[t[e+1]]+A[t[e+2]]+A[t[e+3]]+"-"+A[t[e+4]]+A[t[e+5]]+"-"+A[t[e+6]]+A[t[e+7]]+"-"+A[t[e+8]]+A[t[e+9]]+"-"+A[t[e+10]]+A[t[e+11]]+A[t[e+12]]+A[t[e+13]]+A[t[e+14]]+A[t[e+15]]}function Lt(t){if(!Dt(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}function Bt(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r>>32-e}function Ft(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;x=g,g=m,m=it(_,30)>>>0,_=h,h=I}r[0]=r[0]+h>>>0,r[1]=r[1]+_>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+x>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}const Wt=Yt("v5",80,Ft);var at=function(){var t=function(S,a,n,c){for(n=n||{},c=S.length;c--;n[S[c]]=a);return n},e=[6,8,10,20,22,24,26,27,28],r=[1,10],u=[1,11],l=[1,12],p=[1,13],f=[1,14],o=[1,15],h=[1,21],_=[1,22],m=[1,23],g=[1,24],x=[1,25],y=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],N=[1,34],I=[27,28,46,47],F=[41,42,43,44,45],W=[17,34],C=[1,54],T=[1,53],M=[17,34,36,38],R={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(a,n,c,d,E,i,K){var s=i.length-1;switch(E){case 1:break;case 2:this.$=[];break;case 3:i[s-1].push(i[s]),this.$=i[s-1];break;case 4:case 5:this.$=i[s];break;case 6:case 7:this.$=[];break;case 8:d.addEntity(i[s-4]),d.addEntity(i[s-2]),d.addRelationship(i[s-4],i[s],i[s-2],i[s-3]);break;case 9:d.addEntity(i[s-3]),d.addAttributes(i[s-3],i[s-1]);break;case 10:d.addEntity(i[s-2]);break;case 11:d.addEntity(i[s]);break;case 12:d.addEntity(i[s-6],i[s-4]),d.addAttributes(i[s-6],i[s-1]);break;case 13:d.addEntity(i[s-5],i[s-3]);break;case 14:d.addEntity(i[s-3],i[s-1]);break;case 15:case 16:this.$=i[s].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=i[s].trim(),d.setAccDescription(this.$);break;case 19:case 43:this.$=i[s];break;case 20:case 41:case 42:this.$=i[s].replace(/"/g,"");break;case 21:case 29:this.$=[i[s]];break;case 22:i[s].push(i[s-1]),this.$=i[s];break;case 23:this.$={attributeType:i[s-1],attributeName:i[s]};break;case 24:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeKeyTypeList:i[s]};break;case 25:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeComment:i[s]};break;case 26:this.$={attributeType:i[s-3],attributeName:i[s-2],attributeKeyTypeList:i[s-1],attributeComment:i[s]};break;case 27:case 28:case 31:this.$=i[s];break;case 30:i[s-2].push(i[s]),this.$=i[s-2];break;case 32:this.$=i[s].replace(/"/g,"");break;case 33:this.$={cardA:i[s],relType:i[s-1],cardB:i[s-2]};break;case 34:this.$=d.Cardinality.ZERO_OR_ONE;break;case 35:this.$=d.Cardinality.ZERO_OR_MORE;break;case 36:this.$=d.Cardinality.ONE_OR_MORE;break;case 37:this.$=d.Cardinality.ONLY_ONE;break;case 38:this.$=d.Cardinality.MD_PARENT;break;case 39:this.$=d.Identification.NON_IDENTIFYING;break;case 40:this.$=d.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:h,42:_,43:m,44:g,45:x}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(y,[2,19]),t(y,[2,20]),t(e,[2,4]),{11:29,27:f,28:o},{16:30,17:[1,31],29:32,30:33,34:N},{11:35,27:f,28:o},{40:36,46:[1,37],47:[1,38]},t(I,[2,34]),t(I,[2,35]),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:N},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:h,42:_,43:m,44:g,45:x},t(F,[2,39]),t(F,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(W,[2,23],{32:50,33:51,35:52,37:C,38:T}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(W,[2,24],{33:56,36:[1,57],38:T}),t(W,[2,25]),t(M,[2,29]),t(W,[2,32]),t(M,[2,31]),{16:58,17:[1,59],29:32,30:33,34:N},t(W,[2,26]),{35:60,37:C},{17:[1,61]},t(e,[2,13]),t(M,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(a,n){if(n.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=n,c}},parse:function(a){var n=this,c=[0],d=[],E=[null],i=[],K=this.table,s="",Q=0,st=0,ft=2,ot=1,yt=i.slice.call(arguments,1),b=Object.create(this.lexer),z={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(z.yy[J]=this.yy[J]);b.setInput(a,z.yy),z.yy.lexer=b,z.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var $=b.yylloc;i.push($);var pt=b.options&&b.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var Y;return Y=d.pop()||b.lex()||ot,typeof Y!="number"&&(Y instanceof Array&&(d=Y,Y=d.pop()),Y=n.symbols_[Y]||Y),Y}for(var w,H,D,tt,G={},j,P,lt,q;;){if(H=c[c.length-1],this.defaultActions[H]?D=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=_t()),D=K[H]&&K[H][w]),typeof D>"u"||!D.length||!D[0]){var et="";q=[];for(j in K[H])this.terminals_[j]&&j>ft&&q.push("'"+this.terminals_[j]+"'");b.showPosition?et="Parse error on line "+(Q+1)+`: +`+b.showPosition()+` +Expecting `+q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":et="Parse error on line "+(Q+1)+": Unexpected "+(w==ot?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(et,{text:b.match,token:this.terminals_[w]||w,line:b.yylineno,loc:$,expected:q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(D[0]){case 1:c.push(w),E.push(b.yytext),i.push(b.yylloc),c.push(D[1]),w=null,st=b.yyleng,s=b.yytext,Q=b.yylineno,$=b.yylloc;break;case 2:if(P=this.productions_[D[1]][1],G.$=E[E.length-P],G._$={first_line:i[i.length-(P||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(P||1)].first_column,last_column:i[i.length-1].last_column},pt&&(G._$.range=[i[i.length-(P||1)].range[0],i[i.length-1].range[1]]),tt=this.performAction.apply(G,[s,st,Q,z.yy,D[1],E,i].concat(yt)),typeof tt<"u")return tt;P&&(c=c.slice(0,-1*P*2),E=E.slice(0,-1*P),i=i.slice(0,-1*P)),c.push(this.productions_[D[1]][0]),E.push(G.$),i.push(G._$),lt=K[c[c.length-2]][c[c.length-1]],c.push(lt);break;case 3:return!0}}return!0}},O=function(){var S={EOF:1,parseError:function(n,c){if(this.yy.parser)this.yy.parser.parseError(n,c);else throw new Error(n)},setInput:function(a,n){return this.yy=n||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var n=a.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var n=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),n=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+n+"^"},test_match:function(a,n){var c,d,E;if(this.options.backtrack_lexer&&(E={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(E.yylloc.range=this.yylloc.range.slice(0))),d=a[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var i in E)this[i]=E[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,n,c,d;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),i=0;in[0].length)){if(n=c,d=i,this.options.backtrack_lexer){if(a=this.test_match(c,E[i]),a!==!1)return a;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(a=this.test_match(n,E[d]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,c,d,E){switch(d){case 0:return this.begin("acc_title"),22;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),24;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;case 22:return c.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return c.yytext[0];case 55:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return S}();R.lexer=O;function v(){this.yy={}}return v.prototype=R,R.Parser=v,new v}();at.parser=at;const Ut=at;let U={},nt=[];const zt={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},Ht={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},dt=function(t,e=void 0){return U[t]===void 0?(U[t]={attributes:[],alias:e},V.info("Added new entity :",t)):U[t]&&!U[t].alias&&e&&(U[t].alias=e,V.info(`Add alias '${e}' to entity '${t}'`)),U[t]},Gt=()=>U,Kt=function(t,e){let r=dt(t),u;for(u=e.length-1;u>=0;u--)r.attributes.push(e[u]),V.debug("Added attribute ",e[u].attributeName)},Vt=function(t,e,r,u){let l={entityA:t,roleA:e,entityB:r,relSpec:u};nt.push(l),V.debug("Added new relationship :",l)},Xt=()=>nt,Qt=function(){U={},nt=[],Ot()},jt={Cardinality:zt,Identification:Ht,getConfig:()=>Z().er,addEntity:dt,addAttributes:Kt,getEntities:Gt,addRelationship:Vt,getRelationships:Xt,clear:Qt,setAccTitle:Et,getAccTitle:mt,setAccDescription:gt,getAccDescription:kt,setDiagramTitle:xt,getDiagramTitle:Rt},L={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},qt=function(t,e){let r;t.append("defs").append("marker").attr("id",L.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",L.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",L.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",L.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},B={ERMarkers:L,insertMarkers:qt},Jt=/[^\dA-Za-z](\W)*/g;let k={},X=new Map;const $t=function(t){const e=Object.keys(t);for(const r of e)k[r]=t[r]},te=(t,e,r)=>{const u=k.entityPadding/3,l=k.entityPadding/3,p=k.fontSize*.85,f=e.node().getBBox(),o=[];let h=!1,_=!1,m=0,g=0,x=0,y=0,N=f.height+u*2,I=1;r.forEach(T=>{T.attributeKeyTypeList!==void 0&&T.attributeKeyTypeList.length>0&&(h=!0),T.attributeComment!==void 0&&(_=!0)}),r.forEach(T=>{const M=`${e.node().id}-attr-${I}`;let R=0;const O=At(T.attributeType),v=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(O),S=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeName),a={};a.tn=v,a.nn=S;const n=v.node().getBBox(),c=S.node().getBBox();if(m=Math.max(m,n.width),g=Math.max(g,c.width),R=Math.max(n.height,c.height),h){const d=T.attributeKeyTypeList!==void 0?T.attributeKeyTypeList.join(","):"",E=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(d);a.kn=E;const i=E.node().getBBox();x=Math.max(x,i.width),R=Math.max(R,i.height)}if(_){const d=t.append("text").classed("er entityLabel",!0).attr("id",`${M}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Z().fontFamily).style("font-size",p+"px").text(T.attributeComment||"");a.cn=d;const E=d.node().getBBox();y=Math.max(y,E.width),R=Math.max(R,E.height)}a.height=R,o.push(a),N+=R+u*2,I+=1});let F=4;h&&(F+=2),_&&(F+=2);const W=m+g+x+y,C={width:Math.max(k.minEntityWidth,Math.max(f.width+k.entityPadding*2,W+l*F)),height:r.length>0?N:Math.max(k.minEntityHeight,f.height+k.entityPadding*2)};if(r.length>0){const T=Math.max(0,(C.width-W-l*F)/(F/2));e.attr("transform","translate("+C.width/2+","+(u+f.height/2)+")");let M=f.height+u*2,R="attributeBoxOdd";o.forEach(O=>{const v=M+u+O.height/2;O.tn.attr("transform","translate("+l+","+v+")");const S=t.insert("rect","#"+O.tn.node().id).classed(`er ${R}`,!0).attr("x",0).attr("y",M).attr("width",m+l*2+T).attr("height",O.height+u*2),a=parseFloat(S.attr("x"))+parseFloat(S.attr("width"));O.nn.attr("transform","translate("+(a+l)+","+v+")");const n=t.insert("rect","#"+O.nn.node().id).classed(`er ${R}`,!0).attr("x",a).attr("y",M).attr("width",g+l*2+T).attr("height",O.height+u*2);let c=parseFloat(n.attr("x"))+parseFloat(n.attr("width"));if(h){O.kn.attr("transform","translate("+(c+l)+","+v+")");const d=t.insert("rect","#"+O.kn.node().id).classed(`er ${R}`,!0).attr("x",c).attr("y",M).attr("width",x+l*2+T).attr("height",O.height+u*2);c=parseFloat(d.attr("x"))+parseFloat(d.attr("width"))}_&&(O.cn.attr("transform","translate("+(c+l)+","+v+")"),t.insert("rect","#"+O.cn.node().id).classed(`er ${R}`,"true").attr("x",c).attr("y",M).attr("width",y+l*2+T).attr("height",O.height+u*2)),M+=O.height+u*2,R=R==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else C.height=Math.max(k.minEntityHeight,N),e.attr("transform","translate("+C.width/2+","+C.height/2+")");return C},ee=function(t,e,r){const u=Object.keys(e);let l;return u.forEach(function(p){const f=oe(p,"entity");X.set(p,f);const o=t.append("g").attr("id",f);l=l===void 0?f:l;const h="text-"+f,_=o.append("text").classed("er entityLabel",!0).attr("id",h).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e[p].alias??p),{width:m,height:g}=te(o,_,e[p].attributes),y=o.insert("rect","#"+h).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",m).attr("height",g).node().getBBox();r.setNode(f,{width:y.width,height:y.height,shape:"rect",id:f})}),l},re=function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},ut=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},ie=function(t,e){return t.forEach(function(r){e.setEdge(X.get(r.entityA),X.get(r.entityB),{relationship:r},ut(r))}),t};let ct=0;const ae=function(t,e,r,u,l){ct++;const p=r.edge(X.get(e.entityA),X.get(e.entityB),ut(e)),f=wt().x(function(N){return N.x}).y(function(N){return N.y}).curve(Tt),o=t.insert("path","#"+u).classed("er relationshipLine",!0).attr("d",f(p.points)).style("stroke",k.stroke).style("fill","none");e.relSpec.relType===l.db.Identification.NON_IDENTIFYING&&o.attr("stroke-dasharray","8,8");let h="";switch(k.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),e.relSpec.cardA){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_END+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_END+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_END+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-end","url("+h+"#"+B.ERMarkers.ONLY_ONE_END+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-end","url("+h+"#"+B.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case l.db.Cardinality.ZERO_OR_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_ONE_START+")");break;case l.db.Cardinality.ZERO_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ZERO_OR_MORE_START+")");break;case l.db.Cardinality.ONE_OR_MORE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONE_OR_MORE_START+")");break;case l.db.Cardinality.ONLY_ONE:o.attr("marker-start","url("+h+"#"+B.ERMarkers.ONLY_ONE_START+")");break;case l.db.Cardinality.MD_PARENT:o.attr("marker-start","url("+h+"#"+B.ERMarkers.MD_PARENT_START+")");break}const _=o.node().getTotalLength(),m=o.node().getPointAtLength(_*.5),g="rel"+ct,y=t.append("text").classed("er relationshipLabel",!0).attr("id",g).attr("x",m.x).attr("y",m.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Z().fontFamily).style("font-size",k.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+g).classed("er relationshipLabelBox",!0).attr("x",m.x-y.width/2).attr("y",m.y-y.height/2).attr("width",y.width).attr("height",y.height)},ne=function(t,e,r,u){k=Z().er,V.info("Drawing ER diagram");const l=Z().securityLevel;let p;l==="sandbox"&&(p=rt("#i"+e));const o=(l==="sandbox"?rt(p.nodes()[0].contentDocument.body):rt("body")).select(`[id='${e}']`);B.insertMarkers(o,k);let h;h=new Mt({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:k.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});const _=ee(o,u.db.getEntities(),h),m=ie(u.db.getRelationships(),h);St(h),re(o,h),m.forEach(function(I){ae(o,I,h,_,u)});const g=k.diagramPadding;bt.insertTitle(o,"entityTitleText",k.titleTopMargin,u.db.getDiagramTitle());const x=o.node().getBBox(),y=x.width+g*2,N=x.height+g*2;Nt(o,N,y,k.useMaxWidth),o.attr("viewBox",`${x.x-g} ${x.y-g} ${y} ${N}`)},se="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function oe(t="",e=""){const r=t.replace(Jt,"");return`${ht(e)}${ht(r)}${Wt(t,se)}`}function ht(t=""){return t.length>0?`${t}-`:""}const le={setConf:$t,draw:ne},ce=t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,he=ce,ge={parser:Ut,db:jt,renderer:le,styles:he};export{ge as diagram}; diff --git a/docs/assets/chunks/flowDb-d35e309a.DEeGIpsL.js b/docs/assets/chunks/flowDb-d35e309a.DEeGIpsL.js new file mode 100644 index 0000000..418a52d --- /dev/null +++ b/docs/assets/chunks/flowDb-d35e309a.DEeGIpsL.js @@ -0,0 +1,10 @@ +import{c as et,u as me,s as ye,g as ve,a as Ve,b as Le,v as Ie,x as Re,l as J1,y as dt,z as Ne,j as we,h as w1}from"../app.Dv4846sG.js";var pt=function(){var e=function(f1,a,o,f){for(o=o||{},f=f1.length;f--;o[f1[f]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],w=[1,16],X=[1,23],o1=[1,25],p1=[1,26],A1=[1,27],C=[1,49],k=[1,48],l1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],x=[1,44],B=[1,46],m=[1,42],y=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],Y1=[1,34],j1=[1,35],z1=[1,36],X1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],q=[1,61],Q=[1,60],Z=[1,62],H1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],S1=[1,87],C1=[1,94],_1=[1,90],x1=[1,95],B1=[1,86],W1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],St=[1,145],Ct=[1,130],_t=[1,132],xt=[1,136],Bt=[1,137],mt=[1,138],yt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],wt=[1,134],Ot=[1,129],Pt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],p=[1,169],O=[1,165],P=[1,166],A=[1,170],d=[1,167],E=[1,168],m1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],h1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],J=[1,235],$=[1,233],t1=[1,237],e1=[1,231],s1=[1,232],u1=[1,234],i1=[1,236],r1=[1,238],y1=[1,255],Kt=[8,9,11,103],W=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeperator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,verticeStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,f,r,S,t,N1){var s=t.length-1;switch(S){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var Y=r.destructLink(t[s],t[s-2]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var Y=r.destructLink(t[s]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:q,9:Q,11:Z,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:q,9:Q,11:Z,21:66},{8:q,9:Q,11:Z,21:67},{8:q,9:Q,11:Z,21:68},{8:q,9:Q,11:Z,21:69},{8:q,9:Q,11:Z,21:70},{8:q,9:Q,10:[1,71],11:Z,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(H1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(W1,[2,47]),e(W1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:C,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:St,42:Ct,58:_t,73:xt,77:[1,124],78:[1,125],80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(H1,[2,45],{42:Gt}),{42:C,45:150,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:C,45:154,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{42:C,45:155,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:C,45:162,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:171,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:174,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:175,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:176,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:181,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:182,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:183,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(H1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(m1,[2,73]),e(m1,[2,75]),e(m1,[2,76]),e(m1,[2,161]),e(m1,[2,162]),{8:q,9:Q,10:gt,11:Z,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:St,42:Ct,58:_t,73:xt,80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,193],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:I1,18:194},{10:[1,195],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(W1,[2,50],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:p,79:208,113:A,114:d,115:E},e(h1,[2,79]),e(h1,[2,81]),e(h1,[2,82]),e(h1,[2,146]),e(h1,[2,147]),e(h1,[2,148]),e(h1,[2,149]),{47:[1,209],65:p,79:208,113:A,114:d,115:E},{30:210,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{49:[1,211],65:p,79:208,113:A,114:d,115:E},{51:[1,212],65:p,79:208,113:A,114:d,115:E},{53:[1,213],65:p,79:208,113:A,114:d,115:E},{55:[1,214],65:p,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:p,79:208,113:A,114:d,115:E},{64:[1,217],65:p,79:208,113:A,114:d,115:E},{30:218,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{31:[1,219],65:p,79:208,113:A,114:d,115:E},{65:p,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:p,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(H1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:p,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(m1,[2,74]),{30:225,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{10:J,58:$,81:t1,89:228,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:239,101:[1,240],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:241,101:[1,242],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{102:[1,243]},{10:J,58:$,81:t1,89:244,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{42:C,45:245,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(h1,[2,80]),e(N,[2,52]),{49:[1,250],65:p,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:p,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,254],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(W1,[2,48]),e(T,[2,114],{103:y1}),e(Kt,[2,123],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(W,[2,125]),e(W,[2,127]),e(W,[2,128]),e(W,[2,129]),e(W,[2,130]),e(W,[2,131]),e(W,[2,132]),e(W,[2,133]),e(W,[2,134]),e(T,[2,115],{103:y1}),{10:[1,257]},e(T,[2,116],{103:y1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:y1}),e(T,[2,99],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:q,9:Q,11:Z,21:264},e(b,[2,34]),{10:J,58:$,81:t1,102:e1,104:265,105:230,106:s1,107:u1,108:i1,109:r1},e(W,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,107]),{31:[1,273],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,274],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:J,58:$,81:t1,89:275,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:276,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:y1}),e(T,[2,118],{103:y1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var f=new Error(a);throw f.hash=o,f}},parse:function(a){var o=this,f=[0],r=[],S=[null],t=[],N1=this.table,s="",Y=0,Yt=0,Ce=2,jt=1,_e=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var xe=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var a1;return a1=r.pop()||_.lex()||jt,typeof a1!="number"&&(a1 instanceof Array&&(r=a1,a1=r.pop()),a1=o.symbols_[a1]||a1),a1}for(var G,E1,j,ht,v1={},q1,n1,zt,Q1;;){if(E1=f[f.length-1],this.defaultActions[E1]?j=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Be()),j=N1[E1]&&N1[E1][G]),typeof j>"u"||!j.length||!j[0]){var ft="";Q1=[];for(q1 in N1[E1])this.terminals_[q1]&&q1>Ce&&Q1.push("'"+this.terminals_[q1]+"'");_.showPosition?ft="Parse error on line "+(Y+1)+`: +`+_.showPosition()+` +Expecting `+Q1.join(", ")+", got '"+(this.terminals_[G]||G)+"'":ft="Parse error on line "+(Y+1)+": Unexpected "+(G==jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(ft,{text:_.match,token:this.terminals_[G]||G,line:_.yylineno,loc:lt,expected:Q1})}if(j[0]instanceof Array&&j.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E1+", token: "+G);switch(j[0]){case 1:f.push(G),S.push(_.yytext),t.push(_.yylloc),f.push(j[1]),G=null,Yt=_.yyleng,s=_.yytext,Y=_.yylineno,lt=_.yylloc;break;case 2:if(n1=this.productions_[j[1]][1],v1.$=S[S.length-n1],v1._$={first_line:t[t.length-(n1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(n1||1)].first_column,last_column:t[t.length-1].last_column},xe&&(v1._$.range=[t[t.length-(n1||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(v1,[s,Yt,Y,d1.yy,j[1],S,t].concat(_e)),typeof ht<"u")return ht;n1&&(f=f.slice(0,-1*n1*2),S=S.slice(0,-1*n1),t=t.slice(0,-1*n1)),f.push(this.productions_[j[1]][0]),S.push(v1.$),t.push(v1._$),zt=N1[f[f.length-2]][f[f.length-1]],f.push(zt);break;case 3:return!0}}return!0}},Se=function(){var f1={EOF:1,parseError:function(o,f){if(this.yy.parser)this.yy.parser.parseError(o,f);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,f=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===r.length?this.yylloc.first_column:0)+r[r.length-f.length].length-f[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+o+"^"},test_match:function(a,o){var f,r,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),r=a[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],f=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var t in S)this[t]=S[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,o,f,r;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),t=0;to[0].length)){if(o=f,r=t,this.options.backtrack_lexer){if(a=this.test_match(f,S[t]),a!==!1)return a;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(a=this.test_match(o,S[r]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(o,f,r,S){switch(r){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:this.begin("callbackname");break;case 8:this.popState();break;case 9:this.popState(),this.begin("callbackargs");break;case 10:return 92;case 11:this.popState();break;case 12:return 93;case 13:return"MD_STR";case 14:this.popState();break;case 15:this.begin("md_string");break;case 16:return"STR";case 17:this.popState();break;case 18:this.pushState("string");break;case 19:return 81;case 20:return 99;case 21:return 82;case 22:return 101;case 23:return 83;case 24:return 84;case 25:return 94;case 26:this.begin("click");break;case 27:this.popState();break;case 28:return 85;case 29:return o.lex.firstGraph()&&this.begin("dir"),12;case 30:return o.lex.firstGraph()&&this.begin("dir"),12;case 31:return o.lex.firstGraph()&&this.begin("dir"),12;case 32:return 27;case 33:return 32;case 34:return 95;case 35:return 95;case 36:return 95;case 37:return 95;case 38:return this.popState(),13;case 39:return this.popState(),14;case 40:return this.popState(),14;case 41:return this.popState(),14;case 42:return this.popState(),14;case 43:return this.popState(),14;case 44:return this.popState(),14;case 45:return this.popState(),14;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return 118;case 50:return 119;case 51:return 120;case 52:return 121;case 53:return 102;case 54:return 108;case 55:return 44;case 56:return 58;case 57:return 42;case 58:return 8;case 59:return 103;case 60:return 112;case 61:return this.popState(),75;case 62:return this.pushState("edgeText"),73;case 63:return 116;case 64:return this.popState(),75;case 65:return this.pushState("thickEdgeText"),73;case 66:return 116;case 67:return this.popState(),75;case 68:return this.pushState("dottedEdgeText"),73;case 69:return 116;case 70:return 75;case 71:return this.popState(),51;case 72:return"TEXT";case 73:return this.pushState("ellipseText"),50;case 74:return this.popState(),53;case 75:return this.pushState("text"),52;case 76:return this.popState(),55;case 77:return this.pushState("text"),54;case 78:return 56;case 79:return this.pushState("text"),65;case 80:return this.popState(),62;case 81:return this.pushState("text"),61;case 82:return this.popState(),47;case 83:return this.pushState("text"),46;case 84:return this.popState(),67;case 85:return this.popState(),69;case 86:return 114;case 87:return this.pushState("trapText"),66;case 88:return this.pushState("trapText"),68;case 89:return 115;case 90:return 65;case 91:return 87;case 92:return"SEP";case 93:return 86;case 94:return 112;case 95:return 108;case 96:return 42;case 97:return 106;case 98:return 111;case 99:return 113;case 100:return this.popState(),60;case 101:return this.pushState("text"),60;case 102:return this.popState(),49;case 103:return this.pushState("text"),48;case 104:return this.popState(),31;case 105:return this.pushState("text"),29;case 106:return this.popState(),64;case 107:return this.pushState("text"),63;case 108:return"TEXT";case 109:return"QUOTE";case 110:return 9;case 111:return 10;case 112:return 11}},rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{callbackargs:{rules:[11,12,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},callbackname:{rules:[8,9,10,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},href:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},click:{rules:[15,18,27,28,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dottedEdgeText:{rules:[15,18,67,69,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},thickEdgeText:{rules:[15,18,64,66,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},edgeText:{rules:[15,18,61,63,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},trapText:{rules:[15,18,70,73,75,77,81,83,84,85,86,87,88,101,103,105,107],inclusive:!1},ellipseText:{rules:[15,18,70,71,72,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},text:{rules:[15,18,70,73,74,75,76,77,80,81,82,83,87,88,100,101,102,103,104,105,106,107,108],inclusive:!1},vertex:{rules:[15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},dir:{rules:[15,18,38,39,40,41,42,43,44,45,46,47,48,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr_multiline:{rules:[5,6,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_descr:{rules:[3,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},acc_title:{rules:[1,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},md_string:{rules:[13,14,15,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},string:{rules:[15,16,17,18,70,73,75,77,81,83,87,88,101,103,105,107],inclusive:!1},INITIAL:{rules:[0,2,4,7,15,18,19,20,21,22,23,24,25,26,29,30,31,32,33,34,35,36,37,49,50,51,52,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,73,75,77,78,79,81,83,87,88,89,90,91,92,93,94,95,96,97,98,99,101,103,105,107,109,110,111,112],inclusive:!0}}};return f1}();at.lexer=Se;function ct(){this.yy={}}return ct.prototype=at,at.Parser=ct,new ct}();pt.parser=pt;const Xe=pt,Oe="flowchart-";let Xt=0,L1=et(),D={},H=[],V1={},c1=[],$1={},tt={},Z1=0,At=!0,z,st,ut=[];const it=e=>we.sanitizeText(e,L1),P1=function(e){const u=Object.keys(D);for(const i of u)if(D[i].id===e)return D[i].domId;return e},Ht=function(e,u,i,n,c,l,h={}){let U,F=e;F!==void 0&&F.trim().length!==0&&(D[F]===void 0&&(D[F]={id:F,labelType:"text",domId:Oe+F+"-"+Xt,styles:[],classes:[]}),Xt++,u!==void 0?(L1=et(),U=it(u.text.trim()),D[F].labelType=u.type,U[0]==='"'&&U[U.length-1]==='"'&&(U=U.substring(1,U.length-1)),D[F].text=U):D[F].text===void 0&&(D[F].text=e),i!==void 0&&(D[F].type=i),n!=null&&n.forEach(function(w){D[F].styles.push(w)}),c!=null&&c.forEach(function(w){D[F].classes.push(w)}),l!==void 0&&(D[F].dir=l),D[F].props===void 0?D[F].props=h:h!==void 0&&Object.assign(D[F].props,h))},Wt=function(e,u,i){const l={start:e,end:u,type:void 0,text:"",labelType:"text"};J1.info("abc78 Got edge...",l);const h=i.text;if(h!==void 0&&(l.text=it(h.text.trim()),l.text[0]==='"'&&l.text[l.text.length-1]==='"'&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=h.type),i!==void 0&&(l.type=i.type,l.stroke=i.stroke,l.length=i.length),(l==null?void 0:l.length)>10&&(l.length=10),H.length<(L1.maxEdges??500))J1.info("abc78 pushing edge..."),H.push(l);else throw new Error(`Edge limit exceeded. ${H.length} edges found, but the limit is ${L1.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},qt=function(e,u,i){J1.info("addLink (abc78)",e,u,i);let n,c;for(n=0;n=H.length)throw new Error(`The index ${i} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${H.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);i==="default"?H.defaultStyle=u:(dt.isSubstringInArray("fill",u)===-1&&u.push("fill:none"),H[i].style=u)})},Jt=function(e,u){e.split(",").forEach(function(i){V1[i]===void 0&&(V1[i]={id:i,styles:[],textStyles:[]}),u!=null&&u.forEach(function(n){if(n.match("color")){const c=n.replace("fill","bgFill").replace("color","fill");V1[i].textStyles.push(c)}V1[i].styles.push(n)})})},$t=function(e){z=e,z.match(/.*/)&&(z="LR"),z.match(/.*v/)&&(z="TB"),z==="TD"&&(z="TB")},rt=function(e,u){e.split(",").forEach(function(i){let n=i;D[n]!==void 0&&D[n].classes.push(u),$1[n]!==void 0&&$1[n].classes.push(u)})},Pe=function(e,u){e.split(",").forEach(function(i){u!==void 0&&(tt[st==="gen-1"?P1(i):i]=it(u))})},Ue=function(e,u,i){let n=P1(e);if(et().securityLevel!=="loose"||u===void 0)return;let c=[];if(typeof i=="string"){c=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let l=0;l")),c.classed("hover",!0)}).on("mouseout",function(){u.transition().duration(500).style("opacity",0),w1(this).classed("hover",!1)})};ut.push(ce);const oe=function(e="gen-1"){D={},V1={},H=[],ut=[ce],c1=[],$1={},Z1=0,tt={},At=!0,st=e,L1=et(),Ne()},le=e=>{st=e||"gen-2"},he=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},fe=function(e,u,i){let n=e.text.trim(),c=i.text;e===i&&i.text.match(/\s/)&&(n=void 0);function l(X){const o1={boolean:{},number:{},string:{}},p1=[];let A1;return{nodeList:X.filter(function(k){const l1=typeof k;return k.stmt&&k.stmt==="dir"?(A1=k.value,!1):k.trim()===""?!1:l1 in o1?o1[l1].hasOwnProperty(k)?!1:o1[l1][k]=!0:p1.includes(k)?!1:p1.push(k)}),dir:A1}}let h=[];const{nodeList:U,dir:F}=l(h.concat.apply(h,u));if(h=U,st==="gen-1")for(let X=0;X2e3)return;if(pe[O1]=u,c1[u].id===e)return{result:!0,count:0};let n=0,c=1;for(;n=0){const h=Ae(e,l);if(h.result)return{result:!0,count:c+h.count};c=c+h.count}n=n+1}return{result:!1,count:c}},de=function(e){return pe[e]},Ee=function(){O1=-1,c1.length>0&&Ae("none",c1.length-1)},ke=function(){return c1},be=()=>At?(At=!1,!0):!1,Me=e=>{let u=e.trim(),i="arrow_open";switch(u[0]){case"<":i="arrow_point",u=u.slice(1);break;case"x":i="arrow_cross",u=u.slice(1);break;case"o":i="arrow_circle",u=u.slice(1);break}let n="normal";return u.includes("=")&&(n="thick"),u.includes(".")&&(n="dotted"),{type:i,stroke:n}},Ke=(e,u)=>{const i=u.length;let n=0;for(let c=0;c{const u=e.trim();let i=u.slice(0,-1),n="arrow_open";switch(u.slice(-1)){case"x":n="arrow_cross",u[0]==="x"&&(n="double_"+n,i=i.slice(1));break;case">":n="arrow_point",u[0]==="<"&&(n="double_"+n,i=i.slice(1));break;case"o":n="arrow_circle",u[0]==="o"&&(n="double_"+n,i=i.slice(1));break}let c="normal",l=i.length-1;i[0]==="="&&(c="thick"),i[0]==="~"&&(c="invisible");let h=Ke(".",i);return h&&(c="dotted",l=h),{type:n,stroke:c,length:l}},ge=(e,u)=>{const i=Ye(e);let n;if(u){if(n=Me(u),n.stroke!==i.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=i.type;else{if(n.type!==i.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=i.length,n}return i},De=(e,u)=>{let i=!1;return e.forEach(n=>{n.nodes.indexOf(u)>=0&&(i=!0)}),i},Fe=(e,u)=>{const i=[];return e.nodes.forEach((n,c)=>{De(u,n)||i.push(e.nodes[c])}),{nodes:i}},Te={firstGraph:be},je={defaultConfig:()=>me.flowchart,setAccTitle:ye,getAccTitle:ve,getAccDescription:Ve,setAccDescription:Le,addVertex:Ht,lookUpDomId:P1,addLink:qt,updateLinkInterpolate:Qt,updateLink:Zt,addClass:Jt,setDirection:$t,setClass:rt,setTooltip:Pe,getTooltip:ee,setClickEvent:se,setLink:te,bindFunctions:ue,getDirection:ie,getVertices:re,getEdges:ne,getClasses:ae,clear:oe,setGen:le,defaultStyle:he,addSubGraph:fe,getDepthFirstPos:de,indexNodes:Ee,getSubGraphs:ke,destructLink:ge,lex:Te,exists:De,makeUniq:Fe,setDiagramTitle:Ie,getDiagramTitle:Re},He=Object.freeze(Object.defineProperty({__proto__:null,addClass:Jt,addLink:qt,addSingleLink:Wt,addSubGraph:fe,addVertex:Ht,bindFunctions:ue,clear:oe,default:je,defaultStyle:he,destructLink:ge,firstGraph:be,getClasses:ae,getDepthFirstPos:de,getDirection:ie,getEdges:ne,getSubGraphs:ke,getTooltip:ee,getVertices:re,indexNodes:Ee,lex:Te,lookUpDomId:P1,setClass:rt,setClickEvent:se,setDirection:$t,setGen:le,setLink:te,updateLink:Zt,updateLinkInterpolate:Qt},Symbol.toStringTag,{value:"Module"}));export{He as d,je as f,Xe as p}; diff --git a/docs/assets/chunks/flowDiagram-d949d7c1.De0ce681.js b/docs/assets/chunks/flowDiagram-d949d7c1.De0ce681.js new file mode 100644 index 0000000..c1ffc9f --- /dev/null +++ b/docs/assets/chunks/flowDiagram-d949d7c1.De0ce681.js @@ -0,0 +1,4 @@ +import{p as St,f as W}from"./flowDb-d35e309a.DEeGIpsL.js";import{h as S,f as tt,G as Lt}from"./graph.CEI0PYYp.js";import{h as x,o as P,p as z,q as et,c as J,j as rt,l as R,r as V,t as Et}from"../app.Dv4846sG.js";import{u as _t,r as Tt,p as Nt,l as At,d as M}from"./layout.B9Jo_8FM.js";import{a as N,b as at,i as nt,c as _,e as st,d as it,f as Ct,g as It,s as Bt}from"./styles-7383a064.BrpX0uYj.js";import{l as Mt}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./index-8fae9850.AUF3rEmQ.js";import"./clone.D_kVq7Za.js";import"./edges-d417c7a0.DU1W7dRA.js";import"./createText-423428c9.B39V2kZ0.js";import"./channel.CoK99RiJ.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";function Dt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Rt(r,e){return fetch(r,e).then(Dt)}function Gt(r){return(e,t)=>Rt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Pt=Gt("image/svg+xml"),Y={normal:$t,vee:Wt,undirected:Vt};function Ut(r){Y=r}function $t(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Yt(r,e){for(var t=r.append("text"),n=Ht(e.label).split(` +`),a=0;a0}function T(r,e,t){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(p){i=Math.min(i,p.x),o=Math.min(o,p.y)});for(var c=n-r.width/2-i,d=a-r.height/2-o,l=0;l1&&s.sort(function(p,g){var f=p.x-t.x,y=p.y-t.y,k=Math.sqrt(f*f+y*y),I=g.x-t.x,E=g.y-t.y,U=Math.sqrt(I*I+E*E);return kMath.abs(a)*o?(s<0&&(o=-o),c=s===0?0:o*a/s,d=o):(a<0&&(i=-i),c=i,d=a===0?0:i*s/a),{x:t+c,y:n+d}}var Q={rect:ie,ellipse:oe,circle:le,diamond:ce};function se(r){Q=r}function ie(r,e,t){var n=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(a){return Z(t,a)},n}function oe(r,e,t){var n=e.width/2,a=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",n).attr("ry",a);return t.intersect=function(i){return lt(t,n,a,i)},s}function le(r,e,t){var n=Math.max(e.width,e.height)/2,a=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",n);return t.intersect=function(s){return ae(t,n,s)},a}function ce(r,e,t){var n=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,s=[{x:0,y:-a},{x:-n,y:0},{x:0,y:a},{x:n,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return T(t,s,o)},i}function de(){var r=function(e,t){fe(t);var n=D(e,"output"),a=D(n,"clusters"),s=D(n,"edgePaths"),i=X(D(n,"edgeLabels"),t),o=q(D(n,"nodes"),t,Q);At(t),re(o,t),ee(i,t),F(s,t,Y);var c=H(a,t);te(c,t),pe(t)};return r.createNodes=function(e){return arguments.length?(jt(e),r):q},r.createClusters=function(e){return arguments.length?(Xt(e),r):H},r.createEdgeLabels=function(e){return arguments.length?(Ft(e),r):X},r.createEdgePaths=function(e){return arguments.length?(qt(e),r):F},r.shapes=function(e){return arguments.length?(se(e),r):Q},r.arrows=function(e){return arguments.length?(Ut(e),r):Y},r}var he={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},ue={arrowhead:"normal",curve:P};function fe(r){r.nodes().forEach(function(e){var t=r.node(e);!S(t,"label")&&!r.children(e).length&&(t.label=e),S(t,"paddingX")&&M(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),S(t,"paddingY")&&M(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),S(t,"padding")&&M(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),M(t,he),tt(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(n){t[n]=Number(t[n])}),S(t,"width")&&(t._prevWidth=t.width),S(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);S(t,"label")||(t.label=""),M(t,ue)})}function pe(r){tt(r.nodes(),function(e){var t=r.node(e);S(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,S(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function D(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function ct(r,e,t){const n=e.width,a=e.height,s=(n+a)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=A(r,s,s,i);return t.intersect=function(c){return T(t,i,c)},o}function dt(r,e,t){const a=e.height,s=a/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],c=A(r,i,a,o);return t.intersect=function(d){return T(t,o,d)},c}function ht(r,e,t){const n=e.width,a=e.height,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ut(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ft(r,e,t){const n=e.width,a=e.height,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function pt(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function vt(r,e,t){const n=e.width,a=e.height,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function yt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function gt(r,e,t){const n=e.height,a=e.width+n/4,s=r.insert("rect",":first-child").attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return t.intersect=function(i){return Z(t,i)},s}function mt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function wt(r,e,t){const n=e.width,a=n/2,s=a/(2.5+n/50),i=e.height+s,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+i+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-n/2+","+-(i/2+s)+")");return t.intersect=function(d){const l=Z(t,d),v=l.x-t.x;if(a!=0&&(Math.abs(v)t.height/2-s)){let h=s*s*(1-v*v/(a*a));h!=0&&(h=Math.sqrt(h)),h=s-h,d.y-t.y>0&&(h=-h),l.y+=h}return l},c}function ve(r){r.shapes().question=ct,r.shapes().hexagon=dt,r.shapes().stadium=gt,r.shapes().subroutine=mt,r.shapes().cylinder=wt,r.shapes().rect_left_inv_arrow=ht,r.shapes().lean_right=ut,r.shapes().lean_left=ft,r.shapes().trapezoid=pt,r.shapes().inv_trapezoid=vt,r.shapes().rect_right_inv_arrow=yt}function ye(r){r({question:ct}),r({hexagon:dt}),r({stadium:gt}),r({subroutine:mt}),r({cylinder:wt}),r({rect_left_inv_arrow:ht}),r({lean_right:ut}),r({lean_left:ft}),r({trapezoid:pt}),r({inv_trapezoid:vt}),r({rect_right_inv_arrow:yt})}function A(r,e,t,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const ge={addToRender:ve,addToRenderV2:ye},xt={},me=function(r){const e=Object.keys(r);for(const t of e)xt[t]=r[t]},bt=function(r,e,t,n,a,s){const i=n?n.select(`[id="${t}"]`):x(`[id="${t}"]`),o=a||document;Object.keys(r).forEach(function(d){const l=r[d];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=z(l.styles);let u=l.text!==void 0?l.text:l.id,p;if(et(J().flowchart.htmlLabels)){const y={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};p=at(i,y).node(),p.parentNode.removeChild(p)}else{const y=o.createElementNS("http://www.w3.org/2000/svg","text");y.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=u.split(rt.lineBreakRegex);for(const I of k){const E=o.createElementNS("http://www.w3.org/2000/svg","tspan");E.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),E.setAttribute("dy","1em"),E.setAttribute("x","1"),E.textContent=I,y.appendChild(E)}p=y}let g=0,f="";switch(l.type){case"round":g=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}R.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:p,rx:g,ry:g,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})})},kt=function(r,e,t){let n=0,a,s;if(r.defaultStyle!==void 0){const i=z(r.defaultStyle);a=i.style,s=i.labelStyle}r.forEach(function(i){n++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,d="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const u=z(i.style);v=u.style,h=u.labelStyle}else switch(i.stroke){case"normal":v="fill:none",a!==void 0&&(v=a),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=V(i.interpolate,P):r.defaultInterpolate!==void 0?l.curve=V(r.defaultInterpolate,P):l.curve=V(xt.curve,P),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",et(J().flowchart.htmlLabels)?(l.labelType="html",l.label=`${i.text.replace(/fa[blrs]?:fa-[\w-]+/g,u=>``)}`):(l.labelType="text",l.label=i.text.replace(rt.lineBreakRegex,` +`),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+d,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,n)})},we=function(r,e){return R.info("Extracting classes"),e.db.getClasses()},xe=function(r,e,t,n){R.info("Drawing flowchart");const{securityLevel:a,flowchart:s}=J();let i;a==="sandbox"&&(i=x("#i"+e));const o=a==="sandbox"?x(i.nodes()[0].contentDocument.body):x("body"),c=a==="sandbox"?i.nodes()[0].contentDocument:document;let d=n.db.getDirection();d===void 0&&(d="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new Lt({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let u;const p=n.db.getSubGraphs();for(let m=p.length-1;m>=0;m--)u=p[m],n.db.addVertex(u.id,u.title,"group",void 0,u.classes);const g=n.db.getVertices();R.warn("Get vertices",g);const f=n.db.getEdges();let y=0;for(y=p.length-1;y>=0;y--){u=p[y],Bt("cluster").append("text");for(let m=0;m{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,be.setConf(r.flowchart),W.clear(),W.setGen("gen-1")}};export{Pe as diagram}; diff --git a/docs/assets/chunks/flowDiagram-v2-49332944.BWsty62j.js b/docs/assets/chunks/flowDiagram-v2-49332944.BWsty62j.js new file mode 100644 index 0000000..301e9b0 --- /dev/null +++ b/docs/assets/chunks/flowDiagram-v2-49332944.BWsty62j.js @@ -0,0 +1 @@ +import{p as e,f as o}from"./flowDb-d35e309a.DEeGIpsL.js";import{f as t,g as a}from"./styles-7383a064.BrpX0uYj.js";import{aq as i}from"../app.Dv4846sG.js";import"./graph.CEI0PYYp.js";import"./layout.B9Jo_8FM.js";import"./index-8fae9850.AUF3rEmQ.js";import"./clone.D_kVq7Za.js";import"./edges-d417c7a0.DU1W7dRA.js";import"./createText-423428c9.B39V2kZ0.js";import"./line._MqlDceE.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";import"./channel.CoK99RiJ.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";const c={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{c as diagram}; diff --git a/docs/assets/chunks/flowchart-elk-definition-27cc417a.7uNOilH3.js b/docs/assets/chunks/flowchart-elk-definition-27cc417a.7uNOilH3.js new file mode 100644 index 0000000..d715bc7 --- /dev/null +++ b/docs/assets/chunks/flowchart-elk-definition-27cc417a.7uNOilH3.js @@ -0,0 +1,139 @@ +import{d as xNe,p as FNe}from"./flowDb-d35e309a.DEeGIpsL.js";import{b0 as Nse,b1 as BNe,l as Ra,h as IO,aZ as xU,t as RNe,p as E0n,r as j0n,o as $U,j as KNe}from"../app.Dv4846sG.js";import{i as _Ne,a as HNe,l as qNe,b as UNe,k as GNe,m as zNe}from"./edges-d417c7a0.DU1W7dRA.js";import{l as XNe}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./createText-423428c9.B39V2kZ0.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";function NU(ct){throw new Error('Could not dynamically require "'+ct+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Bse={exports:{}};(function(ct,_t){(function(Xt){ct.exports=Xt()})(function(){return function(){function Xt(gt,Sr,Di){function y(Ht,Jt){if(!Sr[Ht]){if(!gt[Ht]){var Xe=typeof NU=="function"&&NU;if(!Jt&&Xe)return Xe(Ht,!0);if(Wt)return Wt(Ht,!0);var Yi=new Error("Cannot find module '"+Ht+"'");throw Yi.code="MODULE_NOT_FOUND",Yi}var Ri=Sr[Ht]={exports:{}};gt[Ht][0].call(Ri.exports,function(En){var hu=gt[Ht][1][En];return y(hu||En)},Ri,Ri.exports,Xt,gt,Sr,Di)}return Sr[Ht].exports}for(var Wt=typeof NU=="function"&&NU,Bu=0;Bu0&&arguments[0]!==void 0?arguments[0]:{},Yi=Xe.defaultLayoutOptions,Ri=Yi===void 0?{}:Yi,En=Xe.algorithms,hu=En===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:En,Qc=Xe.workerFactory,Ru=Xe.workerUrl;if(y(this,Ht),this.defaultLayoutOptions=Ri,this.initialized=!1,typeof Ru>"u"&&typeof Qc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Pr=Qc;typeof Ru<"u"&&typeof Qc>"u"&&(Pr=function(N1){return new Worker(N1)});var Mf=Pr(Ru);if(typeof Mf.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new Bu(Mf),this.worker.postMessage({cmd:"register",algorithms:hu}).then(function(L1){return Jt.initialized=!0}).catch(console.err)}return Di(Ht,[{key:"layout",value:function(Xe){var Yi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ri=Yi.layoutOptions,En=Ri===void 0?this.defaultLayoutOptions:Ri,hu=Yi.logging,Qc=hu===void 0?!1:hu,Ru=Yi.measureExecutionTime,Pr=Ru===void 0?!1:Ru;return Xe?this.worker.postMessage({cmd:"layout",graph:Xe,layoutOptions:En,options:{logging:Qc,measureExecutionTime:Pr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),Ht}();Sr.default=Wt;var Bu=function(){function Ht(Jt){var Xe=this;if(y(this,Ht),Jt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=Jt,this.worker.onmessage=function(Yi){setTimeout(function(){Xe.receive(Xe,Yi)},0)}}return Di(Ht,[{key:"postMessage",value:function(Xe){var Yi=this.id||0;this.id=Yi+1,Xe.id=Yi;var Ri=this;return new Promise(function(En,hu){Ri.resolvers[Yi]=function(Qc,Ru){Qc?(Ri.convertGwtStyleError(Qc),hu(Qc)):En(Ru)},Ri.worker.postMessage(Xe)})}},{key:"receive",value:function(Xe,Yi){var Ri=Yi.data,En=Xe.resolvers[Ri.id];En&&(delete Xe.resolvers[Ri.id],Ri.error?En(Ri.error):En(null,Ri.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(Xe){if(Xe){var Yi=Xe.__java$exception;Yi&&(Yi.cause&&Yi.cause.backingJsObject&&(Xe.cause=Yi.cause.backingJsObject,this.convertGwtStyleError(Xe.cause)),delete Xe.__java$exception)}}}]),Ht}()},{}],2:[function(Xt,gt,Sr){(function(Di){(function(){var y;typeof window<"u"?y=window:typeof Di<"u"?y=Di:typeof self<"u"&&(y=self);var Wt;function Bu(){}function Ht(){}function Jt(){}function Xe(){}function Yi(){}function Ri(){}function En(){}function hu(){}function Qc(){}function Ru(){}function Pr(){}function Mf(){}function L1(){}function N1(){}function og(){}function V3(){}function $1(){}function ul(){}function C0n(){}function M0n(){}function Q2(){}function F(){}function T0n(){}function mE(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function FU(){}function D0n(){}function L0n(){}function N0n(){}function OO(){}function $0n(){}function x0n(){}function F0n(){}function DO(){}function B0n(){}function R0n(){}function BU(){}function K0n(){}function _0n(){}function yu(){}function ju(){}function Y2(){}function Z2(){}function H0n(){}function q0n(){}function U0n(){}function G0n(){}function RU(){}function Eu(){}function np(){}function ep(){}function z0n(){}function X0n(){}function LO(){}function V0n(){}function W0n(){}function J0n(){}function Q0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function obn(){}function sbn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function mbn(){}function vbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Mbn(){}function Tbn(){}function KU(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function NO(){}function $O(){}function vE(){}function Obn(){}function Dbn(){}function xO(){}function Lbn(){}function Nbn(){}function $bn(){}function kE(){}function xbn(){}function Fbn(){}function Bbn(){}function Rbn(){}function Kbn(){}function _bn(){}function Hbn(){}function qbn(){}function Ubn(){}function _U(){}function Gbn(){}function zbn(){}function HU(){}function Xbn(){}function Vbn(){}function Wbn(){}function Jbn(){}function Qbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function FO(){}function uwn(){}function own(){}function swn(){}function fwn(){}function hwn(){}function lwn(){}function awn(){}function dwn(){}function bwn(){}function qU(){}function UU(){}function wwn(){}function gwn(){}function pwn(){}function mwn(){}function vwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Mwn(){}function Twn(){}function Awn(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function Lwn(){}function Nwn(){}function $wn(){}function xwn(){}function Fwn(){}function Bwn(){}function Rwn(){}function Kwn(){}function _wn(){}function Hwn(){}function qwn(){}function Uwn(){}function Gwn(){}function zwn(){}function Xwn(){}function Vwn(){}function Wwn(){}function Jwn(){}function Qwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function ogn(){}function sgn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function mgn(){}function vgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Mgn(){}function Tgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function Lgn(){}function Ngn(){}function $gn(){}function xgn(){}function Fgn(){}function Bgn(){}function Rgn(){}function Kgn(){}function _gn(){}function Hgn(){}function qgn(){}function Ugn(){}function Ggn(){}function zgn(){}function Xgn(){}function Vgn(){}function Wgn(){}function Jgn(){}function Qgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function t2n(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function GU(){}function o2n(){}function s2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function m2n(){}function v2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function C2n(){}function M2n(){}function T2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function L2n(){}function N2n(){}function $2n(){}function x2n(){}function F2n(){}function B2n(){}function R2n(){}function K2n(){}function _2n(){}function H2n(){}function q2n(){}function U2n(){}function G2n(){}function z2n(){}function X2n(){}function V2n(){}function W2n(){}function J2n(){}function Q2n(){}function Y2n(){}function Z2n(){}function npn(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function opn(){}function spn(){}function fpn(){}function hpn(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function mpn(){}function vpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Mpn(){}function zU(){}function Tpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function Lpn(){}function Npn(){}function $pn(){}function XU(){}function xpn(){}function Fpn(){}function Bpn(){}function Rpn(){}function Kpn(){}function _pn(){}function VU(){}function WU(){}function Hpn(){}function JU(){}function QU(){}function qpn(){}function Upn(){}function Gpn(){}function zpn(){}function Xpn(){}function Vpn(){}function Wpn(){}function Jpn(){}function Qpn(){}function Ypn(){}function Zpn(){}function YU(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function o3n(){}function s3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function m3n(){}function v3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function M3n(){}function T3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function L3n(){}function N3n(){}function $3n(){}function x3n(){}function F3n(){}function B3n(){}function R3n(){}function K3n(){}function _3n(){}function H3n(){}function q3n(){}function U3n(){}function G3n(){}function z3n(){}function X3n(){}function V3n(){}function W3n(){}function J3n(){}function Q3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function r4n(){}function c4n(){}function u4n(){}function o4n(){}function s4n(){}function f4n(){}function h4n(){}function l4n(){}function a4n(){}function d4n(){}function b4n(){}function w4n(){}function g4n(){}function p4n(){}function m4n(){}function v4n(){}function k4n(){}function y4n(){}function j4n(){}function E4n(){}function C4n(){}function M4n(){}function T4n(){}function A4n(){}function S4n(){}function P4n(){}function I4n(){}function O4n(){}function _se(){}function D4n(){}function L4n(){}function N4n(){}function $4n(){}function x4n(){}function F4n(){}function B4n(){}function R4n(){}function K4n(){}function _4n(){}function H4n(){}function q4n(){}function U4n(){}function G4n(){}function z4n(){}function X4n(){}function V4n(){}function W4n(){}function J4n(){}function Q4n(){}function Y4n(){}function Z4n(){}function nmn(){}function emn(){}function tmn(){}function imn(){}function rmn(){}function BO(){}function RO(){}function cmn(){}function KO(){}function umn(){}function omn(){}function smn(){}function fmn(){}function hmn(){}function lmn(){}function amn(){}function dmn(){}function bmn(){}function wmn(){}function ZU(){}function gmn(){}function pmn(){}function mmn(){}function Hse(){}function vmn(){}function kmn(){}function ymn(){}function jmn(){}function Emn(){}function Cmn(){}function Mmn(){}function Ka(){}function Tmn(){}function tp(){}function nG(){}function Amn(){}function Smn(){}function Pmn(){}function Imn(){}function Omn(){}function Dmn(){}function Lmn(){}function Nmn(){}function $mn(){}function xmn(){}function Fmn(){}function Bmn(){}function Rmn(){}function Kmn(){}function _mn(){}function Hmn(){}function qmn(){}function Umn(){}function Gmn(){}function hn(){}function zmn(){}function Xmn(){}function Vmn(){}function Wmn(){}function Jmn(){}function Qmn(){}function Ymn(){}function Zmn(){}function nvn(){}function evn(){}function tvn(){}function ivn(){}function rvn(){}function _O(){}function cvn(){}function uvn(){}function ovn(){}function yE(){}function svn(){}function HO(){}function jE(){}function fvn(){}function eG(){}function hvn(){}function lvn(){}function avn(){}function dvn(){}function bvn(){}function wvn(){}function EE(){}function gvn(){}function pvn(){}function CE(){}function mvn(){}function ME(){}function vvn(){}function tG(){}function kvn(){}function qO(){}function iG(){}function yvn(){}function jvn(){}function Evn(){}function Cvn(){}function qse(){}function Mvn(){}function Tvn(){}function Avn(){}function Svn(){}function Pvn(){}function Ivn(){}function Ovn(){}function Dvn(){}function Lvn(){}function Nvn(){}function W3(){}function UO(){}function $vn(){}function xvn(){}function Fvn(){}function Bvn(){}function Rvn(){}function Kvn(){}function _vn(){}function Hvn(){}function qvn(){}function Uvn(){}function Gvn(){}function zvn(){}function Xvn(){}function Vvn(){}function Wvn(){}function Jvn(){}function Qvn(){}function Yvn(){}function Zvn(){}function n6n(){}function e6n(){}function t6n(){}function i6n(){}function r6n(){}function c6n(){}function u6n(){}function o6n(){}function s6n(){}function f6n(){}function h6n(){}function l6n(){}function a6n(){}function d6n(){}function b6n(){}function w6n(){}function g6n(){}function p6n(){}function m6n(){}function v6n(){}function k6n(){}function y6n(){}function j6n(){}function E6n(){}function C6n(){}function M6n(){}function T6n(){}function A6n(){}function S6n(){}function P6n(){}function I6n(){}function O6n(){}function D6n(){}function L6n(){}function N6n(){}function $6n(){}function x6n(){}function F6n(){}function B6n(){}function R6n(){}function K6n(){}function _6n(){}function H6n(){}function q6n(){}function U6n(){}function G6n(){}function z6n(){}function X6n(){}function V6n(){}function W6n(){}function J6n(){}function Q6n(){}function Y6n(){}function Z6n(){}function n5n(){}function e5n(){}function t5n(){}function i5n(){}function r5n(){}function c5n(){}function u5n(){}function o5n(){}function s5n(){}function f5n(){}function h5n(){}function l5n(){}function a5n(){}function d5n(){}function b5n(){}function w5n(){}function g5n(){}function p5n(){}function m5n(){}function v5n(){}function k5n(){}function y5n(){}function j5n(){}function E5n(){}function C5n(){}function M5n(){}function T5n(){}function A5n(){}function rG(){}function S5n(){}function P5n(){}function GO(){Zv()}function I5n(){r7()}function O5n(){aA()}function D5n(){Q$()}function L5n(){C5()}function N5n(){ann()}function $5n(){Us()}function x5n(){jZ()}function F5n(){Uk()}function B5n(){c7()}function R5n(){L7()}function K5n(){aCn()}function _5n(){Hp()}function H5n(){KLn()}function q5n(){yQ()}function U5n(){SOn()}function G5n(){jQ()}function z5n(){pNn()}function X5n(){AOn()}function V5n(){cm()}function W5n(){nxn()}function J5n(){Z$n()}function Q5n(){EDn()}function Y5n(){exn()}function Z5n(){ua()}function n8n(){ZE()}function e8n(){ltn()}function t8n(){cn()}function i8n(){txn()}function r8n(){Pxn()}function c8n(){POn()}function u8n(){nKn()}function o8n(){IOn()}function s8n(){bUn()}function f8n(){qnn()}function h8n(){kl()}function l8n(){wBn()}function a8n(){lc()}function d8n(){ROn()}function b8n(){_p()}function w8n(){Men()}function g8n(){oa()}function p8n(){Ten()}function m8n(){Rf()}function v8n(){Wk()}function k8n(){EF()}function y8n(){Dx()}function uf(){wSn()}function j8n(){YM()}function E8n(){mA()}function cG(){He()}function C8n(){NT()}function M8n(){YY()}function uG(){D$()}function oG(){KA()}function T8n(){Fen()}function sG(n){Jn(n)}function A8n(n){this.a=n}function TE(n){this.a=n}function S8n(n){this.a=n}function P8n(n){this.a=n}function I8n(n){this.a=n}function O8n(n){this.a=n}function D8n(n){this.a=n}function L8n(n){this.a=n}function fG(n){this.a=n}function hG(n){this.a=n}function N8n(n){this.a=n}function $8n(n){this.a=n}function zO(n){this.a=n}function x8n(n){this.a=n}function F8n(n){this.a=n}function XO(n){this.a=n}function VO(n){this.a=n}function B8n(n){this.a=n}function WO(n){this.a=n}function R8n(n){this.a=n}function K8n(n){this.a=n}function _8n(n){this.a=n}function lG(n){this.b=n}function H8n(n){this.c=n}function q8n(n){this.a=n}function U8n(n){this.a=n}function G8n(n){this.a=n}function z8n(n){this.a=n}function X8n(n){this.a=n}function V8n(n){this.a=n}function W8n(n){this.a=n}function J8n(n){this.a=n}function Q8n(n){this.a=n}function Y8n(n){this.a=n}function Z8n(n){this.a=n}function n9n(n){this.a=n}function e9n(n){this.a=n}function aG(n){this.a=n}function dG(n){this.a=n}function AE(n){this.a=n}function U9(n){this.a=n}function _a(){this.a=[]}function t9n(n,e){n.a=e}function Use(n,e){n.a=e}function Gse(n,e){n.b=e}function zse(n,e){n.b=e}function Xse(n,e){n.b=e}function bG(n,e){n.j=e}function Vse(n,e){n.g=e}function Wse(n,e){n.i=e}function Jse(n,e){n.c=e}function Qse(n,e){n.c=e}function Yse(n,e){n.d=e}function Zse(n,e){n.d=e}function Ha(n,e){n.k=e}function nfe(n,e){n.c=e}function wG(n,e){n.c=e}function gG(n,e){n.a=e}function efe(n,e){n.a=e}function tfe(n,e){n.f=e}function ife(n,e){n.a=e}function rfe(n,e){n.b=e}function JO(n,e){n.d=e}function SE(n,e){n.i=e}function pG(n,e){n.o=e}function cfe(n,e){n.r=e}function ufe(n,e){n.a=e}function ofe(n,e){n.b=e}function i9n(n,e){n.e=e}function sfe(n,e){n.f=e}function mG(n,e){n.g=e}function ffe(n,e){n.e=e}function hfe(n,e){n.f=e}function lfe(n,e){n.f=e}function QO(n,e){n.a=e}function YO(n,e){n.b=e}function afe(n,e){n.n=e}function dfe(n,e){n.a=e}function bfe(n,e){n.c=e}function wfe(n,e){n.c=e}function gfe(n,e){n.c=e}function pfe(n,e){n.a=e}function mfe(n,e){n.a=e}function vfe(n,e){n.d=e}function kfe(n,e){n.d=e}function yfe(n,e){n.e=e}function jfe(n,e){n.e=e}function Efe(n,e){n.g=e}function Cfe(n,e){n.f=e}function Mfe(n,e){n.j=e}function Tfe(n,e){n.a=e}function Afe(n,e){n.a=e}function Sfe(n,e){n.b=e}function r9n(n){n.b=n.a}function c9n(n){n.c=n.d.d}function vG(n){this.a=n}function kG(n){this.a=n}function yG(n){this.a=n}function qa(n){this.a=n}function Ua(n){this.a=n}function G9(n){this.a=n}function u9n(n){this.a=n}function jG(n){this.a=n}function z9(n){this.a=n}function PE(n){this.a=n}function ol(n){this.a=n}function Sb(n){this.a=n}function o9n(n){this.a=n}function s9n(n){this.a=n}function ZO(n){this.b=n}function J3(n){this.b=n}function Q3(n){this.b=n}function nD(n){this.a=n}function f9n(n){this.a=n}function eD(n){this.c=n}function C(n){this.c=n}function h9n(n){this.c=n}function zv(n){this.d=n}function EG(n){this.a=n}function Te(n){this.a=n}function l9n(n){this.a=n}function CG(n){this.a=n}function MG(n){this.a=n}function TG(n){this.a=n}function AG(n){this.a=n}function SG(n){this.a=n}function PG(n){this.a=n}function Y3(n){this.a=n}function a9n(n){this.a=n}function d9n(n){this.a=n}function Z3(n){this.a=n}function b9n(n){this.a=n}function w9n(n){this.a=n}function g9n(n){this.a=n}function p9n(n){this.a=n}function m9n(n){this.a=n}function v9n(n){this.a=n}function k9n(n){this.a=n}function y9n(n){this.a=n}function j9n(n){this.a=n}function E9n(n){this.a=n}function C9n(n){this.a=n}function M9n(n){this.a=n}function T9n(n){this.a=n}function A9n(n){this.a=n}function S9n(n){this.a=n}function Xv(n){this.a=n}function P9n(n){this.a=n}function I9n(n){this.a=n}function O9n(n){this.a=n}function D9n(n){this.a=n}function IE(n){this.a=n}function L9n(n){this.a=n}function N9n(n){this.a=n}function n4(n){this.a=n}function IG(n){this.a=n}function $9n(n){this.a=n}function x9n(n){this.a=n}function F9n(n){this.a=n}function B9n(n){this.a=n}function R9n(n){this.a=n}function K9n(n){this.a=n}function OG(n){this.a=n}function DG(n){this.a=n}function LG(n){this.a=n}function Vv(n){this.a=n}function OE(n){this.e=n}function e4(n){this.a=n}function _9n(n){this.a=n}function ip(n){this.a=n}function NG(n){this.a=n}function H9n(n){this.a=n}function q9n(n){this.a=n}function U9n(n){this.a=n}function G9n(n){this.a=n}function z9n(n){this.a=n}function X9n(n){this.a=n}function V9n(n){this.a=n}function W9n(n){this.a=n}function J9n(n){this.a=n}function Q9n(n){this.a=n}function Y9n(n){this.a=n}function $G(n){this.a=n}function Z9n(n){this.a=n}function n7n(n){this.a=n}function e7n(n){this.a=n}function t7n(n){this.a=n}function i7n(n){this.a=n}function r7n(n){this.a=n}function c7n(n){this.a=n}function u7n(n){this.a=n}function o7n(n){this.a=n}function s7n(n){this.a=n}function f7n(n){this.a=n}function h7n(n){this.a=n}function l7n(n){this.a=n}function a7n(n){this.a=n}function d7n(n){this.a=n}function b7n(n){this.a=n}function w7n(n){this.a=n}function g7n(n){this.a=n}function p7n(n){this.a=n}function m7n(n){this.a=n}function v7n(n){this.a=n}function k7n(n){this.a=n}function y7n(n){this.a=n}function j7n(n){this.a=n}function E7n(n){this.a=n}function C7n(n){this.a=n}function M7n(n){this.a=n}function T7n(n){this.a=n}function A7n(n){this.a=n}function S7n(n){this.a=n}function P7n(n){this.a=n}function I7n(n){this.a=n}function O7n(n){this.a=n}function D7n(n){this.a=n}function L7n(n){this.a=n}function N7n(n){this.a=n}function $7n(n){this.a=n}function x7n(n){this.a=n}function F7n(n){this.c=n}function B7n(n){this.b=n}function R7n(n){this.a=n}function K7n(n){this.a=n}function _7n(n){this.a=n}function H7n(n){this.a=n}function q7n(n){this.a=n}function U7n(n){this.a=n}function G7n(n){this.a=n}function z7n(n){this.a=n}function X7n(n){this.a=n}function V7n(n){this.a=n}function W7n(n){this.a=n}function J7n(n){this.a=n}function Q7n(n){this.a=n}function Y7n(n){this.a=n}function Z7n(n){this.a=n}function nkn(n){this.a=n}function ekn(n){this.a=n}function tkn(n){this.a=n}function ikn(n){this.a=n}function rkn(n){this.a=n}function ckn(n){this.a=n}function ukn(n){this.a=n}function okn(n){this.a=n}function skn(n){this.a=n}function fkn(n){this.a=n}function hkn(n){this.a=n}function lkn(n){this.a=n}function sl(n){this.a=n}function sg(n){this.a=n}function akn(n){this.a=n}function dkn(n){this.a=n}function bkn(n){this.a=n}function wkn(n){this.a=n}function gkn(n){this.a=n}function pkn(n){this.a=n}function mkn(n){this.a=n}function vkn(n){this.a=n}function kkn(n){this.a=n}function ykn(n){this.a=n}function jkn(n){this.a=n}function Ekn(n){this.a=n}function Ckn(n){this.a=n}function Mkn(n){this.a=n}function Tkn(n){this.a=n}function Akn(n){this.a=n}function Skn(n){this.a=n}function Pkn(n){this.a=n}function Ikn(n){this.a=n}function Okn(n){this.a=n}function Dkn(n){this.a=n}function Lkn(n){this.a=n}function Nkn(n){this.a=n}function $kn(n){this.a=n}function xkn(n){this.a=n}function Fkn(n){this.a=n}function DE(n){this.a=n}function Bkn(n){this.f=n}function Rkn(n){this.a=n}function Kkn(n){this.a=n}function _kn(n){this.a=n}function Hkn(n){this.a=n}function qkn(n){this.a=n}function Ukn(n){this.a=n}function Gkn(n){this.a=n}function zkn(n){this.a=n}function Xkn(n){this.a=n}function Vkn(n){this.a=n}function Wkn(n){this.a=n}function Jkn(n){this.a=n}function Qkn(n){this.a=n}function Ykn(n){this.a=n}function Zkn(n){this.a=n}function nyn(n){this.a=n}function eyn(n){this.a=n}function tyn(n){this.a=n}function iyn(n){this.a=n}function ryn(n){this.a=n}function cyn(n){this.a=n}function uyn(n){this.a=n}function oyn(n){this.a=n}function syn(n){this.a=n}function fyn(n){this.a=n}function hyn(n){this.a=n}function lyn(n){this.a=n}function ayn(n){this.a=n}function tD(n){this.a=n}function xG(n){this.a=n}function lt(n){this.b=n}function dyn(n){this.a=n}function byn(n){this.a=n}function wyn(n){this.a=n}function gyn(n){this.a=n}function pyn(n){this.a=n}function myn(n){this.a=n}function vyn(n){this.a=n}function kyn(n){this.b=n}function yyn(n){this.a=n}function X9(n){this.a=n}function jyn(n){this.a=n}function Eyn(n){this.a=n}function FG(n){this.c=n}function LE(n){this.e=n}function NE(n){this.a=n}function $E(n){this.a=n}function iD(n){this.a=n}function Cyn(n){this.d=n}function Myn(n){this.a=n}function BG(n){this.a=n}function RG(n){this.a=n}function Wd(n){this.e=n}function Pfe(){this.a=0}function de(){Hu(this)}function Z(){pL(this)}function rD(){sIn(this)}function Tyn(){}function Jd(){this.c=Gdn}function Ayn(n,e){n.b+=e}function Ife(n,e){e.Wb(n)}function Ofe(n){return n.a}function Dfe(n){return n.a}function Lfe(n){return n.a}function Nfe(n){return n.a}function $fe(n){return n.a}function M(n){return n.e}function xfe(){return null}function Ffe(){return null}function Bfe(){Cz(),pLe()}function Rfe(n){n.b.Of(n.e)}function Syn(n){n.b=new CD}function Wv(n,e){n.b=e-n.b}function Jv(n,e){n.a=e-n.a}function Kn(n,e){n.push(e)}function Pyn(n,e){n.sort(e)}function Iyn(n,e){e.jd(n.a)}function Kfe(n,e){gi(e,n)}function _fe(n,e,t){n.Yd(t,e)}function V9(n,e){n.e=e,e.b=n}function KG(n){oh(),this.a=n}function Oyn(n){oh(),this.a=n}function Dyn(n){oh(),this.a=n}function cD(n){m0(),this.a=n}function Lyn(n){O4(),VK.le(n)}function _G(){_G=F,new de}function Ga(){YTn.call(this)}function HG(){YTn.call(this)}function qG(){Ga.call(this)}function uD(){Ga.call(this)}function Nyn(){Ga.call(this)}function W9(){Ga.call(this)}function Cu(){Ga.call(this)}function rp(){Ga.call(this)}function Pe(){Ga.call(this)}function Bo(){Ga.call(this)}function $yn(){Ga.call(this)}function nc(){Ga.call(this)}function xyn(){Ga.call(this)}function Fyn(){this.a=this}function xE(){this.Bb|=256}function Byn(){this.b=new GMn}function Pb(n,e){n.length=e}function FE(n,e){nn(n.a,e)}function Hfe(n,e){bnn(n.c,e)}function qfe(n,e){fi(n.b,e)}function Ufe(n,e){uA(n.a,e)}function Gfe(n,e){cx(n.a,e)}function t4(n,e){it(n.e,e)}function cp(n){jA(n.c,n.b)}function zfe(n,e){n.kc().Nb(e)}function UG(n){this.a=B5e(n)}function ni(){this.a=new de}function Ryn(){this.a=new de}function GG(){this.a=new rCn}function BE(){this.a=new Z}function oD(){this.a=new Z}function zG(){this.a=new Z}function hs(){this.a=new cbn}function za(){this.a=new NLn}function XG(){this.a=new _U}function VG(){this.a=new TOn}function WG(){this.a=new BAn}function Kyn(){this.a=new Z}function _yn(){this.a=new Z}function Hyn(){this.a=new Z}function JG(){this.a=new Z}function qyn(){this.d=new Z}function Uyn(){this.a=new zOn}function Gyn(){this.a=new ni}function zyn(){this.a=new de}function Xyn(){this.b=new de}function Vyn(){this.b=new Z}function QG(){this.e=new Z}function Wyn(){this.a=new Z5n}function Jyn(){this.d=new Z}function Qyn(){QIn.call(this)}function Yyn(){QIn.call(this)}function Zyn(){Z.call(this)}function YG(){qG.call(this)}function ZG(){BE.call(this)}function njn(){qC.call(this)}function ejn(){JG.call(this)}function Qv(){Tyn.call(this)}function sD(){Qv.call(this)}function up(){Tyn.call(this)}function nz(){up.call(this)}function tjn(){rz.call(this)}function ijn(){rz.call(this)}function rjn(){rz.call(this)}function cjn(){cz.call(this)}function Yv(){svn.call(this)}function ez(){svn.call(this)}function Mu(){Ct.call(this)}function ujn(){yjn.call(this)}function ojn(){yjn.call(this)}function sjn(){de.call(this)}function fjn(){de.call(this)}function hjn(){de.call(this)}function fD(){cxn.call(this)}function ljn(){ni.call(this)}function ajn(){xE.call(this)}function hD(){BX.call(this)}function tz(){de.call(this)}function lD(){BX.call(this)}function aD(){de.call(this)}function djn(){de.call(this)}function iz(){ME.call(this)}function bjn(){iz.call(this)}function wjn(){ME.call(this)}function gjn(){rG.call(this)}function rz(){this.a=new ni}function pjn(){this.a=new de}function mjn(){this.a=new Z}function cz(){this.a=new de}function op(){this.a=new Ct}function vjn(){this.j=new Z}function kjn(){this.a=new mEn}function yjn(){this.a=new mvn}function uz(){this.a=new Z4n}function Zv(){Zv=F,KK=new Ht}function dD(){dD=F,_K=new Ejn}function bD(){bD=F,HK=new jjn}function jjn(){XO.call(this,"")}function Ejn(){XO.call(this,"")}function Cjn(n){S$n.call(this,n)}function Mjn(n){S$n.call(this,n)}function oz(n){fG.call(this,n)}function sz(n){XEn.call(this,n)}function Xfe(n){XEn.call(this,n)}function Vfe(n){sz.call(this,n)}function Wfe(n){sz.call(this,n)}function Jfe(n){sz.call(this,n)}function Tjn(n){zN.call(this,n)}function Ajn(n){zN.call(this,n)}function Sjn(n){uSn.call(this,n)}function Pjn(n){Oz.call(this,n)}function n6(n){WE.call(this,n)}function fz(n){WE.call(this,n)}function Ijn(n){WE.call(this,n)}function hz(n){mje.call(this,n)}function lz(n){hz.call(this,n)}function ec(n){APn.call(this,n)}function Ojn(n){ec.call(this,n)}function sp(){U9.call(this,{})}function Djn(){Djn=F,dQn=new M0n}function RE(){RE=F,GK=new STn}function Ljn(){Ljn=F,oun=new Bu}function az(){az=F,sun=new N1}function KE(){KE=F,T8=new $1}function wD(n){b4(),this.a=n}function gD(n){RQ(),this.a=n}function Qd(n){nN(),this.f=n}function pD(n){nN(),this.f=n}function Njn(n){bSn(),this.a=n}function $jn(n){n.b=null,n.c=0}function Qfe(n,e){n.e=e,bqn(n,e)}function Yfe(n,e){n.a=e,cEe(n)}function mD(n,e,t){n.a[e.g]=t}function Zfe(n,e,t){kke(t,n,e)}function nhe(n,e){Wae(e.i,n.n)}function xjn(n,e){v6e(n).Cd(e)}function ehe(n,e){n.a.ec().Mc(e)}function Fjn(n,e){return n.g-e.g}function the(n,e){return n*n/e}function on(n){return Jn(n),n}function $(n){return Jn(n),n}function J9(n){return Jn(n),n}function ihe(n){return new AE(n)}function rhe(n){return new qb(n)}function dz(n){return Jn(n),n}function che(n){return Jn(n),n}function _E(n){ec.call(this,n)}function Ir(n){ec.call(this,n)}function Bjn(n){ec.call(this,n)}function vD(n){APn.call(this,n)}function i4(n){ec.call(this,n)}function Gn(n){ec.call(this,n)}function Or(n){ec.call(this,n)}function Rjn(n){ec.call(this,n)}function fp(n){ec.call(this,n)}function Kl(n){ec.call(this,n)}function _l(n){ec.call(this,n)}function hp(n){ec.call(this,n)}function eh(n){ec.call(this,n)}function kD(n){ec.call(this,n)}function Le(n){ec.call(this,n)}function Ku(n){Jn(n),this.a=n}function bz(n){return ld(n),n}function e6(n){TW(n,n.length)}function t6(n){return n.b==n.c}function Ib(n){return!!n&&n.b}function uhe(n){return!!n&&n.k}function ohe(n){return!!n&&n.j}function she(n,e,t){n.c.Ef(e,t)}function Kjn(n,e){n.be(e),e.ae(n)}function lp(n){oh(),this.a=Se(n)}function yD(){this.a=Oe(Se(ur))}function _jn(){throw M(new Pe)}function fhe(){throw M(new Pe)}function wz(){throw M(new Pe)}function Hjn(){throw M(new Pe)}function hhe(){throw M(new Pe)}function lhe(){throw M(new Pe)}function HE(){HE=F,O4()}function Hl(){G9.call(this,"")}function i6(){G9.call(this,"")}function x1(){G9.call(this,"")}function fg(){G9.call(this,"")}function gz(n){Ir.call(this,n)}function pz(n){Ir.call(this,n)}function th(n){Gn.call(this,n)}function r4(n){Q3.call(this,n)}function qjn(n){r4.call(this,n)}function jD(n){BC.call(this,n)}function ED(n){JX.call(this,n,0)}function CD(){sJ.call(this,12,3)}function T(n,e){return kOn(n,e)}function qE(n,e){return o$(n,e)}function ahe(n,e){return n.a-e.a}function dhe(n,e){return n.a-e.a}function bhe(n,e){return n.a-e.a}function whe(n,e){return e in n.a}function Ujn(n){return n.a?n.b:0}function ghe(n){return n.a?n.b:0}function phe(n,e,t){e.Cd(n.a[t])}function mhe(n,e,t){e.Pe(n.a[t])}function vhe(n,e){n.b=new rr(e)}function khe(n,e){return n.b=e,n}function Gjn(n,e){return n.c=e,n}function zjn(n,e){return n.f=e,n}function yhe(n,e){return n.g=e,n}function mz(n,e){return n.a=e,n}function vz(n,e){return n.f=e,n}function jhe(n,e){return n.k=e,n}function kz(n,e){return n.a=e,n}function Ehe(n,e){return n.e=e,n}function yz(n,e){return n.e=e,n}function Che(n,e){return n.f=e,n}function Mhe(n,e){n.b=!0,n.d=e}function The(n,e){return n.b-e.b}function Ahe(n,e){return n.g-e.g}function She(n,e){return n?0:e-1}function Xjn(n,e){return n?0:e-1}function Phe(n,e){return n?e-1:0}function Ihe(n,e){return n.s-e.s}function Ohe(n,e){return e.rg(n)}function Yd(n,e){return n.b=e,n}function UE(n,e){return n.a=e,n}function Zd(n,e){return n.c=e,n}function n0(n,e){return n.d=e,n}function e0(n,e){return n.e=e,n}function jz(n,e){return n.f=e,n}function r6(n,e){return n.a=e,n}function c4(n,e){return n.b=e,n}function u4(n,e){return n.c=e,n}function an(n,e){return n.c=e,n}function Sn(n,e){return n.b=e,n}function dn(n,e){return n.d=e,n}function bn(n,e){return n.e=e,n}function Dhe(n,e){return n.f=e,n}function wn(n,e){return n.g=e,n}function gn(n,e){return n.a=e,n}function pn(n,e){return n.i=e,n}function mn(n,e){return n.j=e,n}function Lhe(n,e){ua(),ic(e,n)}function Nhe(n,e,t){Jbe(n.a,e,t)}function GE(n){$L.call(this,n)}function Vjn(n){Z5e.call(this,n)}function Wjn(n){SIn.call(this,n)}function Ez(n){SIn.call(this,n)}function F1(n){S0.call(this,n)}function Jjn(n){CN.call(this,n)}function Qjn(n){CN.call(this,n)}function Yjn(){DX.call(this,"")}function Li(){this.a=0,this.b=0}function Zjn(){this.b=0,this.a=0}function nEn(n,e){n.b=0,Zb(n,e)}function eEn(n,e){return n.k=e,n}function $he(n,e){return n.j=e,n}function xhe(n,e){n.c=e,n.b=!0}function tEn(){tEn=F,TQn=Xke()}function B1(){B1=F,voe=rke()}function iEn(){iEn=F,Ti=gye()}function Cz(){Cz=F,Da=z4()}function o4(){o4=F,Udn=cke()}function rEn(){rEn=F,ise=uke()}function Mz(){Mz=F,yc=tEe()}function of(n){return n.e&&n.e()}function cEn(n){return n.l|n.m<<22}function uEn(n,e){return n.c._b(e)}function oEn(n,e){return rBn(n.b,e)}function MD(n){return n?n.d:null}function Fhe(n){return n?n.g:null}function Bhe(n){return n?n.i:null}function Xa(n){return ll(n),n.o}function hg(n,e){return n.a+=e,n}function TD(n,e){return n.a+=e,n}function ql(n,e){return n.a+=e,n}function t0(n,e){return n.a+=e,n}function Tz(n,e){for(;n.Bd(e););}function zE(n){this.a=new ap(n)}function sEn(){throw M(new Pe)}function fEn(){throw M(new Pe)}function hEn(){throw M(new Pe)}function lEn(){throw M(new Pe)}function aEn(){throw M(new Pe)}function dEn(){throw M(new Pe)}function Ul(n){this.a=new iN(n)}function bEn(){this.a=new F5(Rln)}function wEn(){this.b=new F5(rln)}function gEn(){this.a=new F5(f1n)}function pEn(){this.b=new F5(Fq)}function mEn(){this.b=new F5(Fq)}function XE(n){this.a=0,this.b=n}function Az(n){zGn(),ILe(this,n)}function s4(n){return X1(n),n.a}function Q9(n){return n.b!=n.d.c}function Sz(n,e){return n.d[e.p]}function vEn(n,e){return XTe(n,e)}function Pz(n,e,t){n.splice(e,t)}function lg(n,e){for(;n.Re(e););}function kEn(n){n.c?Dqn(n):Lqn(n)}function yEn(){throw M(new Pe)}function jEn(){throw M(new Pe)}function EEn(){throw M(new Pe)}function CEn(){throw M(new Pe)}function MEn(){throw M(new Pe)}function TEn(){throw M(new Pe)}function AEn(){throw M(new Pe)}function SEn(){throw M(new Pe)}function PEn(){throw M(new Pe)}function IEn(){throw M(new Pe)}function Rhe(){throw M(new nc)}function Khe(){throw M(new nc)}function Y9(n){this.a=new OEn(n)}function OEn(n){Ume(this,n,jje())}function Z9(n){return!n||oIn(n)}function n7(n){return nh[n]!=-1}function _he(){cP!=0&&(cP=0),uP=-1}function DEn(){RK==null&&(RK=[])}function e7(n,e){Mg.call(this,n,e)}function f4(n,e){e7.call(this,n,e)}function LEn(n,e){this.a=n,this.b=e}function NEn(n,e){this.a=n,this.b=e}function $En(n,e){this.a=n,this.b=e}function xEn(n,e){this.a=n,this.b=e}function FEn(n,e){this.a=n,this.b=e}function BEn(n,e){this.a=n,this.b=e}function REn(n,e){this.a=n,this.b=e}function h4(n,e){this.e=n,this.d=e}function Iz(n,e){this.b=n,this.c=e}function KEn(n,e){this.b=n,this.a=e}function _En(n,e){this.b=n,this.a=e}function HEn(n,e){this.b=n,this.a=e}function qEn(n,e){this.b=n,this.a=e}function UEn(n,e){this.a=n,this.b=e}function AD(n,e){this.a=n,this.b=e}function GEn(n,e){this.a=n,this.f=e}function i0(n,e){this.g=n,this.i=e}function je(n,e){this.f=n,this.g=e}function zEn(n,e){this.b=n,this.c=e}function XEn(n){KX(n.dc()),this.c=n}function Hhe(n,e){this.a=n,this.b=e}function VEn(n,e){this.a=n,this.b=e}function WEn(n){this.a=u(Se(n),15)}function Oz(n){this.a=u(Se(n),15)}function JEn(n){this.a=u(Se(n),85)}function VE(n){this.b=u(Se(n),85)}function WE(n){this.b=u(Se(n),51)}function JE(){this.q=new y.Date}function SD(n,e){this.a=n,this.b=e}function QEn(n,e){return Zc(n.b,e)}function t7(n,e){return n.b.Hc(e)}function YEn(n,e){return n.b.Ic(e)}function ZEn(n,e){return n.b.Qc(e)}function nCn(n,e){return n.b.Hc(e)}function eCn(n,e){return n.c.uc(e)}function tCn(n,e){return rt(n.c,e)}function sf(n,e){return n.a._b(e)}function iCn(n,e){return n>e&&e0}function ND(n,e){return Ec(n,e)<0}function vCn(n,e){return JL(n.a,e)}function ole(n,e){yOn.call(this,n,e)}function Bz(n){wN(),uSn.call(this,n)}function Rz(n,e){bPn(n,n.length,e)}function u7(n,e){HPn(n,n.length,e)}function a6(n,e){return n.a.get(e)}function kCn(n,e){return Zc(n.e,e)}function Kz(n){return Jn(n),!1}function _z(n){this.a=u(Se(n),229)}function cC(n){In.call(this,n,21)}function uC(n,e){je.call(this,n,e)}function $D(n,e){je.call(this,n,e)}function yCn(n,e){this.b=n,this.a=e}function oC(n,e){this.d=n,this.e=e}function jCn(n,e){this.a=n,this.b=e}function ECn(n,e){this.a=n,this.b=e}function CCn(n,e){this.a=n,this.b=e}function MCn(n,e){this.a=n,this.b=e}function bp(n,e){this.a=n,this.b=e}function TCn(n,e){this.b=n,this.a=e}function Hz(n,e){this.b=n,this.a=e}function qz(n,e){je.call(this,n,e)}function Uz(n,e){je.call(this,n,e)}function ag(n,e){je.call(this,n,e)}function xD(n,e){je.call(this,n,e)}function FD(n,e){je.call(this,n,e)}function BD(n,e){je.call(this,n,e)}function sC(n,e){je.call(this,n,e)}function Gz(n,e){this.b=n,this.a=e}function fC(n,e){je.call(this,n,e)}function zz(n,e){this.b=n,this.a=e}function hC(n,e){je.call(this,n,e)}function ACn(n,e){this.b=n,this.a=e}function Xz(n,e){je.call(this,n,e)}function RD(n,e){je.call(this,n,e)}function o7(n,e){je.call(this,n,e)}function d6(n,e,t){n.splice(e,0,t)}function sle(n,e,t){n.Mb(t)&&e.Cd(t)}function fle(n,e,t){e.Pe(n.a.Ye(t))}function hle(n,e,t){e.Dd(n.a.Ze(t))}function lle(n,e,t){e.Cd(n.a.Kb(t))}function ale(n,e){return Au(n.c,e)}function dle(n,e){return Au(n.e,e)}function lC(n,e){je.call(this,n,e)}function aC(n,e){je.call(this,n,e)}function b6(n,e){je.call(this,n,e)}function Vz(n,e){je.call(this,n,e)}function ei(n,e){je.call(this,n,e)}function dC(n,e){je.call(this,n,e)}function SCn(n,e){this.a=n,this.b=e}function PCn(n,e){this.a=n,this.b=e}function ICn(n,e){this.a=n,this.b=e}function OCn(n,e){this.a=n,this.b=e}function DCn(n,e){this.a=n,this.b=e}function LCn(n,e){this.a=n,this.b=e}function NCn(n,e){this.b=n,this.a=e}function $Cn(n,e){this.b=n,this.a=e}function Wz(n,e){this.b=n,this.a=e}function d4(n,e){this.c=n,this.d=e}function xCn(n,e){this.e=n,this.d=e}function FCn(n,e){this.a=n,this.b=e}function BCn(n,e){this.a=n,this.b=e}function RCn(n,e){this.a=n,this.b=e}function KCn(n,e){this.b=n,this.a=e}function _Cn(n,e){this.b=e,this.c=n}function bC(n,e){je.call(this,n,e)}function s7(n,e){je.call(this,n,e)}function KD(n,e){je.call(this,n,e)}function Jz(n,e){je.call(this,n,e)}function w6(n,e){je.call(this,n,e)}function _D(n,e){je.call(this,n,e)}function HD(n,e){je.call(this,n,e)}function f7(n,e){je.call(this,n,e)}function Qz(n,e){je.call(this,n,e)}function qD(n,e){je.call(this,n,e)}function g6(n,e){je.call(this,n,e)}function Yz(n,e){je.call(this,n,e)}function p6(n,e){je.call(this,n,e)}function m6(n,e){je.call(this,n,e)}function Db(n,e){je.call(this,n,e)}function UD(n,e){je.call(this,n,e)}function GD(n,e){je.call(this,n,e)}function Zz(n,e){je.call(this,n,e)}function h7(n,e){je.call(this,n,e)}function dg(n,e){je.call(this,n,e)}function zD(n,e){je.call(this,n,e)}function wC(n,e){je.call(this,n,e)}function l7(n,e){je.call(this,n,e)}function Lb(n,e){je.call(this,n,e)}function gC(n,e){je.call(this,n,e)}function nX(n,e){je.call(this,n,e)}function XD(n,e){je.call(this,n,e)}function VD(n,e){je.call(this,n,e)}function WD(n,e){je.call(this,n,e)}function JD(n,e){je.call(this,n,e)}function QD(n,e){je.call(this,n,e)}function YD(n,e){je.call(this,n,e)}function ZD(n,e){je.call(this,n,e)}function HCn(n,e){this.b=n,this.a=e}function eX(n,e){je.call(this,n,e)}function qCn(n,e){this.a=n,this.b=e}function UCn(n,e){this.a=n,this.b=e}function GCn(n,e){this.a=n,this.b=e}function tX(n,e){je.call(this,n,e)}function iX(n,e){je.call(this,n,e)}function zCn(n,e){this.a=n,this.b=e}function ble(n,e){return k4(),e!=n}function a7(n){return oe(n.a),n.b}function nL(n){return yCe(n,n.c),n}function XCn(){return tEn(),new TQn}function VCn(){VC(),this.a=new kV}function WCn(){OA(),this.a=new ni}function JCn(){NN(),this.b=new ni}function QCn(n,e){this.b=n,this.d=e}function YCn(n,e){this.a=n,this.b=e}function ZCn(n,e){this.a=n,this.b=e}function nMn(n,e){this.a=n,this.b=e}function eMn(n,e){this.b=n,this.a=e}function rX(n,e){je.call(this,n,e)}function cX(n,e){je.call(this,n,e)}function pC(n,e){je.call(this,n,e)}function u0(n,e){je.call(this,n,e)}function eL(n,e){je.call(this,n,e)}function mC(n,e){je.call(this,n,e)}function uX(n,e){je.call(this,n,e)}function oX(n,e){je.call(this,n,e)}function d7(n,e){je.call(this,n,e)}function sX(n,e){je.call(this,n,e)}function tL(n,e){je.call(this,n,e)}function vC(n,e){je.call(this,n,e)}function iL(n,e){je.call(this,n,e)}function rL(n,e){je.call(this,n,e)}function cL(n,e){je.call(this,n,e)}function uL(n,e){je.call(this,n,e)}function fX(n,e){je.call(this,n,e)}function oL(n,e){je.call(this,n,e)}function hX(n,e){je.call(this,n,e)}function b7(n,e){je.call(this,n,e)}function sL(n,e){je.call(this,n,e)}function lX(n,e){je.call(this,n,e)}function w7(n,e){je.call(this,n,e)}function aX(n,e){je.call(this,n,e)}function tMn(n,e){this.b=n,this.a=e}function iMn(n,e){this.b=n,this.a=e}function rMn(n,e){this.b=n,this.a=e}function cMn(n,e){this.b=n,this.a=e}function dX(n,e){this.a=n,this.b=e}function uMn(n,e){this.a=n,this.b=e}function oMn(n,e){this.a=n,this.b=e}function V(n,e){this.a=n,this.b=e}function v6(n,e){je.call(this,n,e)}function g7(n,e){je.call(this,n,e)}function wp(n,e){je.call(this,n,e)}function k6(n,e){je.call(this,n,e)}function p7(n,e){je.call(this,n,e)}function fL(n,e){je.call(this,n,e)}function kC(n,e){je.call(this,n,e)}function y6(n,e){je.call(this,n,e)}function hL(n,e){je.call(this,n,e)}function yC(n,e){je.call(this,n,e)}function bg(n,e){je.call(this,n,e)}function m7(n,e){je.call(this,n,e)}function j6(n,e){je.call(this,n,e)}function E6(n,e){je.call(this,n,e)}function v7(n,e){je.call(this,n,e)}function jC(n,e){je.call(this,n,e)}function wg(n,e){je.call(this,n,e)}function lL(n,e){je.call(this,n,e)}function sMn(n,e){je.call(this,n,e)}function EC(n,e){je.call(this,n,e)}function fMn(n,e){this.a=n,this.b=e}function hMn(n,e){this.a=n,this.b=e}function lMn(n,e){this.a=n,this.b=e}function aMn(n,e){this.a=n,this.b=e}function dMn(n,e){this.a=n,this.b=e}function bMn(n,e){this.a=n,this.b=e}function bi(n,e){this.a=n,this.b=e}function wMn(n,e){this.a=n,this.b=e}function gMn(n,e){this.a=n,this.b=e}function pMn(n,e){this.a=n,this.b=e}function mMn(n,e){this.a=n,this.b=e}function vMn(n,e){this.a=n,this.b=e}function kMn(n,e){this.a=n,this.b=e}function yMn(n,e){this.b=n,this.a=e}function jMn(n,e){this.b=n,this.a=e}function EMn(n,e){this.b=n,this.a=e}function CMn(n,e){this.b=n,this.a=e}function MMn(n,e){this.a=n,this.b=e}function TMn(n,e){this.a=n,this.b=e}function CC(n,e){je.call(this,n,e)}function AMn(n,e){this.a=n,this.b=e}function SMn(n,e){this.a=n,this.b=e}function gp(n,e){je.call(this,n,e)}function PMn(n,e){this.f=n,this.c=e}function bX(n,e){return Au(n.g,e)}function wle(n,e){return Au(e.b,n)}function IMn(n,e){return wx(n.a,e)}function gle(n,e){return-n.b.af(e)}function ple(n,e){n&&Ve(hE,n,e)}function wX(n,e){n.i=null,kT(n,e)}function mle(n,e,t){yKn(e,oF(n,t))}function vle(n,e,t){yKn(e,oF(n,t))}function kle(n,e){VMe(n.a,u(e,58))}function OMn(n,e){U4e(n.a,u(e,12))}function MC(n,e){this.a=n,this.b=e}function DMn(n,e){this.a=n,this.b=e}function LMn(n,e){this.a=n,this.b=e}function NMn(n,e){this.a=n,this.b=e}function $Mn(n,e){this.a=n,this.b=e}function xMn(n,e){this.d=n,this.b=e}function FMn(n,e){this.e=n,this.a=e}function k7(n,e){this.b=n,this.c=e}function gX(n,e){this.i=n,this.g=e}function pX(n,e){this.d=n,this.e=e}function yle(n,e){cme(new ne(n),e)}function TC(n){return Fk(n.c,n.b)}function Kr(n){return n?n.md():null}function x(n){return n??null}function Ai(n){return typeof n===nB}function Nb(n){return typeof n===i3}function $b(n){return typeof n===dtn}function o0(n,e){return Ec(n,e)==0}function AC(n,e){return Ec(n,e)>=0}function C6(n,e){return Ec(n,e)!=0}function SC(n,e){return jve(n.Kc(),e)}function _1(n,e){return n.Rd().Xb(e)}function BMn(n){return eo(n),n.d.gc()}function PC(n){return x6(n==null),n}function M6(n,e){return n.a+=""+e,n}function Er(n,e){return n.a+=""+e,n}function T6(n,e){return n.a+=""+e,n}function Dc(n,e){return n.a+=""+e,n}function Re(n,e){return n.a+=""+e,n}function mX(n,e){return n.a+=""+e,n}function jle(n){return""+(Jn(n),n)}function RMn(n){Hu(this),s5(this,n)}function KMn(){oJ(),dW.call(this)}function _Mn(n,e){mW.call(this,n,e)}function HMn(n,e){mW.call(this,n,e)}function IC(n,e){mW.call(this,n,e)}function ir(n,e){xt(n,e,n.c.b,n.c)}function gg(n,e){xt(n,e,n.a,n.a.a)}function vX(n){return Ln(n,0),null}function qMn(){this.b=0,this.a=!1}function UMn(){this.b=0,this.a=!1}function GMn(){this.b=new ap(Qb(12))}function zMn(){zMn=F,kYn=Ce(jx())}function XMn(){XMn=F,HZn=Ce(iqn())}function VMn(){VMn=F,lre=Ce(xxn())}function kX(){kX=F,_G(),fun=new de}function ff(n){return n.a=0,n.b=0,n}function WMn(n,e){return n.a=e.g+1,n}function aL(n,e){Kb.call(this,n,e)}function Mn(n,e){Dt.call(this,n,e)}function pg(n,e){gX.call(this,n,e)}function JMn(n,e){C7.call(this,n,e)}function dL(n,e){Y4.call(this,n,e)}function Ge(n,e){iC(),Ve(yO,n,e)}function QMn(n,e){n.q.setTime(id(e))}function Ele(n){y.clearTimeout(n)}function Cle(n){return Se(n),new A6(n)}function YMn(n,e){return x(n)===x(e)}function ZMn(n,e){return n.a.a.a.cc(e)}function bL(n,e){return qo(n.a,0,e)}function yX(n){return Awe(u(n,74))}function pp(n){return wi((Jn(n),n))}function Mle(n){return wi((Jn(n),n))}function nTn(n){return Yc(n.l,n.m,n.h)}function jX(n,e){return jc(n.a,e.a)}function Tle(n,e){return KPn(n.a,e.a)}function Ale(n,e){return bt(n.a,e.a)}function ih(n,e){return n.indexOf(e)}function Sle(n,e){return n.j[e.p]==2}function s0(n,e){return n==e?0:n?1:-1}function OC(n){return n<10?"0"+n:""+n}function Vr(n){return typeof n===dtn}function Ple(n){return n==rb||n==Iw}function Ile(n){return n==rb||n==Pw}function eTn(n,e){return jc(n.g,e.g)}function EX(n){return qr(n.b.b,n,0)}function tTn(){rM.call(this,0,0,0,0)}function rh(){CG.call(this,new Ql)}function CX(n,e){F4(n,0,n.length,e)}function Ole(n,e){return nn(n.a,e),e}function Dle(n,e){return Fs(),e.a+=n}function Lle(n,e){return Fs(),e.a+=n}function Nle(n,e){return Fs(),e.c+=n}function $le(n,e){return nn(n.c,e),n}function MX(n,e){return Mo(n.a,e),n}function iTn(n){this.a=XCn(),this.b=n}function rTn(n){this.a=XCn(),this.b=n}function rr(n){this.a=n.a,this.b=n.b}function A6(n){this.a=n,GO.call(this)}function cTn(n){this.a=n,GO.call(this)}function mp(){Ho.call(this,0,0,0,0)}function DC(n){return Mo(new ii,n)}function uTn(n){return jM(u(n,123))}function fo(n){return n.vh()&&n.wh()}function mg(n){return n!=Qf&&n!=Pa}function hl(n){return n==Br||n==Xr}function vg(n){return n==us||n==Wf}function oTn(n){return n==P2||n==S2}function xle(n,e){return jc(n.g,e.g)}function sTn(n,e){return new Y4(e,n)}function Fle(n,e){return new Y4(e,n)}function TX(n){return rbe(n.b.Kc(),n.a)}function wL(n,e){um(n,e),G4(n,n.D)}function gL(n,e,t){aT(n,e),lT(n,t)}function kg(n,e,t){I0(n,e),P0(n,t)}function Ro(n,e,t){eu(n,e),tu(n,t)}function y7(n,e,t){_4(n,e),q4(n,t)}function j7(n,e,t){H4(n,e),U4(n,t)}function fTn(n,e,t){sV.call(this,n,e,t)}function AX(n){PMn.call(this,n,!0)}function hTn(){uC.call(this,"Tail",3)}function lTn(){uC.call(this,"Head",1)}function H1(n){dh(),mve.call(this,n)}function f0(n){rM.call(this,n,n,n,n)}function pL(n){n.c=K(ki,Bn,1,0,5,1)}function SX(n){return n.b&&xF(n),n.a}function PX(n){return n.b&&xF(n),n.c}function Ble(n,e){Uf||(n.b=e)}function Rle(n,e){return n[n.length]=e}function Kle(n,e){return n[n.length]=e}function _le(n,e){return Yb(e,Sf(n))}function Hle(n,e){return Yb(e,Sf(n))}function qle(n,e){return pT(dN(n.d),e)}function Ule(n,e){return pT(dN(n.g),e)}function Gle(n,e){return pT(dN(n.j),e)}function Ni(n,e){Dt.call(this,n.b,e)}function zle(n,e){ve(Sc(n.a),DOn(e))}function Xle(n,e){ve(no(n.a),LOn(e))}function Vle(n,e,t){Ro(t,t.i+n,t.j+e)}function aTn(n,e,t){$t(n.c[e.g],e.g,t)}function Wle(n,e,t){u(n.c,71).Gi(e,t)}function mL(n,e,t){return $t(n,e,t),t}function dTn(n){nu(n.Sf(),new D9n(n))}function yg(n){return n!=null?mt(n):0}function Jle(n){return n==null?0:mt(n)}function S6(n){nt(),Wd.call(this,n)}function bTn(n){this.a=n,qV.call(this,n)}function Tf(){Tf=F,y.Math.log(2)}function Ko(){Ko=F,rl=(pCn(),Moe)}function wTn(){wTn=F,YH=new y5(aU)}function Ie(){Ie=F,new gTn,new Z}function gTn(){new de,new de,new de}function Qle(){throw M(new Kl(QJn))}function Yle(){throw M(new Kl(QJn))}function Zle(){throw M(new Kl(YJn))}function n1e(){throw M(new Kl(YJn))}function vL(n){this.a=n,VE.call(this,n)}function kL(n){this.a=n,VE.call(this,n)}function pTn(n,e){m0(),this.a=n,this.b=e}function e1e(n,e){Se(e),Ag(n).Jc(new Ru)}function Yt(n,e){QL(n.c,n.c.length,e)}function tc(n){return n.ae?1:0}function OX(n,e){return Ec(n,e)>0?n:e}function Yc(n,e,t){return{l:n,m:e,h:t}}function t1e(n,e){n.a!=null&&OMn(e,n.a)}function i1e(n){Zi(n,null),Ii(n,null)}function r1e(n,e,t){return Ve(n.g,t,e)}function jg(n,e,t){return nZ(e,t,n.c)}function c1e(n,e,t){return Ve(n.k,t,e)}function u1e(n,e,t){return GOe(n,e,t),t}function o1e(n,e){return ko(),e.n.b+=n}function vTn(n){nJ.call(this),this.b=n}function DX(n){vV.call(this),this.a=n}function kTn(){uC.call(this,"Range",2)}function LC(n){this.b=n,this.a=new Z}function yTn(n){this.b=new $bn,this.a=n}function jTn(n){n.a=new OO,n.c=new OO}function ETn(n){n.a=new de,n.d=new de}function CTn(n){$N(n,null),xN(n,null)}function MTn(n,e){return XOe(n.a,e,null)}function s1e(n,e){return Ve(n.a,e.a,e)}function Ki(n){return new V(n.a,n.b)}function LX(n){return new V(n.c,n.d)}function f1e(n){return new V(n.c,n.d)}function P6(n,e){return cOe(n.c,n.b,e)}function D(n,e){return n!=null&&Tx(n,e)}function yL(n,e){return Yve(n.Kc(),e)!=-1}function NC(n){return n.Ob()?n.Pb():null}function h1e(n){this.b=(Dn(),new eD(n))}function NX(n){this.a=n,de.call(this)}function TTn(){C7.call(this,null,null)}function ATn(){_C.call(this,null,null)}function STn(){je.call(this,"INSTANCE",0)}function PTn(){LZ(),this.a=new F5(Ion)}function ITn(n){return ws(n,0,n.length)}function l1e(n,e){return new VTn(n.Kc(),e)}function $X(n,e){return n.a.Bc(e)!=null}function OTn(n,e){me(n),n.Gc(u(e,15))}function a1e(n,e,t){n.c.bd(e,u(t,136))}function d1e(n,e,t){n.c.Ui(e,u(t,136))}function DTn(n,e){n.c&&(tW(e),rOn(e))}function b1e(n,e){n.q.setHours(e),H5(n,e)}function w1e(n,e){a0(e,n.a.a.a,n.a.a.b)}function g1e(n,e,t,i){$t(n.a[e.g],t.g,i)}function jL(n,e,t){return n.a[e.g][t.g]}function p1e(n,e){return n.e[e.c.p][e.p]}function m1e(n,e){return n.c[e.c.p][e.p]}function Af(n,e){return n.a[e.c.p][e.p]}function v1e(n,e){return n.j[e.p]=IMe(e)}function EL(n,e){return n.a.Bc(e)!=null}function k1e(n,e){return $(R(e.a))<=n}function y1e(n,e){return $(R(e.a))>=n}function j1e(n,e){return RJ(n.f,e.Pg())}function vp(n,e){return n.a*e.a+n.b*e.b}function E1e(n,e){return n.a0?e/(n*n):e*100}function V1e(n,e){return n>0?e*e/n:e*e*100}function xb(n,e){return u(Nf(n.a,e),34)}function W1e(n,e){return ua(),Pn(n,e.e,e)}function J1e(n,e,t){return nC(),t.Mg(n,e)}function Q1e(n){return kl(),n.e.a+n.f.a/2}function Y1e(n,e,t){return kl(),t.e.a-n*e}function Z1e(n){return kl(),n.e.b+n.f.b/2}function nae(n,e,t){return kl(),t.e.b-n*e}function sAn(n){n.d=new cAn(n),n.e=new de}function fAn(){this.a=new C0,this.b=new C0}function hAn(n){this.c=n,this.a=1,this.b=1}function lAn(n){YF(),Syn(this),this.Ff(n)}function eae(n,e,t){YM(),n.pf(e)&&t.Cd(n)}function tae(n,e,t){return nn(e,jBn(n,t))}function a0(n,e,t){return n.a+=e,n.b+=t,n}function iae(n,e,t){return n.a*=e,n.b*=t,n}function ZX(n,e){return n.a=e.a,n.b=e.b,n}function HC(n){return n.a=-n.a,n.b=-n.b,n}function L6(n,e,t){return n.a-=e,n.b-=t,n}function aAn(n){Ct.call(this),r5(this,n)}function dAn(){je.call(this,"GROW_TREE",0)}function bAn(){je.call(this,"POLYOMINO",0)}function lo(n,e,t){Iu.call(this,n,e,t,2)}function rae(n,e,t){v5(Sc(n.a),e,DOn(t))}function wAn(n,e){l6(),C7.call(this,n,e)}function nV(n,e){Gl(),_C.call(this,n,e)}function gAn(n,e){Gl(),nV.call(this,n,e)}function pAn(n,e){Gl(),_C.call(this,n,e)}function cae(n,e){return n.c.Fc(u(e,136))}function uae(n,e,t){v5(no(n.a),e,LOn(t))}function mAn(n){this.c=n,eu(n,0),tu(n,0)}function PL(n,e){Ko(),oM.call(this,n,e)}function vAn(n,e){Ko(),PL.call(this,n,e)}function eV(n,e){Ko(),PL.call(this,n,e)}function tV(n,e){Ko(),oM.call(this,n,e)}function kAn(n,e){Ko(),eV.call(this,n,e)}function yAn(n,e){Ko(),tV.call(this,n,e)}function jAn(n,e){Ko(),oM.call(this,n,e)}function oae(n,e,t){return e.zl(n.e,n.c,t)}function sae(n,e,t){return e.Al(n.e,n.c,t)}function iV(n,e,t){return qA(hk(n,e),t)}function IL(n,e){return ea(n.e,u(e,54))}function fae(n){return n==null?null:NDe(n)}function hae(n){return n==null?null:Aje(n)}function lae(n){return n==null?null:Jr(n)}function aae(n){return n==null?null:Jr(n)}function un(n){return x6(n==null||Nb(n)),n}function R(n){return x6(n==null||$b(n)),n}function Oe(n){return x6(n==null||Ai(n)),n}function ll(n){n.o==null&&cMe(n)}function rV(n){if(!n)throw M(new W9)}function dae(n){if(!n)throw M(new uD)}function oe(n){if(!n)throw M(new nc)}function Fb(n){if(!n)throw M(new Cu)}function EAn(n){if(!n)throw M(new Bo)}function m4(){m4=F,aE=new ujn,new ojn}function Tg(){Tg=F,D2=new lt("root")}function cV(){cxn.call(this),this.Bb|=hr}function bae(n,e){this.d=n,c9n(this),this.b=e}function uV(n,e){i$.call(this,n),this.a=e}function oV(n,e){i$.call(this,n),this.a=e}function sV(n,e,t){VM.call(this,n,e,t,null)}function CAn(n,e,t){VM.call(this,n,e,t,null)}function A7(n,e){this.c=n,h4.call(this,n,e)}function N6(n,e){this.a=n,A7.call(this,n,e)}function fV(n){this.q=new y.Date(id(n))}function MAn(n){return n>8?0:n+1}function TAn(n,e){Uf||nn(n.a,e)}function wae(n,e){return c7(),Q4(e.d.i,n)}function gae(n,e){return Hp(),new tUn(e,n)}function pae(n,e,t){return n.Ne(e,t)<=0?t:e}function mae(n,e,t){return n.Ne(e,t)<=0?e:t}function vae(n,e){return u(Nf(n.b,e),143)}function kae(n,e){return u(Nf(n.c,e),233)}function OL(n){return u(sn(n.a,n.b),294)}function AAn(n){return new V(n.c,n.d+n.a)}function SAn(n){return Jn(n),n?1231:1237}function PAn(n){return ko(),oTn(u(n,203))}function Bb(){Bb=F,ron=jn((go(),Gd))}function yae(n,e){e.a?MCe(n,e):EL(n.a,e.b)}function S7(n,e,t){++n.j,n.tj(),t$(n,e,t)}function IAn(n,e,t){++n.j,n.qj(e,n.Zi(e,t))}function OAn(n,e,t){var i;i=n.fd(e),i.Rb(t)}function hV(n,e,t){return t=So(n,e,6,t),t}function lV(n,e,t){return t=So(n,e,3,t),t}function aV(n,e,t){return t=So(n,e,9,t),t}function uh(n,e){return G7(e,xtn),n.f=e,n}function dV(n,e){return(e&et)%n.d.length}function DAn(n,e,t){return zen(n.c,n.b,e,t)}function LAn(n,e){this.c=n,S0.call(this,e)}function NAn(n,e){this.a=n,kyn.call(this,e)}function P7(n,e){this.a=n,kyn.call(this,e)}function Dt(n,e){lt.call(this,n),this.a=e}function bV(n,e){FG.call(this,n),this.a=e}function DL(n,e){FG.call(this,n),this.a=e}function jae(n){VY.call(this,0,0),this.f=n}function $An(n,e,t){return n.a+=ws(e,0,t),n}function I7(n){return!n.a&&(n.a=new C0n),n.a}function wV(n,e){var t;return t=n.e,n.e=e,t}function gV(n,e){var t;return t=e,!!n.Fe(t)}function Eae(n,e){return _n(),n==e?0:n?1:-1}function Rb(n,e){n.a.bd(n.b,e),++n.b,n.c=-1}function O7(n){n.b?O7(n.b):n.f.c.zc(n.e,n.d)}function xAn(n){Hu(n.e),n.d.b=n.d,n.d.a=n.d}function Cae(n,e,t){Va(),t9n(n,e.Ve(n.a,t))}function pV(n,e,t){return Pp(n,u(e,22),t)}function xs(n,e){return qE(new Array(e),n)}function Mae(n){return Ae(U1(n,32))^Ae(n)}function LL(n){return String.fromCharCode(n)}function Tae(n){return n==null?null:n.message}function Aae(n,e,t){return n.apply(e,t)}function Sae(n,e){var t;t=n[DB],t.call(n,e)}function Pae(n,e){var t;t=n[DB],t.call(n,e)}function Iae(n,e){return c7(),!Q4(e.d.i,n)}function mV(n,e,t,i){rM.call(this,n,e,t,i)}function FAn(){qC.call(this),this.a=new Li}function vV(){this.n=new Li,this.o=new Li}function BAn(){this.b=new Li,this.c=new Z}function RAn(){this.a=new Z,this.b=new Z}function KAn(){this.a=new _U,this.b=new Byn}function kV(){this.b=new Ql,this.a=new Ql}function _An(){this.b=new ni,this.a=new ni}function HAn(){this.b=new de,this.a=new de}function qAn(){this.b=new wEn,this.a=new H3n}function UAn(){this.a=new n8n,this.b=new Lpn}function GAn(){this.a=new Z,this.d=new Z}function qC(){this.n=new up,this.i=new mp}function zAn(n){this.a=(Co(n,mw),new Gc(n))}function XAn(n){this.a=(Co(n,mw),new Gc(n))}function Oae(n){return n<100?null:new F1(n)}function Dae(n,e){return n.n.a=(Jn(e),e+10)}function Lae(n,e){return n.n.a=(Jn(e),e+10)}function Nae(n,e){return e==n||km(TA(e),n)}function VAn(n,e){return Ve(n.a,e,"")==null}function $ae(n,e){var t;return t=e.qi(n.a),t}function tt(n,e){return n.a+=e.a,n.b+=e.b,n}function mi(n,e){return n.a-=e.a,n.b-=e.b,n}function xae(n){return Pb(n.j.c,0),n.a=-1,n}function yV(n,e,t){return t=So(n,e,11,t),t}function Fae(n,e,t){t!=null&&mT(e,Fx(n,t))}function Bae(n,e,t){t!=null&&vT(e,Fx(n,t))}function jp(n,e,t,i){q.call(this,n,e,t,i)}function jV(n,e,t,i){q.call(this,n,e,t,i)}function WAn(n,e,t,i){jV.call(this,n,e,t,i)}function JAn(n,e,t,i){bM.call(this,n,e,t,i)}function NL(n,e,t,i){bM.call(this,n,e,t,i)}function EV(n,e,t,i){bM.call(this,n,e,t,i)}function QAn(n,e,t,i){NL.call(this,n,e,t,i)}function CV(n,e,t,i){NL.call(this,n,e,t,i)}function Nn(n,e,t,i){EV.call(this,n,e,t,i)}function YAn(n,e,t,i){CV.call(this,n,e,t,i)}function ZAn(n,e,t,i){jW.call(this,n,e,t,i)}function Kb(n,e){Ir.call(this,p8+n+Td+e)}function MV(n,e){return n.jk().wi().ri(n,e)}function TV(n,e){return n.jk().wi().ti(n,e)}function nSn(n,e){return Jn(n),x(n)===x(e)}function An(n,e){return Jn(n),x(n)===x(e)}function Rae(n,e){return n.b.Bd(new ECn(n,e))}function Kae(n,e){return n.b.Bd(new CCn(n,e))}function eSn(n,e){return n.b.Bd(new MCn(n,e))}function _ae(n,e){return n.e=u(n.d.Kb(e),159)}function AV(n,e,t){return n.lastIndexOf(e,t)}function Hae(n,e,t){return bt(n[e.a],n[t.a])}function qae(n,e){return U(e,(cn(),Cj),n)}function Uae(n,e){return jc(e.a.d.p,n.a.d.p)}function Gae(n,e){return jc(n.a.d.p,e.a.d.p)}function zae(n,e){return bt(n.c-n.s,e.c-e.s)}function Xae(n,e){return bt(n.b.e.a,e.b.e.a)}function Vae(n,e){return bt(n.c.e.a,e.c.e.a)}function tSn(n){return n.c?qr(n.c.a,n,0):-1}function Ep(n){return n==Ud||n==tl||n==qc}function SV(n,e){this.c=n,oN.call(this,n,e)}function iSn(n,e,t){this.a=n,JX.call(this,e,t)}function rSn(n){this.c=n,IC.call(this,Ey,0)}function cSn(n,e,t){this.c=e,this.b=t,this.a=n}function D7(n){k4(),this.d=n,this.a=new Cg}function uSn(n){oh(),this.a=(Dn(),new r4(n))}function Wae(n,e){hl(n.f)?QCe(n,e):Sye(n,e)}function oSn(n,e){sbe.call(this,n,n.length,e)}function Jae(n,e){Uf||e&&(n.d=e)}function sSn(n,e){return D(e,15)&&xqn(n.c,e)}function Qae(n,e,t){return u(n.c,71).Wk(e,t)}function UC(n,e,t){return u(n.c,71).Xk(e,t)}function Yae(n,e,t){return oae(n,u(e,343),t)}function PV(n,e,t){return sae(n,u(e,343),t)}function Zae(n,e,t){return PKn(n,u(e,343),t)}function fSn(n,e,t){return _ye(n,u(e,343),t)}function $6(n,e){return e==null?null:tw(n.b,e)}function IV(n){return $b(n)?(Jn(n),n):n.ue()}function GC(n){return!isNaN(n)&&!isFinite(n)}function $L(n){jTn(this),vo(this),Bi(this,n)}function _u(n){pL(this),zV(this.c,0,n.Pc())}function _o(n,e,t){this.a=n,this.b=e,this.c=t}function hSn(n,e,t){this.a=n,this.b=e,this.c=t}function lSn(n,e,t){this.d=n,this.b=t,this.a=e}function aSn(n){this.a=n,fl(),vc(Date.now())}function dSn(n){bo(n.a),GJ(n.c,n.b),n.b=null}function xL(){xL=F,Oun=new $0n,AQn=new x0n}function bSn(){bSn=F,Ioe=K(ki,Bn,1,0,5,1)}function wSn(){wSn=F,Voe=K(ki,Bn,1,0,5,1)}function OV(){OV=F,Woe=K(ki,Bn,1,0,5,1)}function oh(){oh=F,new KG((Dn(),Dn(),sr))}function nde(n){return B4(),Ee((yNn(),IQn),n)}function ede(n){return Gu(),Ee((lNn(),xQn),n)}function tde(n){return YT(),Ee((JDn(),HQn),n)}function ide(n){return cT(),Ee((QDn(),qQn),n)}function rde(n){return NA(),Ee((Jxn(),UQn),n)}function cde(n){return wf(),Ee((fNn(),XQn),n)}function ude(n){return Uu(),Ee((sNn(),WQn),n)}function ode(n){return bu(),Ee((hNn(),QQn),n)}function sde(n){return VA(),Ee((zMn(),kYn),n)}function fde(n){return N0(),Ee((ENn(),jYn),n)}function hde(n){return Vp(),Ee((MNn(),CYn),n)}function lde(n){return T5(),Ee((CNn(),AYn),n)}function ade(n){return YE(),Ee((jDn(),SYn),n)}function dde(n){return uT(),Ee((YDn(),GYn),n)}function bde(n){return t5(),Ee((aNn(),pZn),n)}function wde(n){return Vi(),Ee((u$n(),yZn),n)}function gde(n){return nm(),Ee((ANn(),TZn),n)}function pde(n){return dd(),Ee((TNn(),DZn),n)}function DV(n,e){if(!n)throw M(new Gn(e))}function v4(n){if(!n)throw M(new Or(btn))}function FL(n,e){if(n!=e)throw M(new Bo)}function gSn(n,e,t){this.a=n,this.b=e,this.c=t}function LV(n,e,t){this.a=n,this.b=e,this.c=t}function pSn(n,e,t){this.a=n,this.b=e,this.c=t}function zC(n,e,t){this.b=n,this.a=e,this.c=t}function NV(n,e,t){this.b=n,this.c=e,this.a=t}function $V(n,e,t){this.a=n,this.b=e,this.c=t}function XC(n,e,t){this.e=e,this.b=n,this.d=t}function mSn(n,e,t){this.b=n,this.a=e,this.c=t}function mde(n,e,t){return Va(),n.a.Yd(e,t),e}function BL(n){var e;return e=new ubn,e.e=n,e}function xV(n){var e;return e=new qyn,e.b=n,e}function L7(){L7=F,CP=new sgn,MP=new fgn}function VC(){VC=F,XZn=new xgn,zZn=new Fgn}function Fs(){Fs=F,YZn=new G2n,ZZn=new z2n}function vde(n){return D0(),Ee((qLn(),fne),n)}function kde(n){return tr(),Ee((XMn(),HZn),n)}function yde(n){return OT(),Ee((PNn(),GZn),n)}function jde(n){return xf(),Ee((SNn(),tne),n)}function Ede(n){return ow(),Ee((o$n(),rne),n)}function Cde(n){return DA(),Ee(($xn(),hne),n)}function Mde(n){return Yp(),Ee((D$n(),lne),n)}function Tde(n){return QM(),Ee((cLn(),ane),n)}function Ade(n){return c5(),Ee((_Ln(),dne),n)}function Sde(n){return bT(),Ee((HLn(),bne),n)}function Pde(n){return o1(),Ee((s$n(),wne),n)}function Ide(n){return wk(),Ee((eLn(),gne),n)}function Ode(n){return jm(),Ee(($$n(),jne),n)}function Dde(n){return pr(),Ee((aFn(),Ene),n)}function Lde(n){return Z4(),Ee((GLn(),Cne),n)}function Nde(n){return vl(),Ee((zLn(),Tne),n)}function $de(n){return KM(),Ee((nLn(),Ane),n)}function xde(n){return Vk(),Ee((N$n(),yne),n)}function Fde(n){return hd(),Ee((ULn(),mne),n)}function Bde(n){return vA(),Ee((L$n(),vne),n)}function Rde(n){return sk(),Ee((tLn(),kne),n)}function Kde(n){return Yo(),Ee((h$n(),Sne),n)}function _de(n){return a1(),Ee((Xxn(),Yte),n)}function Hde(n){return w5(),Ee((XLn(),Zte),n)}function qde(n){return cw(),Ee((INn(),nie),n)}function Ude(n){return M5(),Ee((f$n(),eie),n)}function Gde(n){return ps(),Ee((dFn(),tie),n)}function zde(n){return lh(),Ee((ONn(),iie),n)}function Xde(n){return dk(),Ee((iLn(),rie),n)}function Vde(n){return gr(),Ee((JLn(),uie),n)}function Wde(n){return ST(),Ee((VLn(),oie),n)}function Jde(n){return a5(),Ee((WLn(),sie),n)}function Qde(n){return om(),Ee((QLn(),fie),n)}function Yde(n){return dT(),Ee((YLn(),hie),n)}function Zde(n){return DT(),Ee((ZLn(),lie),n)}function n0e(n){return O0(),Ee((oNn(),Aie),n)}function e0e(n){return Z6(),Ee((rLn(),Die),n)}function t0e(n){return fh(),Ee((sLn(),Rie),n)}function i0e(n){return Pf(),Ee((fLn(),_ie),n)}function r0e(n){return af(),Ee((hLn(),tre),n)}function c0e(n){return M0(),Ee((lLn(),fre),n)}function u0e(n){return Qp(),Ee((BNn(),hre),n)}function o0e(n){return K5(),Ee((VMn(),lre),n)}function s0e(n){return d5(),Ee((nNn(),are),n)}function f0e(n){return b5(),Ee((FNn(),$re),n)}function h0e(n){return FM(),Ee((uLn(),xre),n)}function l0e(n){return yT(),Ee((oLn(),_re),n)}function a0e(n){return wA(),Ee((l$n(),qre),n)}function d0e(n){return Pk(),Ee((eNn(),Gre),n)}function b0e(n){return ZM(),Ee((aLn(),Ure),n)}function w0e(n){return sA(),Ee((xNn(),lce),n)}function g0e(n){return AT(),Ee((tNn(),ace),n)}function p0e(n){return XT(),Ee((iNn(),dce),n)}function m0e(n){return rA(),Ee((rNn(),wce),n)}function v0e(n){return _T(),Ee((cNn(),mce),n)}function k0e(n){return GM(),Ee((dLn(),Rce),n)}function y0e(n){return V4(),Ee((ZDn(),_Zn),n)}function j0e(n){return Vn(),Ee((x$n(),xZn),n)}function E0e(n){return nT(),Ee((uNn(),Kce),n)}function C0e(n){return N$(),Ee((bLn(),_ce),n)}function M0e(n){return x5(),Ee((a$n(),qce),n)}function T0e(n){return eC(),Ee((IDn(),Gce),n)}function A0e(n){return $k(),Ee((bNn(),Uce),n)}function S0e(n){return tC(),Ee((ODn(),Xce),n)}function P0e(n){return ik(),Ee((wLn(),Vce),n)}function I0e(n){return Jk(),Ee((d$n(),Wce),n)}function O0e(n){return s6(),Ee((DDn(),lue),n)}function D0e(n){return Mk(),Ee((gLn(),aue),n)}function L0e(n){return pf(),Ee((w$n(),mue),n)}function N0e(n){return l1(),Ee((Lxn(),kue),n)}function $0e(n){return Rh(),Ee((F$n(),yue),n)}function x0e(n){return wd(),Ee((B$n(),Aue),n)}function F0e(n){return ci(),Ee((b$n(),zue),n)}function B0e(n){return $f(),Ee((wNn(),Xue),n)}function R0e(n){return El(),Ee((RNn(),Vue),n)}function K0e(n){return pA(),Ee((R$n(),Wue),n)}function _0e(n){return jl(),Ee((dNn(),Que),n)}function H0e(n){return To(),Ee((KNn(),Zue),n)}function q0e(n){return lw(),Ee((Wxn(),noe),n)}function U0e(n){return Bg(),Ee((g$n(),eoe),n)}function G0e(n){return Oi(),Ee((K$n(),toe),n)}function z0e(n){return zu(),Ee((_$n(),ioe),n)}function X0e(n){return en(),Ee((p$n(),roe),n)}function V0e(n){return go(),Ee((_Nn(),foe),n)}function W0e(n){return io(),Ee((Vxn(),hoe),n)}function J0e(n){return Gp(),Ee((gNn(),loe),n)}function Q0e(n,e){return Jn(n),n+(Jn(e),e)}function Y0e(n){return RL(),Ee((pLn(),aoe),n)}function Z0e(n){return qT(),Ee((HNn(),doe),n)}function nbe(n){return LT(),Ee((qNn(),goe),n)}function k4(){k4=F,tln=(en(),Wn),II=Zn}function RL(){RL=F,vdn=new VSn,kdn=new LPn}function ebe(n){return!n.e&&(n.e=new Z),n.e}function KL(n,e){this.c=n,this.a=e,this.b=e-n}function vSn(n,e,t){this.a=n,this.b=e,this.c=t}function _L(n,e,t){this.a=n,this.b=e,this.c=t}function FV(n,e,t){this.a=n,this.b=e,this.c=t}function BV(n,e,t){this.a=n,this.b=e,this.c=t}function kSn(n,e,t){this.a=n,this.b=e,this.c=t}function ySn(n,e,t){this.a=n,this.b=e,this.c=t}function Xl(n,e,t){this.e=n,this.a=e,this.c=t}function jSn(n,e,t){Ko(),tJ.call(this,n,e,t)}function HL(n,e,t){Ko(),RW.call(this,n,e,t)}function RV(n,e,t){Ko(),RW.call(this,n,e,t)}function KV(n,e,t){Ko(),RW.call(this,n,e,t)}function ESn(n,e,t){Ko(),HL.call(this,n,e,t)}function _V(n,e,t){Ko(),HL.call(this,n,e,t)}function CSn(n,e,t){Ko(),_V.call(this,n,e,t)}function MSn(n,e,t){Ko(),RV.call(this,n,e,t)}function TSn(n,e,t){Ko(),KV.call(this,n,e,t)}function qL(n){rM.call(this,n.d,n.c,n.a,n.b)}function HV(n){rM.call(this,n.d,n.c,n.a,n.b)}function qV(n){this.d=n,c9n(this),this.b=nwe(n.d)}function tbe(n){return Cm(),Ee((Nxn(),Poe),n)}function N7(n,e){return Se(n),Se(e),new NEn(n,e)}function Cp(n,e){return Se(n),Se(e),new RSn(n,e)}function ibe(n,e){return Se(n),Se(e),new KSn(n,e)}function rbe(n,e){return Se(n),Se(e),new qEn(n,e)}function UL(n){return oe(n.b!=0),Xo(n,n.a.a)}function cbe(n){return oe(n.b!=0),Xo(n,n.c.b)}function ube(n){return!n.c&&(n.c=new W3),n.c}function y4(n){var e;return e=new Z,b$(e,n),e}function obe(n){var e;return e=new ni,b$(e,n),e}function ASn(n){var e;return e=new GG,A$(e,n),e}function $7(n){var e;return e=new Ct,A$(e,n),e}function u(n,e){return x6(n==null||Tx(n,e)),n}function sbe(n,e,t){TPn.call(this,e,t),this.a=n}function SSn(n,e){this.c=n,this.b=e,this.a=!1}function PSn(){this.a=";,;",this.b="",this.c=""}function ISn(n,e,t){this.b=n,_Mn.call(this,e,t)}function UV(n,e,t){this.c=n,oC.call(this,e,t)}function GV(n,e,t){d4.call(this,n,e),this.b=t}function zV(n,e,t){Bnn(t,0,n,e,t.length,!1)}function Lh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function XV(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function fbe(n,e){e&&(n.b=e,n.a=(X1(e),e.a))}function x7(n,e){if(!n)throw M(new Gn(e))}function Mp(n,e){if(!n)throw M(new Or(e))}function VV(n,e){if(!n)throw M(new Bjn(e))}function hbe(n,e){return ZE(),jc(n.d.p,e.d.p)}function lbe(n,e){return kl(),bt(n.e.b,e.e.b)}function abe(n,e){return kl(),bt(n.e.a,e.e.a)}function dbe(n,e){return jc(GSn(n.d),GSn(e.d))}function WC(n,e){return e&&vM(n,e.d)?e:null}function bbe(n,e){return e==(en(),Wn)?n.c:n.d}function WV(n){return Y1(dwe(Vr(n)?ds(n):n))}function wbe(n){return new V(n.c+n.b,n.d+n.a)}function OSn(n){return n!=null&&!lx(n,D9,L9)}function gbe(n,e){return(fBn(n)<<4|fBn(e))&ui}function DSn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function JV(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function QV(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function pbe(n,e){var t;return t=n.c,PQ(n,e),t}function YV(n,e){return e<0?n.g=-1:n.g=e,n}function JC(n,e){return Mme(n),n.a*=e,n.b*=e,n}function LSn(n,e,t){A$n.call(this,e,t),this.d=n}function F7(n,e,t){pX.call(this,n,e),this.c=t}function QC(n,e,t){pX.call(this,n,e),this.c=t}function ZV(n){OV(),ME.call(this),this.ci(n)}function NSn(){$4(),Bwe.call(this,(R1(),Ps))}function $Sn(n){return nt(),new Nh(0,n)}function xSn(){xSn=F,AU=(Dn(),new nD(IK))}function YC(){YC=F,new hZ((bD(),HK),(dD(),_K))}function FSn(){FSn=F,pun=K(Gi,J,17,256,0,1)}function BSn(){this.b=$(R(rn((Us(),y_))))}function GL(n){this.b=n,this.a=Ja(this.b.a).Od()}function RSn(n,e){this.b=n,this.a=e,GO.call(this)}function KSn(n,e){this.a=n,this.b=e,GO.call(this)}function _Sn(n,e,t){this.a=n,pg.call(this,e,t)}function HSn(n,e,t){this.a=n,pg.call(this,e,t)}function j4(n,e,t){var i;i=new qb(t),bf(n,e,i)}function nW(n,e,t){var i;return i=n[e],n[e]=t,i}function ZC(n){var e;return e=n.slice(),o$(e,n)}function nM(n){var e;return e=n.n,n.a.b+e.d+e.a}function qSn(n){var e;return e=n.n,n.e.b+e.d+e.a}function eW(n){var e;return e=n.n,n.e.a+e.b+e.c}function tW(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function Fe(n,e){return xt(n,e,n.c.b,n.c),!0}function mbe(n){return n.a?n.a:vN(n)}function vbe(n){return Lp(),Kh(n)==At(ra(n))}function kbe(n){return Lp(),ra(n)==At(Kh(n))}function d0(n,e){return I5(n,new d4(e.a,e.b))}function ybe(n,e){return yM(),Nx(n,e),new lIn(n,e)}function jbe(n,e){return n.c=e)throw M(new YG)}function _b(n,e){return Lk(n,(Jn(e),new a9n(e)))}function Ap(n,e){return Lk(n,(Jn(e),new d9n(e)))}function SPn(n,e,t){return VLe(n,u(e,12),u(t,12))}function PPn(n){return Ou(),u(n,12).g.c.length!=0}function IPn(n){return Ou(),u(n,12).e.c.length!=0}function uwe(n,e){return Hp(),bt(e.a.o.a,n.a.o.a)}function owe(n,e){e.Bb&kc&&!n.a.o&&(n.a.o=e)}function swe(n,e){e.Ug("General 'Rotator",1),jDe(n)}function fwe(n,e,t){e.qf(t,$(R(ee(n.b,t)))*n.a)}function OPn(n,e,t){return Vg(),W4(n,e)&&W4(n,t)}function K6(n){return zu(),!n.Hc(Fl)&&!n.Hc(Ia)}function hwe(n){return n.e?qJ(n.e):null}function _6(n){return Vr(n)?""+n:$qn(n)}function yW(n){var e;for(e=n;e.f;)e=e.f;return e}function lwe(n,e,t){return $t(e,0,oW(e[0],t[0])),e}function Vl(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function q(n,e,t,i){ti.call(this,n,e,t),this.b=i}function Ci(n,e,t,i,r){c$.call(this,n,e,t,i,r,-1)}function H6(n,e,t,i,r){ck.call(this,n,e,t,i,r,-1)}function bM(n,e,t,i){F7.call(this,n,e,t),this.b=i}function DPn(n){PMn.call(this,n,!1),this.a=!1}function LPn(){sMn.call(this,"LOOKAHEAD_LAYOUT",1)}function NPn(n){this.b=n,kp.call(this,n),RTn(this)}function $Pn(n){this.b=n,M7.call(this,n),KTn(this)}function Hb(n,e,t){this.a=n,jp.call(this,e,t,5,6)}function jW(n,e,t,i){this.b=n,ti.call(this,e,t,i)}function xPn(n,e){this.b=n,H8n.call(this,n.b),this.a=e}function FPn(n){this.a=kRn(n.a),this.b=new _u(n.b)}function EW(n,e){m0(),Hhe.call(this,n,FT(new Ku(e)))}function wM(n,e){return nt(),new BW(n,e,0)}function rN(n,e){return nt(),new BW(6,n,e)}function _i(n,e){for(Jn(e);n.Ob();)e.Cd(n.Pb())}function Zc(n,e){return Ai(e)?AN(n,e):!!wr(n.f,e)}function cN(n,e){return e.Vh()?ea(n.b,u(e,54)):e}function awe(n,e){return An(n.substr(0,e.length),e)}function $h(n){return new ie(new UX(n.a.length,n.a))}function gM(n){return new V(n.c+n.b/2,n.d+n.a/2)}function dwe(n){return Yc(~n.l&ro,~n.m&ro,~n.h&Il)}function uN(n){return typeof n===vy||typeof n===eB}function Hu(n){n.f=new iTn(n),n.i=new rTn(n),++n.g}function BPn(n){if(!n)throw M(new nc);return n.d}function Sp(n){var e;return e=l5(n),oe(e!=null),e}function bwe(n){var e;return e=I5e(n),oe(e!=null),e}function C4(n,e){var t;return t=n.a.gc(),BJ(e,t),t-e}function fi(n,e){var t;return t=n.a.zc(e,n),t==null}function R7(n,e){return n.a.zc(e,(_n(),ga))==null}function CW(n){return new Tn(null,vwe(n,n.length))}function MW(n,e,t){return cGn(n,u(e,42),u(t,176))}function Pp(n,e,t){return _s(n.a,e),nW(n.b,e.g,t)}function wwe(n,e,t){E4(t,n.a.c.length),Go(n.a,t,e)}function B(n,e,t,i){xFn(e,t,n.length),gwe(n,e,t,i)}function gwe(n,e,t,i){var r;for(r=e;r0?y.Math.log(n/e):-100}function KPn(n,e){return Ec(n,e)<0?-1:Ec(n,e)>0?1:0}function K7(n,e){OTn(n,D(e,160)?e:u(e,2036).Rl())}function PW(n,e){if(n==null)throw M(new fp(e))}function vwe(n,e){return yme(e,n.length),new XSn(n,e)}function IW(n,e){return e?Bi(n,e):!1}function kwe(){return RE(),A(T(uQn,1),G,549,0,[GK])}function U6(n){return n.e==0?n:new Ya(-n.e,n.d,n.a)}function ywe(n,e){return bt(n.c.c+n.c.b,e.c.c+e.c.b)}function _7(n,e){xt(n.d,e,n.b.b,n.b),++n.a,n.c=null}function _Pn(n,e){return n.c?_Pn(n.c,e):nn(n.b,e),n}function jwe(n,e,t){var i;return i=Jb(n,e),qN(n,e,t),i}function HPn(n,e,t){var i;for(i=0;i=n.g}function $t(n,e,t){return dae(t==null||sPe(n,t)),n[e]=t}function $W(n,e){return zn(e,n.length+1),n.substr(e)}function gN(n,e){for(Jn(e);n.c=n?new Dz:Gme(n-1)}function Hi(n){return!n.a&&n.c?n.c.b:n.a}function KW(n){return D(n,616)?n:new oOn(n)}function X1(n){n.c?X1(n.c):(ta(n),n.d=!0)}function X6(n){n.c?n.c.$e():(n.d=!0,fTe(n))}function sIn(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function fIn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function _we(n,e){var t;t=n.Ih(e),t>=0?n.ki(t):Pnn(n,e)}function hIn(n,e){n.c<0||n.b.b0;)n=n<<1|(n<0?1:0);return n}function mIn(n,e){var t;return t=new Lc(n),Kn(e.c,t),t}function vIn(n,e){n.u.Hc((zu(),Fl))&&zEe(n,e),h4e(n,e)}function mc(n,e){return x(n)===x(e)||n!=null&&rt(n,e)}function Cr(n,e){return JL(n.a,e)?n.b[u(e,22).g]:null}function nge(){return YE(),A(T(oon,1),G,489,0,[b_])}function ege(){return eC(),A(T($1n,1),G,490,0,[Bq])}function tge(){return tC(),A(T(zce,1),G,558,0,[Rq])}function ige(){return s6(),A(T(tan,1),G,539,0,[Hj])}function jM(n){return!n.n&&(n.n=new q(Ar,n,1,7)),n.n}function mN(n){return!n.c&&(n.c=new q(Qu,n,9,9)),n.c}function UW(n){return!n.c&&(n.c=new Nn(he,n,5,8)),n.c}function rge(n){return!n.b&&(n.b=new Nn(he,n,4,7)),n.b}function H7(n){return n.j.c.length=0,zW(n.c),xae(n.a),n}function P4(n){return n.e==rv&&jfe(n,Y8e(n.g,n.b)),n.e}function q7(n){return n.f==rv&&Cfe(n,q7e(n.g,n.b)),n.f}function We(n,e,t,i){return Hxn(n,e,t,!1),BT(n,i),n}function kIn(n,e){this.b=n,oN.call(this,n,e),RTn(this)}function yIn(n,e){this.b=n,SV.call(this,n,e),KTn(this)}function V6(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function GW(n,e){this.b=n,this.c=e,this.a=new dp(this.b)}function Xi(n,e){return zn(e,n.length),n.charCodeAt(e)}function cge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function uge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function ut(n,e){return ta(n),new Tn(n,new tQ(e,n.a))}function _r(n,e){return ta(n),new Tn(n,new _J(e,n.a))}function Ub(n,e){return ta(n),new uV(n,new ILn(e,n.a))}function EM(n,e){return ta(n),new oV(n,new OLn(e,n.a))}function oge(n,e){return new GIn(u(Se(n),50),u(Se(e),50))}function sge(n,e){return bt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function jIn(n,e,t){t.a?tu(n,e.b-n.f/2):eu(n,e.a-n.g/2)}function fge(n,e){return bt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function hge(n,e){return $z(),bt((Jn(n),n),(Jn(e),e))}function lge(n){return n!=null&&t7(jO,n.toLowerCase())}function zW(n){var e;for(e=n.Kc();e.Ob();)e.Pb(),e.Qb()}function Ag(n){var e;return e=n.b,!e&&(n.b=e=new N8n(n)),e}function vN(n){var e;return e=Wme(n),e||null}function EIn(n,e){var t,i;return t=n/e,i=wi(t),t>i&&++i,i}function age(n,e,t){var i;i=u(n.d.Kb(t),159),i&&i.Nb(e)}function dge(n,e,t){wIe(n.a,t),zve(t),xCe(n.b,t),xIe(e,t)}function CM(n,e,t,i){this.a=n,this.c=e,this.b=t,this.d=i}function XW(n,e,t,i){this.c=n,this.b=e,this.a=t,this.d=i}function CIn(n,e,t,i){this.c=n,this.b=e,this.d=t,this.a=i}function Ho(n,e,t,i){this.c=n,this.d=e,this.b=t,this.a=i}function MIn(n,e,t,i){this.a=n,this.d=e,this.c=t,this.b=i}function kN(n,e,t,i){this.a=n,this.e=e,this.d=t,this.c=i}function TIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function yN(n,e,t){this.a=ktn,this.d=n,this.b=e,this.c=t}function Op(n,e,t,i){je.call(this,n,e),this.a=t,this.b=i}function AIn(n,e){this.d=(Jn(n),n),this.a=16449,this.c=e}function SIn(n){this.a=new Z,this.e=K(ye,J,53,n,0,2)}function bge(n){n.Ug("No crossing minimization",1),n.Vg()}function PIn(){ec.call(this,"There is no more element.")}function IIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function OIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function Za(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function DIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function LIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function NIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function jN(n,e,t){var i,r;return i=utn(n),r=e.ti(t,i),r}function al(n){var e,t;return t=(e=new Jd,e),K4(t,n),t}function EN(n){var e,t;return t=(e=new Jd,e),fnn(t,n),t}function wge(n,e){var t;return t=ee(n.f,e),HQ(e,t),null}function $In(n){return!n.b&&(n.b=new q(Vt,n,12,3)),n.b}function xIn(n){return x6(n==null||uN(n)&&n.Tm!==Q2),n}function MM(n){return n.n&&(n.e!==Fzn&&n.je(),n.j=null),n}function I4(n){if(eo(n.d),n.d.d!=n.c)throw M(new Bo)}function VW(n){return oe(n.b0&&bKn(this)}function FIn(n,e){this.a=n,bae.call(this,n,u(n.d,15).fd(e))}function gge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function pge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function mge(n){return _0(n)&&on(un(z(n,(cn(),Nd))))}function vge(n,e){return Pn(n,u(v(e,(cn(),Cv)),17),e)}function kge(n,e){return u(v(n,(W(),T3)),15).Fc(e),e}function WW(n,e){return n.b=e.b,n.c=e.c,n.d=e.d,n.a=e.a,n}function BIn(n,e,t,i){this.b=n,this.c=i,IC.call(this,e,t)}function yge(n,e,t){n.i=0,n.e=0,e!=t&&yFn(n,e,t)}function jge(n,e,t){n.i=0,n.e=0,e!=t&&jFn(n,e,t)}function Ege(n,e,t){return o6(),J5e(u(ee(n.e,e),529),t)}function Dp(n){var e;return e=n.f,e||(n.f=new h4(n,n.c))}function RIn(n,e){return Fg(n.j,e.s,e.c)+Fg(e.e,n.s,n.c)}function KIn(n,e){n.e&&!n.e.a&&(Ayn(n.e,e),KIn(n.e,e))}function _In(n,e){n.d&&!n.d.a&&(Ayn(n.d,e),_In(n.d,e))}function Cge(n,e){return-bt(Su(n)*ao(n),Su(e)*ao(e))}function Mge(n){return u(n.ld(),149).Pg()+":"+Jr(n.md())}function HIn(){tF(this,new oG),this.wb=(G1(),Hn),o4()}function qIn(n){this.b=new Z,hi(this.b,this.b),this.a=n}function JW(n,e){new Ct,this.a=new Mu,this.b=n,this.c=e}function j0(){j0=F,Pun=new FU,ZK=new FU,Iun=new D0n}function Dn(){Dn=F,sr=new A0n,Wh=new P0n,hP=new I0n}function QW(){QW=F,RQn=new nbn,_Qn=new aW,KQn=new ebn}function Lp(){Lp=F,mP=new Z,m_=new de,p_=new Z}function TM(n,e){if(n==null)throw M(new fp(e));return n}function AM(n){return!n.a&&(n.a=new q(Ye,n,10,11)),n.a}function ft(n){return!n.q&&(n.q=new q(Ss,n,11,10)),n.q}function H(n){return!n.s&&(n.s=new q(ku,n,21,17)),n.s}function Tge(n){return Se(n),IRn(new ie(ce(n.a.Kc(),new En)))}function Age(n,e){return wo(n),wo(e),Fjn(u(n,22),u(e,22))}function nd(n,e,t){var i,r;i=IV(t),r=new AE(i),bf(n,e,r)}function MN(n,e,t,i,r,c){ck.call(this,n,e,t,i,r,c?-2:-1)}function UIn(n,e,t,i){pX.call(this,e,t),this.b=n,this.a=i}function GIn(n,e){Vfe.call(this,new iN(n)),this.a=n,this.b=e}function YW(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Sge(n){Fs();var e;e=u(n.g,10),e.n.a=n.d.c+e.d.b}function O4(){O4=F;var n,e;e=!$8e(),n=new V3,VK=e?new og:n}function TN(n){return Dn(),D(n,59)?new jD(n):new BC(n)}function SM(n){return D(n,16)?new F6(u(n,16)):obe(n.Kc())}function Pge(n){return new HTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function Ige(n){return new qTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function ZW(n){return n&&n.hashCode?n.hashCode():l0(n)}function AN(n,e){return e==null?!!wr(n.f,null):zbe(n.i,e)}function Oge(n,e){var t;return t=$X(n.a,e),t&&(e.d=null),t}function zIn(n,e,t){return n.f?n.f.ef(e,t):!1}function U7(n,e,t,i){$t(n.c[e.g],t.g,i),$t(n.c[t.g],e.g,i)}function SN(n,e,t,i){$t(n.c[e.g],e.g,t),$t(n.b[e.g],e.g,i)}function Dge(n,e,t){return $(R(t.a))<=n&&$(R(t.b))>=e}function XIn(n,e){this.g=n,this.d=A(T(Qh,1),b1,10,0,[e])}function VIn(n){this.c=n,this.b=new Ul(u(Se(new tbn),50))}function WIn(n){this.c=n,this.b=new Ul(u(Se(new ewn),50))}function JIn(n){this.b=n,this.a=new Ul(u(Se(new Nbn),50))}function QIn(){this.b=new ni,this.d=new Ct,this.e=new ZG}function nJ(){this.c=new Li,this.d=new Li,this.e=new Li}function E0(){this.a=new Mu,this.b=(Co(3,mw),new Gc(3))}function Wl(n,e){this.e=n,this.a=ki,this.b=Qqn(e),this.c=e}function PM(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function YIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function ZIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function V1(n,e,t,i,r,c,s){return new GN(n.e,e,t,i,r,c,s)}function Lge(n,e,t){return t>=0&&An(n.substr(t,e.length),e)}function nOn(n,e){return D(e,149)&&An(n.b,u(e,149).Pg())}function Nge(n,e){return n.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function eOn(n,e){var t;return t=n.b.Qc(e),WDn(t,n.b.gc()),t}function G7(n,e){if(n==null)throw M(new fp(e));return n}function Hr(n){return n.u||(Zu(n),n.u=new NAn(n,n)),n.u}function PN(n){this.a=(Dn(),D(n,59)?new jD(n):new BC(n))}function au(n){var e;return e=u(Un(n,16),29),e||n.ii()}function IM(n,e){var t;return t=Xa(n.Rm),e==null?t:t+": "+e}function qo(n,e,t){return Fi(e,t,n.length),n.substr(e,t-e)}function tOn(n,e){qC.call(this),lQ(this),this.a=n,this.c=e}function $ge(n){n&&IM(n,n.ie())}function xge(n){HE(),y.setTimeout(function(){throw n},0)}function Fge(){return YT(),A(T(Bun,1),G,436,0,[o_,Fun])}function Bge(){return cT(),A(T(Kun,1),G,435,0,[Run,s_])}function Rge(){return uT(),A(T(bon,1),G,432,0,[v_,vP])}function Kge(){return V4(),A(T(KZn,1),G,517,0,[dj,L_])}function _ge(){return KM(),A(T(Qsn,1),G,429,0,[fH,Jsn])}function Hge(){return wk(),A(T($sn,1),G,428,0,[WP,Nsn])}function qge(){return QM(),A(T(Asn,1),G,431,0,[Tsn,V_])}function Uge(){return dk(),A(T(qhn,1),G,430,0,[UH,GH])}function Gge(){return Z6(),A(T(Oie,1),G,531,0,[e9,n9])}function zge(){return yT(),A(T(Rln,1),G,501,0,[RI,L2])}function Xge(){return fh(),A(T(Bie,1),G,523,0,[mb,y1])}function Vge(){return Pf(),A(T(Kie,1),G,522,0,[Rd,Xf])}function Wge(){return af(),A(T(ere,1),G,528,0,[zw,Ea])}function Jge(){return sk(),A(T(Bsn,1),G,488,0,[Fsn,QP])}function Qge(){return GM(),A(T(S1n,1),G,491,0,[$q,A1n])}function Yge(){return N$(),A(T(N1n,1),G,492,0,[D1n,L1n])}function Zge(){return FM(),A(T(Bln,1),G,433,0,[dq,Fln])}function n2e(){return ZM(),A(T(_ln,1),G,434,0,[Kln,vq])}function e2e(){return M0(),A(T(sre,1),G,465,0,[Ca,I2])}function t2e(){return ik(),A(T(x1n,1),G,438,0,[Kq,JI])}function i2e(){return Mk(),A(T(ran,1),G,437,0,[YI,ian])}function r2e(){return RL(),A(T(dO,1),G,347,0,[vdn,kdn])}function OM(n,e,t,i){return t>=0?n.Uh(e,t,i):n.Ch(null,t,i)}function z7(n){return n.b.b==0?n.a.sf():UL(n.b)}function c2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.f)}function u2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.k)}function eJ(n){return x(n.a)===x((D$(),CU))&&rOe(n),n.a}function o2e(n,e){n.b=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function s2e(n,e){n.c=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function iOn(n,e){ufe(this,new V(n.a,n.b)),ofe(this,$7(e))}function C0(){Wfe.call(this,new ap(Qb(12))),KX(!0),this.a=2}function IN(n,e,t){nt(),Wd.call(this,n),this.b=e,this.a=t}function tJ(n,e,t){Ko(),LE.call(this,e),this.a=n,this.b=t}function rOn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function f2e(n){return n.b==0?null:(oe(n.b!=0),Xo(n,n.a.a))}function Nc(n,e){return e==null?Kr(wr(n.f,null)):a6(n.i,e)}function cOn(n,e,t,i,r){return new rF(n,(B4(),i_),e,t,i,r)}function DM(n,e){return zDn(e),Lme(n,K(ye,_e,28,e,15,1),e)}function LM(n,e){return TM(n,"set1"),TM(e,"set2"),new VEn(n,e)}function h2e(n,e){var t=XK[n.charCodeAt(0)];return t??n}function uOn(n,e){var t,i;return t=e,i=new DO,LGn(n,t,i),i.d}function ON(n,e,t,i){var r;r=new FAn,e.a[t.g]=r,Pp(n.b,i,r)}function l2e(n,e){var t;return t=Ime(n.f,e),tt(HC(t),n.f.d)}function X7(n){var e;_me(n.a),dTn(n.a),e=new IE(n.a),HY(e)}function a2e(n,e){_qn(n,!0),nu(n.e.Rf(),new NV(n,!0,e))}function d2e(n,e){return Lp(),n==At(Kh(e))||n==At(ra(e))}function b2e(n,e){return kl(),u(v(e,(lc(),Sh)),17).a==n}function wi(n){return Math.max(Math.min(n,et),-2147483648)|0}function oOn(n){this.a=u(Se(n),277),this.b=(Dn(),new XX(n))}function sOn(n,e,t){this.i=new Z,this.b=n,this.g=e,this.a=t}function iJ(n,e,t){this.a=new Z,this.e=n,this.f=e,this.c=t}function NM(n,e,t){this.c=new Z,this.e=n,this.f=e,this.b=t}function fOn(n){qC.call(this),lQ(this),this.a=n,this.c=!0}function w2e(n){function e(){}return e.prototype=n||{},new e}function g2e(n){if(n.Ae())return null;var e=n.n;return rP[e]}function V7(n){return n.Db>>16!=3?null:u(n.Cb,27)}function Sf(n){return n.Db>>16!=9?null:u(n.Cb,27)}function hOn(n){return n.Db>>16!=6?null:u(n.Cb,74)}function M0(){M0=F,Ca=new cX(s3,0),I2=new cX(f3,1)}function fh(){fh=F,mb=new tX(f3,0),y1=new tX(s3,1)}function Pf(){Pf=F,Rd=new iX(_B,0),Xf=new iX("UP",1)}function lOn(){lOn=F,oQn=Ce((RE(),A(T(uQn,1),G,549,0,[GK])))}function aOn(n){var e;return e=new zE(Qb(n.length)),eY(e,n),e}function dOn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function p2e(n,e){return Zxn(n,e)?(W$n(n),!0):!1}function dl(n,e){if(e==null)throw M(new rp);return F8e(n,e)}function W7(n,e){var t;t=n.q.getHours(),n.q.setDate(e),H5(n,t)}function rJ(n,e,t){var i;i=n.Ih(e),i>=0?n.bi(i,t):ten(n,e,t)}function bOn(n,e){var t;return t=n.Ih(e),t>=0?n.Wh(t):hF(n,e)}function wOn(n,e){var t;for(Se(e),t=n.a;t;t=t.c)e.Yd(t.g,t.i)}function DN(n,e,t){var i;i=vFn(n,e,t),n.b=new ET(i.c.length)}function Sg(n,e,t){$M(),n&&Ve(yU,n,e),n&&Ve(hE,n,t)}function m2e(n,e){return VC(),_n(),u(e.a,17).a0}function cJ(n){var e;return e=n.d,e=n.bj(n.f),ve(n,e),e.Ob()}function gOn(n,e){var t;return t=new fW(e),_Kn(t,n),new _u(t)}function y2e(n){if(n.p!=0)throw M(new Cu);return C6(n.f,0)}function j2e(n){if(n.p!=0)throw M(new Cu);return C6(n.k,0)}function pOn(n){return n.Db>>16!=7?null:u(n.Cb,241)}function D4(n){return n.Db>>16!=6?null:u(n.Cb,241)}function mOn(n){return n.Db>>16!=7?null:u(n.Cb,167)}function At(n){return n.Db>>16!=11?null:u(n.Cb,27)}function Gb(n){return n.Db>>16!=17?null:u(n.Cb,29)}function vOn(n){return n.Db>>16!=3?null:u(n.Cb,155)}function uJ(n){var e;return ta(n),e=new ni,ut(n,new M9n(e))}function kOn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function E2e(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),H5(n,t)}function yOn(n,e){xC(this),this.f=e,this.g=n,MM(this),this.je()}function jOn(n,e){this.a=n,this.c=Ki(this.a),this.b=new PM(e)}function EOn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function COn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function MOn(n){this.a=n,this.b=K(Sie,J,2043,n.e.length,0,2)}function TOn(){this.a=new rh,this.e=new ni,this.g=0,this.i=0}function $M(){$M=F,yU=new de,hE=new de,ple(MQn,new wvn)}function AOn(){AOn=F,aie=Pu(new ii,(Vi(),zr),(tr(),bj))}function oJ(){oJ=F,die=Pu(new ii,(Vi(),zr),(tr(),bj))}function SOn(){SOn=F,wie=Pu(new ii,(Vi(),zr),(tr(),bj))}function POn(){POn=F,Lie=Ke(new ii,(Vi(),zr),(tr(),L8))}function ko(){ko=F,xie=Ke(new ii,(Vi(),zr),(tr(),L8))}function IOn(){IOn=F,Fie=Ke(new ii,(Vi(),zr),(tr(),L8))}function NN(){NN=F,Hie=Ke(new ii,(Vi(),zr),(tr(),L8))}function W6(n,e,t,i,r,c){return new ml(n.e,e,n.Lj(),t,i,r,c)}function Dr(n,e,t){return e==null?Vc(n.f,null,t):$0(n.i,e,t)}function Zi(n,e){n.c&&du(n.c.g,n),n.c=e,n.c&&nn(n.c.g,n)}function $i(n,e){n.c&&du(n.c.a,n),n.c=e,n.c&&nn(n.c.a,n)}function ic(n,e){n.i&&du(n.i.j,n),n.i=e,n.i&&nn(n.i.j,n)}function Ii(n,e){n.d&&du(n.d.e,n),n.d=e,n.d&&nn(n.d.e,n)}function $N(n,e){n.a&&du(n.a.k,n),n.a=e,n.a&&nn(n.a.k,n)}function xN(n,e){n.b&&du(n.b.f,n),n.b=e,n.b&&nn(n.b.f,n)}function OOn(n,e){$we(n,n.b,n.c),u(n.b.b,68),e&&u(e.b,68).b}function C2e(n,e){return bt(u(n.c,65).c.e.b,u(e.c,65).c.e.b)}function M2e(n,e){return bt(u(n.c,65).c.e.a,u(e.c,65).c.e.a)}function T2e(n){return Y$(),_n(),u(n.a,86).d.e!=0}function xM(n,e){D(n.Cb,184)&&(u(n.Cb,184).tb=null),zc(n,e)}function FN(n,e){D(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,e)}function A2e(n,e){LY(n,e),D(n.Cb,90)&&hw(Zu(u(n.Cb,90)),2)}function S2e(n,e){var t,i;t=e.c,i=t!=null,i&&Ip(n,new qb(e.c))}function DOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function LOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function NOn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function P2e(n,e,t){return nn(n.a,(yM(),Nx(e,t),new i0(e,t))),n}function $c(n,e){return dr(),a$(e)?new eM(e,n):new k7(e,n)}function J7(n){return dh(),Ec(n,0)>=0?ia(n):U6(ia(n1(n)))}function I2e(n){var e;return e=u(ZC(n.b),9),new _o(n.a,e,n.c)}function $On(n,e){var t;return t=u(tw(Dp(n.a),e),16),t?t.gc():0}function xOn(n,e,t){var i;oBn(e,t,n.c.length),i=t-e,Pz(n.c,e,i)}function Jl(n,e,t){oBn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function Np(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function BN(n){this.a=y.Math.cos(n),this.b=y.Math.sin(n)}function ed(n,e,t,i){this.c=n,this.d=i,$N(this,e),xN(this,t)}function sJ(n,e){Xfe.call(this,new ap(Qb(n))),Co(e,Ozn),this.a=e}function FOn(n,e,t){return new rF(n,(B4(),t_),null,!1,e,t)}function BOn(n,e,t){return new rF(n,(B4(),r_),e,t,null,!1)}function O2e(){return Gu(),A(T(xr,1),G,108,0,[xun,Yr,Aw])}function D2e(){return bu(),A(T(JQn,1),G,472,0,[kf,ma,Xs])}function L2e(){return Uu(),A(T(VQn,1),G,471,0,[Mh,pa,zs])}function N2e(){return wf(),A(T(Sw,1),G,237,0,[bc,Wc,wc])}function $2e(){return t5(),A(T(Pon,1),G,391,0,[E_,j_,C_])}function x2e(){return D0(),A(T(R_,1),G,372,0,[ub,va,cb])}function F2e(){return c5(),A(T(Psn,1),G,322,0,[$8,pj,Ssn])}function B2e(){return bT(),A(T(Osn,1),G,351,0,[Isn,VP,W_])}function R2e(){return hd(),A(T(pne,1),G,460,0,[Y_,mv,m2])}function K2e(){return Z4(),A(T(sH,1),G,299,0,[uH,oH,mj])}function _2e(){return vl(),A(T(Mne,1),G,311,0,[vj,k2,E3])}function H2e(){return w5(),A(T(Lhn,1),G,390,0,[FH,Dhn,MI])}function q2e(){return gr(),A(T(cie,1),G,463,0,[Q8,Vu,Jc])}function U2e(){return ST(),A(T(zhn,1),G,387,0,[Uhn,zH,Ghn])}function G2e(){return a5(),A(T(Xhn,1),G,349,0,[VH,XH,Ij])}function z2e(){return om(),A(T(Whn,1),G,350,0,[WH,Vhn,Y8])}function X2e(){return dT(),A(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])}function V2e(){return DT(),A(T(Zhn,1),G,388,0,[QH,Ov,Gw])}function W2e(){return O0(),A(T(Tie,1),G,464,0,[Oj,Z8,PI])}function If(n){return cc(A(T(Ei,1),J,8,0,[n.i.n,n.n,n.a]))}function J2e(){return d5(),A(T(gln,1),G,392,0,[wln,nq,Lj])}function ROn(){ROn=F,Fre=Pu(new ii,(Qp(),i9),(K5(),uln))}function FM(){FM=F,dq=new uX("DFS",0),Fln=new uX("BFS",1)}function KOn(n,e,t){var i;i=new E3n,i.b=e,i.a=t,++e.b,nn(n.d,i)}function Q2e(n,e,t){var i;i=new rr(t.d),tt(i,n),DY(e,i.a,i.b)}function Y2e(n,e){LTn(n,Ae(vi(w0(e,24),YA)),Ae(vi(e,YA)))}function zb(n,e){if(n<0||n>e)throw M(new Ir(Ptn+n+Itn+e))}function Ln(n,e){if(n<0||n>=e)throw M(new Ir(Ptn+n+Itn+e))}function zn(n,e){if(n<0||n>=e)throw M(new gz(Ptn+n+Itn+e))}function In(n,e){this.b=(Jn(n),n),this.a=e&vw?e:e|64|wh}function fJ(n){var e;return ta(n),e=(j0(),j0(),ZK),fT(n,e)}function Z2e(n,e,t){var i;return i=G5(n,e,!1),i.b<=e&&i.a<=t}function npe(){return nT(),A(T(O1n,1),G,439,0,[xq,I1n,P1n])}function epe(){return _T(),A(T(a1n,1),G,394,0,[l1n,Oq,h1n])}function tpe(){return XT(),A(T(f1n,1),G,445,0,[Bj,qI,Mq])}function ipe(){return rA(),A(T(bce,1),G,456,0,[Tq,Sq,Aq])}function rpe(){return Pk(),A(T(Uln,1),G,393,0,[KI,Hln,qln])}function cpe(){return AT(),A(T(s1n,1),G,300,0,[Cq,o1n,u1n])}function upe(){return jl(),A(T(ldn,1),G,346,0,[uO,M1,E9])}function ope(){return $k(),A(T(Fq,1),G,444,0,[XI,VI,WI])}function spe(){return $f(),A(T(Zan,1),G,278,0,[Fv,Jw,Bv])}function fpe(){return Gp(),A(T(mdn,1),G,280,0,[pdn,Yw,aO])}function T0(n){return Se(n),D(n,16)?new _u(u(n,16)):y4(n.Kc())}function hJ(n,e){return n&&n.equals?n.equals(e):x(n)===x(e)}function vi(n,e){return Y1(ewe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function lf(n,e){return Y1(twe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function RN(n,e){return Y1(iwe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hpe(n,e){var t;return t=(Jn(n),n).g,rV(!!t),Jn(e),t(e)}function _On(n,e){var t,i;return i=C4(n,e),t=n.a.fd(i),new zEn(n,t)}function lpe(n){return n.Db>>16!=6?null:u(dF(n),241)}function ape(n){if(n.p!=2)throw M(new Cu);return Ae(n.f)&ui}function dpe(n){if(n.p!=2)throw M(new Cu);return Ae(n.k)&ui}function E(n){return oe(n.ai?1:0}function GOn(n,e){var t,i;return t=s$(e),i=t,u(ee(n.c,i),17).a}function KN(n,e,t){var i;i=n.d[e.p],n.d[e.p]=n.d[t.p],n.d[t.p]=i}function Cpe(n,e,t){var i;n.n&&e&&t&&(i=new uvn,nn(n.e,i))}function _N(n,e){if(fi(n.a,e),e.d)throw M(new ec(nXn));e.d=n}function dJ(n,e){this.a=new Z,this.d=new Z,this.f=n,this.c=e}function zOn(){this.c=new PTn,this.a=new $Ln,this.b=new Xyn,lCn()}function XOn(){qp(),this.b=new de,this.a=new de,this.c=new Z}function VOn(n,e,t){this.d=n,this.j=e,this.e=t,this.o=-1,this.p=3}function WOn(n,e,t){this.d=n,this.k=e,this.f=t,this.o=-1,this.p=5}function JOn(n,e,t,i,r,c){dQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function QOn(n,e,t,i,r,c){bQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function YOn(n,e,t,i,r,c){OJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function ZOn(n,e,t,i,r,c){pQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function nDn(n,e,t,i,r,c){DJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function eDn(n,e,t,i,r,c){wQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function tDn(n,e,t,i,r,c){gQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function iDn(n,e,t,i,r,c){LJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function rDn(n,e,t,i){LE.call(this,t),this.b=n,this.c=e,this.d=i}function cDn(n,e){this.f=n,this.a=($4(),MO),this.c=MO,this.b=e}function uDn(n,e){this.g=n,this.d=($4(),TO),this.a=TO,this.b=e}function bJ(n,e){!n.c&&(n.c=new Rt(n,0)),HA(n.c,(at(),$9),e)}function Mpe(n,e){return oMe(n,e,D(e,102)&&(u(e,19).Bb&hr)!=0)}function Tpe(n,e){return KPn(vc(n.q.getTime()),vc(e.q.getTime()))}function oDn(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),16,new O8n(n))}function Ape(n){return!!n.u&&Sc(n.u.a).i!=0&&!(n.n&&Ix(n.n))}function Spe(n){return!!n.a&&no(n.a.a).i!=0&&!(n.b&&Ox(n.b))}function wJ(n,e){return e==0?!!n.o&&n.o.f!=0:Cx(n,e)}function Ppe(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Hc(t)}function sDn(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Mc(t)}function fDn(n,e){var t;return t=1-e,n.a[t]=jT(n.a[t],t),jT(n,e)}function hDn(n,e){var t,i;return i=vi(n,mr),t=Bs(e,32),lf(t,i)}function lDn(n,e,t){var i;i=(Se(n),new _u(n)),O7e(new EOn(i,e,t))}function Q7(n,e,t){var i;i=(Se(n),new _u(n)),D7e(new COn(i,e,t))}function fc(n,e,t,i,r,c){return Hxn(n,e,t,c),CY(n,i),MY(n,r),n}function aDn(n,e,t,i){return n.a+=""+qo(e==null?gu:Jr(e),t,i),n}function xi(n,e){this.a=n,zv.call(this,n),zb(e,n.gc()),this.b=e}function dDn(n){this.a=K(ki,Bn,1,QQ(y.Math.max(8,n))<<1,5,1)}function Y7(n){return u(Ff(n,K(Qh,b1,10,n.c.length,0,1)),199)}function hh(n){return u(Ff(n,K(O_,rR,18,n.c.length,0,1)),483)}function bDn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function J6(n){for(;n.d>0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function wDn(n){return oe(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function Ipe(n,e,t){n.a=e,n.c=t,n.b.a.$b(),vo(n.d),Pb(n.e.a.c,0)}function gDn(n,e){var t;n.e=new uz,t=aw(e),Yt(t,n.c),Iqn(n,t,0)}function ri(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,Fe(n.a,r)}function Q(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,Fe(n.b,r)}function pDn(n,e,t){if(n<0||et)throw M(new Ir(qje(n,e,t)))}function Z7(n,e){if(n<0||n>=e)throw M(new Ir(kEe(n,e)));return n}function Ope(n){if(!("stack"in n))try{throw n}catch{}return n}function Pg(n){return o6(),D(n.g,10)?u(n.g,10):null}function Dpe(n){return Ag(n).dc()?!1:(e1e(n,new Pr),!0)}function id(n){var e;return Vr(n)?(e=n,e==-0?0:e):X4e(n)}function mDn(n,e){return D(e,44)?xx(n.a,u(e,44)):!1}function vDn(n,e){return D(e,44)?xx(n.a,u(e,44)):!1}function kDn(n,e){return D(e,44)?xx(n.a,u(e,44)):!1}function gJ(n){var e;return X1(n),e=new L0n,lg(n.a,new j9n(e)),e}function pJ(){var n,e,t;return e=(t=(n=new Jd,n),t),nn(n0n,e),e}function BM(n){var e;return X1(n),e=new N0n,lg(n.a,new E9n(e)),e}function Lpe(n,e){return n.a<=n.b?(e.Dd(n.a++),!0):!1}function yDn(n){P$.call(this,n,(B4(),e_),null,!1,null,!1)}function jDn(){jDn=F,SYn=Ce((YE(),A(T(oon,1),G,489,0,[b_])))}function EDn(){EDn=F,eln=wIn(Y(1),Y(4)),nln=wIn(Y(1),Y(2))}function Npe(n,e){return new _L(e,L6(Ki(e.e),n,n),(_n(),!0))}function RM(n){return new Gc((Co(n,cB),oT(nr(nr(5,n),n/10|0))))}function $pe(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),273,new I8n(n))}function CDn(n){return u(Ff(n,K(FZn,DXn,12,n.c.length,0,1)),2042)}function xpe(n){return ko(),!fr(n)&&!(!fr(n)&&n.c.i.c==n.d.i.c)}function Fpe(n,e){return _p(),u(v(e,(lc(),O2)),17).a>=n.gc()}function Q6(n,e){vLe(e,n),JV(n.d),JV(u(v(n,(cn(),mI)),214))}function HN(n,e){kLe(e,n),QV(n.d),QV(u(v(n,(cn(),mI)),214))}function Bpe(n,e,t){n.d&&du(n.d.e,n),n.d=e,n.d&&b0(n.d.e,t,n)}function Rpe(n,e,t){return t.f.c.length>0?MW(n.a,e,t):MW(n.b,e,t)}function Kpe(n,e,t){var i;i=i9e();try{return Aae(n,e,t)}finally{D3e(i)}}function A0(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.pe()),i}function Y6(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.se()),i}function L4(n,e){var t,i;return t=Jb(n,e),i=null,t&&(i=t.se()),i}function bl(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=gnn(t)),i}function _pe(n,e,t){var i;return i=wm(t),FA(n.g,i,e),FA(n.i,e,t),e}function mJ(n,e,t){this.d=new $7n(this),this.e=n,this.i=e,this.f=t}function MDn(n,e,t,i){this.e=null,this.c=n,this.d=e,this.a=t,this.b=i}function TDn(n,e,t,i){ETn(this),this.c=n,this.e=e,this.f=t,this.b=i}function vJ(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function ADn(n,e,t,i){return D(t,59)?new iAn(n,e,t,i):new vW(n,e,t,i)}function N4(n){return D(n,16)?u(n,16).dc():!n.Kc().Ob()}function SDn(n){if(n.e.g!=n.b)throw M(new Bo);return!!n.c&&n.d>0}function be(n){return oe(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function kJ(n,e){Jn(e),$t(n.a,n.c,e),n.c=n.c+1&n.a.length-1,JRn(n)}function W1(n,e){Jn(e),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,e),JRn(n)}function PDn(n){var e;e=n.Gh(),this.a=D(e,71)?u(e,71).Ii():e.Kc()}function Hpe(n){return new In(Ame(u(n.a.md(),16).gc(),n.a.ld()),16)}function IDn(){IDn=F,Gce=Ce((eC(),A(T($1n,1),G,490,0,[Bq])))}function ODn(){ODn=F,Xce=Ce((tC(),A(T(zce,1),G,558,0,[Rq])))}function DDn(){DDn=F,lue=Ce((s6(),A(T(tan,1),G,539,0,[Hj])))}function qpe(){return dd(),A(T(Lon,1),G,389,0,[Ow,Don,P_,I_])}function Upe(){return B4(),A(T(lP,1),G,304,0,[e_,t_,i_,r_])}function Gpe(){return Vp(),A(T(EYn,1),G,332,0,[uj,cj,oj,sj])}function zpe(){return T5(),A(T(TYn,1),G,406,0,[fj,wP,gP,hj])}function Xpe(){return N0(),A(T(yYn,1),G,417,0,[rj,ij,a_,d_])}function Vpe(){return nm(),A(T(MZn,1),G,416,0,[rb,Iw,Pw,d2])}function Wpe(){return xf(),A(T(ene,1),G,421,0,[j3,lv,av,B_])}function Jpe(){return OT(),A(T(UZn,1),G,371,0,[F_,HP,qP,wj])}function Qpe(){return cw(),A(T(RH,1),G,203,0,[TI,BH,P2,S2])}function Ype(){return lh(),A(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])}function Zpe(n){var e;return n.j==(en(),ae)&&(e=mHn(n),Au(e,Zn))}function n3e(n,e){var t;t=e.a,Zi(t,e.c.d),Ii(t,e.d.d),nw(t.a,n.n)}function yJ(n,e){var t;return t=u(Nf(n.b,e),67),!t&&(t=new Ct),t}function xp(n){return o6(),D(n.g,154)?u(n.g,154):null}function e3e(n){n.a=null,n.e=null,Pb(n.b.c,0),Pb(n.f.c,0),n.c=null}function KM(){KM=F,fH=new Zz(qm,0),Jsn=new Zz("TOP_LEFT",1)}function Z6(){Z6=F,e9=new eX("UPPER",0),n9=new eX("LOWER",1)}function t3e(n,e){return vp(new V(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function LDn(n,e){return u(ho(_b(u(ot(n.k,e),15).Oc(),w2)),113)}function NDn(n,e){return u(ho(Ap(u(ot(n.k,e),15).Oc(),w2)),113)}function i3e(){return Qp(),A(T(rln,1),G,405,0,[LI,t9,i9,r9])}function r3e(){return b5(),A(T(xln,1),G,353,0,[aq,BI,lq,hq])}function c3e(){return sA(),A(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])}function u3e(){return go(),A(T(S9,1),G,386,0,[rE,Gd,iE,Qw])}function o3e(){return To(),A(T(Yue,1),G,291,0,[nE,nl,Aa,Zj])}function s3e(){return El(),A(T(aU,1),G,223,0,[lU,Yj,Rv,F3])}function f3e(){return qT(),A(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])}function h3e(){return LT(),A(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])}function l3e(n){return $M(),Zc(yU,n)?u(ee(yU,n),341).Qg():null}function Uo(n,e,t){return e<0?hF(n,t):u(t,69).wk().Bk(n,n.hi(),e)}function a3e(n,e,t){var i;return i=wm(t),FA(n.j,i,e),Ve(n.k,e,t),e}function d3e(n,e,t){var i;return i=wm(t),FA(n.d,i,e),Ve(n.e,e,t),e}function $Dn(n){var e,t;return e=(B1(),t=new HO,t),n&&AA(e,n),e}function jJ(n){var e;return e=n.aj(n.i),n.i>0&&Ic(n.g,0,e,0,n.i),e}function xDn(n,e){var t;for(t=n.j.c.length;t>24}function w3e(n){if(n.p!=1)throw M(new Cu);return Ae(n.k)<<24>>24}function g3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.k)<<16>>16}function p3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.f)<<16>>16}function Ig(n,e){return e.e==0||n.e==0?S8:(Am(),vF(n,e))}function RDn(n,e){return x(e)===x(n)?"(this Map)":e==null?gu:Jr(e)}function m3e(n,e,t){return tN(R(Kr(wr(n.f,e))),R(Kr(wr(n.f,t))))}function v3e(n,e,t){var i;i=u(ee(n.g,t),60),nn(n.a.c,new bi(e,i))}function KDn(n,e,t){n.i=0,n.e=0,e!=t&&(jFn(n,e,t),yFn(n,e,t))}function k3e(n,e,t,i,r){var c;c=yMe(r,t,i),nn(e,dEe(r,c)),rje(n,r,e)}function EJ(n,e,t,i,r){this.i=n,this.a=e,this.e=t,this.j=i,this.f=r}function _Dn(n,e){nJ.call(this),this.a=n,this.b=e,nn(this.a.b,this)}function HDn(n){this.b=new de,this.c=new de,this.d=new de,this.a=n}function qDn(n,e){var t;return t=new fg,n.Gd(t),t.a+="..",e.Hd(t),t.a}function UDn(n,e){var t;for(t=e;t;)a0(n,t.i,t.j),t=At(t);return n}function GDn(n,e,t){var i;return i=wm(t),Ve(n.b,i,e),Ve(n.c,e,t),e}function wl(n){var e;for(e=0;n.Ob();)n.Pb(),e=nr(e,1);return oT(e)}function Fh(n,e){dr();var t;return t=u(n,69).vk(),kje(t,e),t.xl(e)}function y3e(n,e,t){if(t){var i=t.oe();n.a[e]=i(t)}else delete n.a[e]}function CJ(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+ha),H5(n,t)}function j3e(n,e){return u(e==null?Kr(wr(n.f,null)):a6(n.i,e),288)}function MJ(n,e){return n==(Vn(),zt)&&e==zt?4:n==zt||e==zt?8:32}function _M(n,e,t){return RA(n,e,t,D(e,102)&&(u(e,19).Bb&hr)!=0)}function E3e(n,e,t){return Om(n,e,t,D(e,102)&&(u(e,19).Bb&hr)!=0)}function C3e(n,e,t){return bMe(n,e,t,D(e,102)&&(u(e,19).Bb&hr)!=0)}function TJ(n){n.b!=n.c&&(n.a=K(ki,Bn,1,8,5,1),n.b=0,n.c=0)}function n5(n){return oe(n.a=0&&n.a[t]===e[t];t--);return t<0}function HM(n){var e;return n?new fW(n):(e=new rh,A$(e,n),e)}function O3e(n,e){var t,i;i=!1;do t=lFn(n,e),i=i|t;while(t);return i}function D3e(n){n&&rme((az(),sun)),--cP,n&&uP!=-1&&(Ele(uP),uP=-1)}function qM(n){nnn(),LTn(this,Ae(vi(w0(n,24),YA)),Ae(vi(n,YA)))}function JDn(){JDn=F,HQn=Ce((YT(),A(T(Bun,1),G,436,0,[o_,Fun])))}function QDn(){QDn=F,qQn=Ce((cT(),A(T(Kun,1),G,435,0,[Run,s_])))}function YDn(){YDn=F,GYn=Ce((uT(),A(T(bon,1),G,432,0,[v_,vP])))}function ZDn(){ZDn=F,_Zn=Ce((V4(),A(T(KZn,1),G,517,0,[dj,L_])))}function nLn(){nLn=F,Ane=Ce((KM(),A(T(Qsn,1),G,429,0,[fH,Jsn])))}function eLn(){eLn=F,gne=Ce((wk(),A(T($sn,1),G,428,0,[WP,Nsn])))}function tLn(){tLn=F,kne=Ce((sk(),A(T(Bsn,1),G,488,0,[Fsn,QP])))}function iLn(){iLn=F,rie=Ce((dk(),A(T(qhn,1),G,430,0,[UH,GH])))}function rLn(){rLn=F,Die=Ce((Z6(),A(T(Oie,1),G,531,0,[e9,n9])))}function cLn(){cLn=F,ane=Ce((QM(),A(T(Asn,1),G,431,0,[Tsn,V_])))}function uLn(){uLn=F,xre=Ce((FM(),A(T(Bln,1),G,433,0,[dq,Fln])))}function oLn(){oLn=F,_re=Ce((yT(),A(T(Rln,1),G,501,0,[RI,L2])))}function sLn(){sLn=F,Rie=Ce((fh(),A(T(Bie,1),G,523,0,[mb,y1])))}function fLn(){fLn=F,_ie=Ce((Pf(),A(T(Kie,1),G,522,0,[Rd,Xf])))}function hLn(){hLn=F,tre=Ce((af(),A(T(ere,1),G,528,0,[zw,Ea])))}function lLn(){lLn=F,fre=Ce((M0(),A(T(sre,1),G,465,0,[Ca,I2])))}function aLn(){aLn=F,Ure=Ce((ZM(),A(T(_ln,1),G,434,0,[Kln,vq])))}function dLn(){dLn=F,Rce=Ce((GM(),A(T(S1n,1),G,491,0,[$q,A1n])))}function bLn(){bLn=F,_ce=Ce((N$(),A(T(N1n,1),G,492,0,[D1n,L1n])))}function wLn(){wLn=F,Vce=Ce((ik(),A(T(x1n,1),G,438,0,[Kq,JI])))}function gLn(){gLn=F,aue=Ce((Mk(),A(T(ran,1),G,437,0,[YI,ian])))}function pLn(){pLn=F,aoe=Ce((RL(),A(T(dO,1),G,347,0,[vdn,kdn])))}function L3e(){return ci(),A(T(y9,1),G,88,0,[Jf,Xr,Br,Wf,us])}function N3e(){return en(),A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])}function $3e(n,e,t){return u(e==null?Vc(n.f,null,t):$0(n.i,e,t),288)}function x3e(n){return(n.k==(Vn(),zt)||n.k==Zt)&&kt(n,(W(),R8))}function XN(n){return n.c&&n.d?aJ(n.c)+"->"+aJ(n.d):"e_"+l0(n)}function qi(n,e){var t,i;for(Jn(e),i=n.Kc();i.Ob();)t=i.Pb(),e.Cd(t)}function F3e(n,e){var t;t=new sp,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function B3e(n,e){var t;t=new sp,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function mLn(n,e){var t;for(t=e;t;)a0(n,-t.i,-t.j),t=At(t);return n}function SJ(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function Go(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function PJ(n,e,t){n.a.c.length=0,fOe(n,e,t),n.a.c.length==0||FSe(n,e)}function nk(n){n.i=0,u7(n.b,null),u7(n.c,null),n.a=null,n.e=null,++n.g}function UM(){UM=F,Uf=!0,DQn=!1,LQn=!1,$Qn=!1,NQn=!1}function VN(n){UM(),!Uf&&(this.c=n,this.e=!0,this.a=new Z)}function vLn(n,e){this.c=0,this.b=e,HMn.call(this,n,17493),this.a=this.c}function kLn(n){jzn(),Syn(this),this.a=new Ct,sY(this,n),Fe(this.a,n)}function yLn(){pL(this),this.b=new V(St,St),this.a=new V(li,li)}function GM(){GM=F,$q=new fX(cin,0),A1n=new fX("TARGET_WIDTH",1)}function Og(n,e){return(ta(n),s4(new Tn(n,new tQ(e,n.a)))).Bd(v3)}function R3e(){return Vi(),A(T(Ion,1),G,367,0,[Vs,Jh,Oc,Kc,zr])}function K3e(){return ow(),A(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])}function _3e(){return o1(),A(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])}function H3e(){return M5(),A(T($hn,1),G,323,0,[Nhn,KH,_H,W8,J8])}function q3e(){return Yo(),A(T(hfn,1),G,171,0,[Ej,_8,ya,H8,xw])}function U3e(){return wA(),A(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])}function G3e(){return x5(),A(T(Hce,1),G,373,0,[N2,D3,d9,a9,_j])}function z3e(){return Jk(),A(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])}function X3e(){return pf(),A(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])}function V3e(){return Bg(),A(T(M9,1),G,256,0,[Sa,eE,adn,C9,ddn])}function W3e(n){return HE(),function(){return Kpe(n,this,arguments)}}function fr(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function IJ(n,e){return D(e,143)?An(n.c,u(e,143).c):!1}function Zu(n){return n.t||(n.t=new myn(n),v5(new Njn(n),0,n.t)),n.t}function jLn(n){this.b=n,ne.call(this,n),this.a=u(Un(this.b.a,4),129)}function ELn(n){this.b=n,yp.call(this,n),this.a=u(Un(this.b.a,4),129)}function Rs(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.b=t}function OJ(n,e,t,i,r){VOn.call(this,e,i,r),this.c=n,this.a=t}function DJ(n,e,t,i,r){WOn.call(this,e,i,r),this.c=n,this.a=t}function LJ(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.a=t}function WN(n,e){var t;return t=u(Nf(n.d,e),23),t||u(Nf(n.e,e),23)}function CLn(n,e){var t,i;return t=e.ld(),i=n.Fe(t),!!i&&mc(i.e,e.md())}function MLn(n,e){var t;return t=e.ld(),new i0(t,n.e.pc(t,u(e.md(),16)))}function J3e(n,e){var t;return t=n.a.get(e),t??K(ki,Bn,1,0,5,1)}function TLn(n){var e;return e=n.length,An(Yn.substr(Yn.length-e,e),n)}function fe(n){if(pe(n))return n.c=n.a,n.a.Pb();throw M(new nc)}function NJ(n,e){return e==0||n.e==0?n:e>0?wqn(n,e):RBn(n,-e)}function Fp(n,e){return e==0||n.e==0?n:e>0?RBn(n,e):wqn(n,-e)}function $J(n){ole.call(this,n==null?gu:Jr(n),D(n,82)?u(n,82):null)}function ALn(n){var e;return n.c||(e=n.r,D(e,90)&&(n.c=u(e,29))),n.c}function JN(n){var e;return e=new E0,Ur(e,n),U(e,(cn(),Fr),null),e}function SLn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Vn(),Zt)&&t.k==Zt}function QN(n){var e,t,i;return e=n&ro,t=n>>22&ro,i=n<0?Il:0,Yc(e,t,i)}function Q3e(n){var e,t,i,r;for(t=n,i=0,r=t.length;i=0?n.Lh(i,t,!0):H0(n,e,t)}function Z3e(n,e,t){return bt(vp(pm(n),Ki(e.b)),vp(pm(n),Ki(t.b)))}function n4e(n,e,t){return bt(vp(pm(n),Ki(e.e)),vp(pm(n),Ki(t.e)))}function e4e(n,e){return y.Math.min(J1(e.a,n.d.d.c),J1(e.b,n.d.d.c))}function ek(n,e){n._i(n.i+1),I6(n,n.i,n.Zi(n.i,e)),n.Mi(n.i++,e),n.Ni()}function e5(n){var e,t;++n.j,e=n.g,t=n.i,n.g=null,n.i=0,n.Oi(t,e),n.Ni()}function PLn(n,e,t){var i;i=new NX(n.a),s5(i,n.a.a),Vc(i.f,e,t),n.a.a=i}function xJ(n,e,t,i){var r;for(r=0;re)throw M(new Ir(Mnn(n,e,"index")));return n}function Yl(n,e){var t;return t=(Ln(e,n.c.length),n.c[e]),Pz(n.c,e,1),t}function RJ(n,e){var t,i;return t=(Jn(n),n),i=(Jn(e),e),t==i?0:te.p?-1:0}function FLn(n){var e;return n.a||(e=n.r,D(e,156)&&(n.a=u(e,156))),n.a}function o4e(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].gd(t),136),i.md()}function s4e(n){var e,t;return e=n.ld(),t=u(n.md(),16),N7(t.Nc(),new L8n(e))}function BLn(n,e){return Zc(n.a,e)?(Bp(n.a,e),!0):!1}function Rp(n,e,t){return Z7(e,n.e.Rd().gc()),Z7(t,n.c.Rd().gc()),n.a[e][t]}function XM(n,e,t){this.a=n,this.b=e,this.c=t,nn(n.t,this),nn(e.i,this)}function VM(n,e,t,i){this.f=n,this.e=e,this.d=t,this.b=i,this.c=i?i.d:null}function tk(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function $4(){$4=F;var n,e;MO=(o4(),e=new xE,e),TO=(n=new fD,n)}function f4e(n){var e;return ta(n),e=new ISn(n,n.a.e,n.a.d|4),new uV(n,e)}function RLn(n){var e;for(X1(n),e=0;n.a.Bd(new W0n);)e=nr(e,1);return e}function WM(n,e){return Jn(e),n.c=0,"Initial capacity must not be negative")}function JM(){JM=F,b9=new lt("org.eclipse.elk.labels.labelManager")}function KLn(){KLn=F,ysn=new Dt("separateLayerConnections",(OT(),F_))}function af(){af=F,zw=new rX("REGULAR",0),Ea=new rX("CRITICAL",1)}function ik(){ik=F,Kq=new lX("FIXED",0),JI=new lX("CENTER_NODE",1)}function QM(){QM=F,Tsn=new Jz("QUADRATIC",0),V_=new Jz("SCANLINE",1)}function _Ln(){_Ln=F,dne=Ce((c5(),A(T(Psn,1),G,322,0,[$8,pj,Ssn])))}function HLn(){HLn=F,bne=Ce((bT(),A(T(Osn,1),G,351,0,[Isn,VP,W_])))}function qLn(){qLn=F,fne=Ce((D0(),A(T(R_,1),G,372,0,[ub,va,cb])))}function ULn(){ULn=F,mne=Ce((hd(),A(T(pne,1),G,460,0,[Y_,mv,m2])))}function GLn(){GLn=F,Cne=Ce((Z4(),A(T(sH,1),G,299,0,[uH,oH,mj])))}function zLn(){zLn=F,Tne=Ce((vl(),A(T(Mne,1),G,311,0,[vj,k2,E3])))}function XLn(){XLn=F,Zte=Ce((w5(),A(T(Lhn,1),G,390,0,[FH,Dhn,MI])))}function VLn(){VLn=F,oie=Ce((ST(),A(T(zhn,1),G,387,0,[Uhn,zH,Ghn])))}function WLn(){WLn=F,sie=Ce((a5(),A(T(Xhn,1),G,349,0,[VH,XH,Ij])))}function JLn(){JLn=F,uie=Ce((gr(),A(T(cie,1),G,463,0,[Q8,Vu,Jc])))}function QLn(){QLn=F,fie=Ce((om(),A(T(Whn,1),G,350,0,[WH,Vhn,Y8])))}function YLn(){YLn=F,hie=Ce((dT(),A(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])))}function ZLn(){ZLn=F,lie=Ce((DT(),A(T(Zhn,1),G,388,0,[QH,Ov,Gw])))}function nNn(){nNn=F,are=Ce((d5(),A(T(gln,1),G,392,0,[wln,nq,Lj])))}function eNn(){eNn=F,Gre=Ce((Pk(),A(T(Uln,1),G,393,0,[KI,Hln,qln])))}function tNn(){tNn=F,ace=Ce((AT(),A(T(s1n,1),G,300,0,[Cq,o1n,u1n])))}function iNn(){iNn=F,dce=Ce((XT(),A(T(f1n,1),G,445,0,[Bj,qI,Mq])))}function rNn(){rNn=F,wce=Ce((rA(),A(T(bce,1),G,456,0,[Tq,Sq,Aq])))}function cNn(){cNn=F,mce=Ce((_T(),A(T(a1n,1),G,394,0,[l1n,Oq,h1n])))}function uNn(){uNn=F,Kce=Ce((nT(),A(T(O1n,1),G,439,0,[xq,I1n,P1n])))}function oNn(){oNn=F,Aie=Ce((O0(),A(T(Tie,1),G,464,0,[Oj,Z8,PI])))}function sNn(){sNn=F,WQn=Ce((Uu(),A(T(VQn,1),G,471,0,[Mh,pa,zs])))}function fNn(){fNn=F,XQn=Ce((wf(),A(T(Sw,1),G,237,0,[bc,Wc,wc])))}function hNn(){hNn=F,QQn=Ce((bu(),A(T(JQn,1),G,472,0,[kf,ma,Xs])))}function lNn(){lNn=F,xQn=Ce((Gu(),A(T(xr,1),G,108,0,[xun,Yr,Aw])))}function aNn(){aNn=F,pZn=Ce((t5(),A(T(Pon,1),G,391,0,[E_,j_,C_])))}function dNn(){dNn=F,Que=Ce((jl(),A(T(ldn,1),G,346,0,[uO,M1,E9])))}function bNn(){bNn=F,Uce=Ce(($k(),A(T(Fq,1),G,444,0,[XI,VI,WI])))}function wNn(){wNn=F,Xue=Ce(($f(),A(T(Zan,1),G,278,0,[Fv,Jw,Bv])))}function gNn(){gNn=F,loe=Ce((Gp(),A(T(mdn,1),G,280,0,[pdn,Yw,aO])))}function Lf(n,e){return!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),wx(n.o,e)}function h4e(n,e){var t;n.C&&(t=u(Cr(n.b,e),127).n,t.d=n.C.d,t.a=n.C.a)}function UJ(n){var e,t,i,r;r=n.d,e=n.a,t=n.b,i=n.c,n.d=t,n.a=i,n.b=r,n.c=e}function l4e(n){return!n.g&&(n.g=new CE),!n.g.b&&(n.g.b=new byn(n)),n.g.b}function rk(n){return!n.g&&(n.g=new CE),!n.g.c&&(n.g.c=new pyn(n)),n.g.c}function a4e(n){return!n.g&&(n.g=new CE),!n.g.d&&(n.g.d=new wyn(n)),n.g.d}function d4e(n){return!n.g&&(n.g=new CE),!n.g.a&&(n.g.a=new gyn(n)),n.g.a}function b4e(n,e,t,i){return t&&(i=t.Rh(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function w4e(n,e,t,i){return t&&(i=t.Th(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function e$(n,e,t,i){var r;return r=K(ye,_e,28,e+1,15,1),vPe(r,n,e,t,i),r}function K(n,e,t,i,r,c){var s;return s=_Rn(r,i),r!=10&&A(T(n,c),e,t,r,s),s}function g4e(n,e,t){var i,r;for(r=new Y4(e,n),i=0;it||e=0?n.Lh(t,!0,!0):H0(n,e,!0)}function L4e(n,e,t){var i;return i=vFn(n,e,t),n.b=new ET(i.c.length),den(n,i)}function N4e(n){if(n.b<=0)throw M(new nc);return--n.b,n.a-=n.c.c,Y(n.a)}function $4e(n){var e;if(!n.a)throw M(new PIn);return e=n.a,n.a=At(n.a),e}function x4e(n){for(;!n.a;)if(!eSn(n.c,new C9n(n)))return!1;return!0}function Kp(n){var e;return Se(n),D(n,204)?(e=u(n,204),e):new _8n(n)}function F4e(n){YM(),u(n.of((He(),Ww)),181).Fc((zu(),tE)),n.qf(sU,null)}function YM(){YM=F,wue=new Emn,pue=new Cmn,gue=M6e((He(),sU),wue,Ta,pue)}function ZM(){ZM=F,Kln=new sX("LEAF_NUMBER",0),vq=new sX("NODE_SIZE",1)}function u$(n){n.a=K(ye,_e,28,n.b+1,15,1),n.c=K(ye,_e,28,n.b,15,1),n.d=0}function B4e(n,e){n.a.Ne(e.d,n.b)>0&&(nn(n.c,new GV(e.c,e.d,n.d)),n.b=e.d)}function nQ(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.g[e]}function kNn(n,e,t){if(rm(n,t),t!=null&&!n.fk(t))throw M(new uD);return t}function o$(n,e){return bk(e)!=10&&A(wo(e),e.Sm,e.__elementTypeId$,bk(e),n),n}function F4(n,e,t,i){var r;i=(j0(),i||Pun),r=n.slice(e,t),Tnn(r,n,e,t,-e,i)}function zo(n,e,t,i,r){return e<0?H0(n,t,i):u(t,69).wk().yk(n,n.hi(),e,i,r)}function R4e(n,e){return bt($(R(v(n,(W(),fb)))),$(R(v(e,fb))))}function yNn(){yNn=F,IQn=Ce((B4(),A(T(lP,1),G,304,0,[e_,t_,i_,r_])))}function B4(){B4=F,e_=new uC("All",0),t_=new lTn,i_=new kTn,r_=new hTn}function Uu(){Uu=F,Mh=new FD(s3,0),pa=new FD(qm,1),zs=new FD(f3,2)}function jNn(){jNn=F,KA(),s0n=St,mse=li,f0n=new z9(St),vse=new z9(li)}function ENn(){ENn=F,jYn=Ce((N0(),A(T(yYn,1),G,417,0,[rj,ij,a_,d_])))}function CNn(){CNn=F,AYn=Ce((T5(),A(T(TYn,1),G,406,0,[fj,wP,gP,hj])))}function MNn(){MNn=F,CYn=Ce((Vp(),A(T(EYn,1),G,332,0,[uj,cj,oj,sj])))}function TNn(){TNn=F,DZn=Ce((dd(),A(T(Lon,1),G,389,0,[Ow,Don,P_,I_])))}function ANn(){ANn=F,TZn=Ce((nm(),A(T(MZn,1),G,416,0,[rb,Iw,Pw,d2])))}function SNn(){SNn=F,tne=Ce((xf(),A(T(ene,1),G,421,0,[j3,lv,av,B_])))}function PNn(){PNn=F,GZn=Ce((OT(),A(T(UZn,1),G,371,0,[F_,HP,qP,wj])))}function INn(){INn=F,nie=Ce((cw(),A(T(RH,1),G,203,0,[TI,BH,P2,S2])))}function ONn(){ONn=F,iie=Ce((lh(),A(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])))}function sk(){sk=F,Fsn=new Yz(kh,0),QP=new Yz("IMPROVE_STRAIGHTNESS",1)}function DNn(n,e){var t,i;return i=e/n.c.Rd().gc()|0,t=e%n.c.Rd().gc(),Rp(n,i,t)}function LNn(n){var e;if(n.nl())for(e=n.i-1;e>=0;--e)L(n,e);return jJ(n)}function eQ(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function NNn(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[1];)t=e;return t}function K4e(n){return D(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function _4e(n){return D(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function $Nn(n,e){if(e.a)throw M(new ec(nXn));fi(n.a,e),e.a=n,!n.j&&(n.j=e)}function tQ(n,e){IC.call(this,e.zd(),e.yd()&-16449),Jn(n),this.a=n,this.c=e}function H4e(n,e){return new _L(e,a0(Ki(e.e),e.f.a+n,e.f.b+n),(_n(),!1))}function q4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function U4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function xNn(){xNn=F,lce=Ce((sA(),A(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])))}function FNn(){FNn=F,$re=Ce((b5(),A(T(xln,1),G,353,0,[aq,BI,lq,hq])))}function BNn(){BNn=F,hre=Ce((Qp(),A(T(rln,1),G,405,0,[LI,t9,i9,r9])))}function RNn(){RNn=F,Vue=Ce((El(),A(T(aU,1),G,223,0,[lU,Yj,Rv,F3])))}function KNn(){KNn=F,Zue=Ce((To(),A(T(Yue,1),G,291,0,[nE,nl,Aa,Zj])))}function _Nn(){_Nn=F,foe=Ce((go(),A(T(S9,1),G,386,0,[rE,Gd,iE,Qw])))}function HNn(){HNn=F,doe=Ce((qT(),A(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])))}function qNn(){qNn=F,goe=Ce((LT(),A(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])))}function nT(){nT=F,xq=new oL(mVn,0),I1n=new oL(Crn,1),P1n=new oL(kh,2)}function Wb(n,e,t,i,r){return Jn(n),Jn(e),Jn(t),Jn(i),Jn(r),new AW(n,e,i)}function UNn(n,e){var t;return t=u(Bp(n.e,e),400),t?(tW(t),t.e):null}function du(n,e){var t;return t=qr(n,e,0),t==-1?!1:(Yl(n,t),!0)}function GNn(n,e,t){var i;return X1(n),i=new LO,i.a=e,n.a.Nb(new TCn(i,t)),i.a}function G4e(n){var e;return X1(n),e=K(Pi,Tr,28,0,15,1),lg(n.a,new y9n(e)),e}function iQ(n){var e;if(!E$(n))throw M(new nc);return n.e=1,e=n.d,n.d=null,e}function n1(n){var e;return Vr(n)&&(e=0-n,!isNaN(e))?e:Y1(tm(n))}function qr(n,e,t){for(;t=0?tA(n,t,!0,!0):H0(n,e,!0)}function cQ(n){var e;return e=cd(Un(n,32)),e==null&&(iu(n),e=cd(Un(n,32))),e}function uQ(n){var e;return n.Oh()||(e=se(n.Dh())-n.ji(),n.$h().Mk(e)),n.zh()}function QNn(n,e){con=new kE,MYn=e,I8=n,u(I8.b,68),XJ(I8,con,null),aGn(I8)}function t5(){t5=F,E_=new RD("XY",0),j_=new RD("X",1),C_=new RD("Y",2)}function bu(){bu=F,kf=new BD("TOP",0),ma=new BD(qm,1),Xs=new BD(Ftn,2)}function vl(){vl=F,vj=new GD(kh,0),k2=new GD("TOP",1),E3=new GD(Ftn,2)}function dk(){dk=F,UH=new nX("INPUT_ORDER",0),GH=new nX("PORT_DEGREE",1)}function R4(){R4=F,hun=Yc(ro,ro,524287),bQn=Yc(0,0,Ty),lun=QN(1),QN(2),aun=QN(0)}function a$(n){var e;return n.d!=n.r&&(e=gs(n),n.e=!!e&&e.lk()==bJn,n.d=e),n.e}function d$(n,e,t){var i;return i=n.g[e],I6(n,e,n.Zi(e,t)),n.Ri(e,t,i),n.Ni(),i}function rT(n,e){var t;return t=n.dd(e),t>=0?(n.gd(t),!0):!1}function b$(n,e){var t;for(Se(n),Se(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function Nf(n,e){var t;return t=u(ee(n.e,e),400),t?(DTn(n,t),t.e):null}function YNn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function Jb(n,e){var t=n.a[e],i=(K$(),WK)[typeof t];return i?i(t):wY(typeof t)}function rc(n,e){var t,i;return ta(n),i=new _J(e,n.a),t=new rSn(i),new Tn(n,t)}function w$(n){var e;return e=n.b.c.length==0?null:sn(n.b,0),e!=null&&M$(n,0),e}function W4e(n,e){var t,i,r;r=e.c.i,t=u(ee(n.f,r),60),i=t.d.c-t.e.c,BQ(e.a,i,0)}function oQ(n,e){var t;for(++n.d,++n.c[e],t=e+1;t=0;)++e[0]}function J4e(n,e){eu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Q4e(n,e){tu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Y4e(n,e){I0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Z4e(n,e){P0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function nme(n,e,t){return vp(new V(t.e.a+t.f.a/2,t.e.b+t.f.b/2),n)==(Jn(e),e)}function eme(n,e){return D(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function tme(n,e){return D(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function bk(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function e$n(n,e){return e==(xL(),xL(),AQn)?n.toLocaleLowerCase():n.toLowerCase()}function t$n(n){if(!n.e)throw M(new nc);return n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function sQ(n){if(!n.c)throw M(new nc);return n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function i$n(n){var e;for(++n.a,e=n.c.a.length;n.an.a[i]&&(i=t);return i}function r$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.a==n:!1}function c$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.i==n:!1}function u$n(){u$n=F,yZn=Ce((Vi(),A(T(Ion,1),G,367,0,[Vs,Jh,Oc,Kc,zr])))}function o$n(){o$n=F,rne=Ce((ow(),A(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])))}function s$n(){s$n=F,wne=Ce((o1(),A(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])))}function f$n(){f$n=F,eie=Ce((M5(),A(T($hn,1),G,323,0,[Nhn,KH,_H,W8,J8])))}function h$n(){h$n=F,Sne=Ce((Yo(),A(T(hfn,1),G,171,0,[Ej,_8,ya,H8,xw])))}function l$n(){l$n=F,qre=Ce((wA(),A(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])))}function a$n(){a$n=F,qce=Ce((x5(),A(T(Hce,1),G,373,0,[N2,D3,d9,a9,_j])))}function d$n(){d$n=F,Wce=Ce((Jk(),A(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])))}function b$n(){b$n=F,zue=Ce((ci(),A(T(y9,1),G,88,0,[Jf,Xr,Br,Wf,us])))}function w$n(){w$n=F,mue=Ce((pf(),A(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])))}function g$n(){g$n=F,eoe=Ce((Bg(),A(T(M9,1),G,256,0,[Sa,eE,adn,C9,ddn])))}function p$n(){p$n=F,roe=Ce((en(),A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])))}function cT(){cT=F,Run=new Uz("BY_SIZE",0),s_=new Uz("BY_SIZE_AND_SHAPE",1)}function uT(){uT=F,v_=new Xz("EADES",0),vP=new Xz("FRUCHTERMAN_REINGOLD",1)}function wk(){wk=F,WP=new Qz("READING_DIRECTION",0),Nsn=new Qz("ROTATION",1)}function i5(){i5=F,PZn=new rwn,IZn=new own,AZn=new swn,SZn=new uwn,OZn=new fwn}function m$n(n){this.b=new Z,this.a=new Z,this.c=new Z,this.d=new Z,this.e=n}function v$n(n){this.g=n,this.f=new Z,this.a=y.Math.min(this.g.c.c,this.g.d.c)}function k$n(n,e,t){qC.call(this),lQ(this),this.a=n,this.c=t,this.b=e.d,this.f=e.e}function sme(n,e,t){var i,r;for(r=new C(t);r.a=0&&e0?e-1:e,eEn($he(U$n(YV(new op,t),n.n),n.j),n.k)}function Nr(n){var e,t;t=(e=new hD,e),ve((!n.q&&(n.q=new q(Ss,n,11,10)),n.q),t)}function fQ(n){return(n.i&2?"interface ":n.i&1?"":"class ")+(ll(n),n.o)}function oT(n){return Ec(n,et)>0?et:Ec(n,Wi)<0?Wi:Ae(n)}function Qb(n){return n<3?(Co(n,$zn),n+1):n=-.01&&n.a<=_f&&(n.a=0),n.b>=-.01&&n.b<=_f&&(n.b=0),n}function Dg(n){Vg();var e,t;for(t=Arn,e=0;et&&(t=n[e]);return t}function C$n(n,e){var t;if(t=oy(n.Dh(),e),!t)throw M(new Gn(ba+e+sK));return t}function Yb(n,e){var t;for(t=n;At(t);)if(t=At(t),t==e)return!0;return!1}function vme(n,e){var t,i,r;for(i=e.a.ld(),t=u(e.a.md(),16).gc(),r=0;rn||n>e)throw M(new pz("fromIndex: 0, toIndex: "+n+Mtn+e))}function S0(n){if(n<0)throw M(new Gn("Illegal Capacity: "+n));this.g=this.aj(n)}function hQ(n,e){return Tf(),Ks(fa),y.Math.abs(n-e)<=fa||n==e||isNaN(n)&&isNaN(e)}function m$(n,e){var t,i,r,c;for(i=n.d,r=0,c=i.length;r0&&(n.a/=e,n.b/=e),n}function jo(n){var e;return n.w?n.w:(e=lpe(n),e&&!e.Vh()&&(n.w=e),e)}function K4(n,e){var t,i;i=n.a,t=w5e(n,e,null),i!=e&&!n.e&&(t=Nm(n,e,t)),t&&t.oj()}function P$n(n,e,t){var i,r;i=e;do r=$(n.p[i.p])+t,n.p[i.p]=r,i=n.a[i.p];while(i!=e)}function I$n(n,e,t){var i=function(){return n.apply(i,arguments)};return e.apply(i,t),i}function Tme(n){var e;return n==null?null:(e=u(n,195),Bye(e,e.length))}function L(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.Wi(e,n.g[e])}function Ame(n,e){Dn();var t,i;for(i=new Z,t=0;t=14&&e<=16))),n}function Ee(n,e){var t;return Jn(e),t=n[":"+e],x7(!!t,"Enum constant undefined: "+e),t}function we(n,e,t,i,r,c){var s;return s=bN(n,e),G$n(t,s),s.i=r?8:0,s.f=i,s.e=r,s.g=c,s}function dQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=t}function bQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=t}function wQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=t}function gQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=t}function pQ(n,e,t,i,r){this.d=e,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=t}function z$n(n,e){var t,i,r,c;for(i=e,r=0,c=i.length;r=0))throw M(new Gn("tolerance ("+n+") must be >= 0"));return n}function V$n(n,e){var t;return D(e,44)?n.c.Mc(e):(t=wx(n,e),VT(n,e),t)}function Mr(n,e,t){return ad(n,e),zc(n,t),e1(n,0),Zb(n,1),u1(n,!0),c1(n,!0),n}function pk(n,e){var t;if(t=n.gc(),e<0||e>t)throw M(new Kb(e,t));return new SV(n,e)}function wT(n,e){n.b=y.Math.max(n.b,e.d),n.e+=e.r+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W$n(n){Fb(n.c>=0),_8e(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function gT(n){var e,t;for(t=n.c.Cc().Kc();t.Ob();)e=u(t.Pb(),16),e.$b();n.c.$b(),n.d=0}function Fme(n){var e,t,i,r;for(t=n.a,i=0,r=t.length;i=0}function CQ(n,e){n.r>0&&n.c0&&n.g!=0&&CQ(n.i,e/n.r*n.i.d))}function MQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function y$(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,t,n.c))}function X4(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.k))}function j$(n,e){var t;t=n.D,n.D=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.D))}function mT(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.f))}function vT(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,t,n.i))}function TQ(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.a))}function AQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function SQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function PQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function IQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.d))}function Ume(n,e,t){var i;n.b=e,n.a=t,i=(n.a&512)==512?new gjn:new rG,n.c=rAe(i,n.b,n.a)}function oxn(n,e){return Sl(n.e,e)?(dr(),a$(e)?new eM(e,n):new k7(e,n)):new $Mn(e,n)}function Gme(n){var e,t;return 0>n?new Dz:(e=n+1,t=new vLn(e,n),new oV(null,t))}function zme(n,e){Dn();var t;return t=new ap(1),Ai(n)?Dr(t,n,e):Vc(t.f,n,e),new eD(t)}function Xme(n,e){var t,i;return t=n.c,i=e.e[n.p],i>0?u(sn(t.a,i-1),10):null}function Vme(n,e){var t,i;return t=n.o+n.p,i=e.o+e.p,te?(e<<=1,e>0?e:W5):e}function E$(n){switch(_X(n.e!=3),n.e){case 2:return!1;case 0:return!0}return i4e(n)}function fxn(n,e){var t;return D(e,8)?(t=u(e,8),n.a==t.a&&n.b==t.b):!1}function Jme(n,e){var t;t=new kE,u(e.b,68),u(e.b,68),u(e.b,68),nu(e.a,new BV(n,t,e))}function hxn(n,e){var t,i;for(i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),zk(n,t.ld(),t.md())}function OQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,t,n.d))}function kT(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,13,t,n.j))}function DQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,21,t,n.b))}function Qme(n,e){(UM(),Uf?null:e.c).length==0&&TAn(e,new BU),Dr(n.a,Uf?null:e.c,e)}function Yme(n,e){e.Ug("Hierarchical port constraint processing",1),g9e(n),xLe(n),e.Vg()}function D0(){D0=F,ub=new KD("START",0),va=new KD("MIDDLE",1),cb=new KD("END",2)}function yT(){yT=F,RI=new oX("P1_NODE_PLACEMENT",0),L2=new oX("P2_EDGE_ROUTING",1)}function Q1(){Q1=F,y3=new lt(Jtn),jP=new lt(MXn),D8=new lt(TXn),lj=new lt(AXn)}function L0(n){var e;return FL(n.f.g,n.d),oe(n.b),n.c=n.a,e=u(n.a.Pb(),44),n.b=GQ(n),e}function LQ(n){var e;return n.b==null?(Gl(),Gl(),dE):(e=n.ul()?n.tl():n.sl(),e)}function lxn(n,e){var t;return t=e==null?-1:qr(n.b,e,0),t<0?!1:(M$(n,t),!0)}function _s(n,e){var t;return Jn(e),t=e.g,n.b[t]?!1:($t(n.b,t,e),++n.c,!0)}function jT(n,e){var t,i;return t=1-e,i=n.a[t],n.a[t]=i.a[e],i.a[e]=n,n.b=!0,i.b=!1,i}function Zme(n,e){var t,i;for(i=e.Kc();i.Ob();)t=u(i.Pb(),272),n.b=!0,fi(n.e,t),t.b=n}function nve(n,e){var t,i;return t=u(v(n,(cn(),Hw)),8),i=u(v(e,Hw),8),bt(t.b,i.b)}function C$(n,e,t){var i,r,c;return c=e>>5,r=e&31,i=vi(U1(n.n[t][c],Ae(Bs(r,1))),3),i}function axn(n,e,t){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i0?1:0:(!n.c&&(n.c=J7(vc(n.f))),n.c).e}function yxn(n,e){e?n.B==null&&(n.B=n.D,n.D=null):n.B!=null&&(n.D=n.B,n.B=null)}function rve(n,e){return nm(),n==rb&&e==Iw||n==Iw&&e==rb||n==d2&&e==Pw||n==Pw&&e==d2}function cve(n,e){return nm(),n==rb&&e==Pw||n==rb&&e==d2||n==Iw&&e==d2||n==Iw&&e==Pw}function jxn(n,e){return Tf(),Ks(_f),y.Math.abs(0-e)<=_f||e==0||isNaN(0)&&isNaN(e)?0:n/e}function Exn(n,e){return $(R(ho(Lk(_r(new Tn(null,new In(n.c.b,16)),new I7n(n)),e))))}function FQ(n,e){return $(R(ho(Lk(_r(new Tn(null,new In(n.c.b,16)),new P7n(n)),e))))}function uve(){return pr(),A(T(cH,1),G,259,0,[ZP,cs,F8,nI,yv,v2,B8,vv,kv,eI])}function ove(){return ps(),A(T(Khn,1),G,243,0,[AI,Sj,Pj,Fhn,Bhn,xhn,Rhn,SI,pb,Uw])}function sve(n,e){var t;e.Ug("General Compactor",1),t=d8e(u(z(n,(oa(),yq)),393)),t.Cg(n)}function fve(n,e){var t,i;return t=u(z(n,(oa(),_I)),17),i=u(z(e,_I),17),jc(t.a,i.a)}function BQ(n,e,t){var i,r;for(r=ge(n,0);r.b!=r.d.c;)i=u(be(r),8),i.a+=e,i.b+=t;return n}function u5(n,e,t){var i;for(i=n.b[t&n.f];i;i=i.b)if(t==i.a&&sh(e,i.g))return i;return null}function o5(n,e,t){var i;for(i=n.c[t&n.f];i;i=i.d)if(t==i.f&&sh(e,i.i))return i;return null}function hve(n,e,t){var i,r,c;for(i=0,r=0;r>>31;i!=0&&(n[t]=i)}function P$(n,e,t,i,r,c){var s;this.c=n,s=new Z,pZ(n,s,e,n.b,t,i,r,c),this.a=new xi(s,0)}function Cxn(){this.c=new XE(0),this.b=new XE(Trn),this.d=new XE(lVn),this.a=new XE(QB)}function Vo(n,e,t,i,r,c,s){je.call(this,n,e),this.d=t,this.e=i,this.c=r,this.b=c,this.a=Of(s)}function Ut(n,e,t,i,r,c,s,f,h,l,a,d,g){return P_n(n,e,t,i,r,c,s,f,h,l,a,d,g),sx(n,!1),n}function lve(n){return n.b.c.i.k==(Vn(),Zt)?u(v(n.b.c.i,(W(),st)),12):n.b.c}function Mxn(n){return n.b.d.i.k==(Vn(),Zt)?u(v(n.b.d.i,(W(),st)),12):n.b.d}function ave(n){var e;return e=BM(n),o0(e.a,0)?(QE(),QE(),SQn):(QE(),new uAn(e.b))}function I$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.b))}function O$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.c))}function Txn(n){switch(n.g){case 2:return en(),Wn;case 4:return en(),Zn;default:return n}}function Axn(n){switch(n.g){case 1:return en(),ae;case 3:return en(),Xn;default:return n}}function Sxn(n){switch(n.g){case 0:return new hmn;case 1:return new lmn;default:return null}}function Hp(){Hp=F,x_=new Dt("edgelabelcenterednessanalysis.includelabel",(_n(),ga))}function RQ(){RQ=F,Mie=ah(WMn(Ke(Ke(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function Pxn(){Pxn=F,Pie=ah(WMn(Ke(Ke(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function D$(){D$=F,N9=new ljn,CU=A(T(ku,1),f2,179,0,[]),Joe=A(T(Ss,1),Gcn,62,0,[])}function V4(){V4=F,dj=new Vz("TO_INTERNAL_LTR",0),L_=new Vz("TO_INPUT_DIRECTION",1)}function Ou(){Ou=F,Ron=new wwn,Fon=new gwn,Bon=new pwn,xon=new mwn,Kon=new vwn,_on=new kwn}function dve(n,e){e.Ug(HXn,1),HY(Qhe(new IE((u6(),new kN(n,!1,!1,new qU))))),e.Vg()}function bve(n,e,t){t.Ug("DFS Treeifying phase",1),O8e(n,e),PTe(n,e),n.a=null,n.b=null,t.Vg()}function mk(n,e){return _n(),Ai(n)?RJ(n,Oe(e)):$b(n)?tN(n,R(e)):Nb(n)?rwe(n,un(e)):n.Fd(e)}function s5(n,e){var t,i;for(Jn(e),i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),n.zc(t.ld(),t.md())}function wve(n,e,t){var i;for(i=t.Kc();i.Ob();)if(!_M(n,e,i.Pb()))return!1;return!0}function gve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Rh(e,-1-(c==-1?i:c),null,r)),r}function pve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Th(e,-1-(c==-1?i:c),null,r)),r}function Ixn(n){var e;if(n.b==-2){if(n.e==0)e=-1;else for(e=0;n.a[e]==0;e++);n.b=e}return n.b}function mve(n){if(Jn(n),n.length==0)throw M(new th("Zero length BigInteger"));CSe(this,n)}function KQ(n){this.i=n.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Oxn(n,e,t){this.g=n,this.d=e,this.e=t,this.a=new Z,IEe(this),Dn(),Yt(this.a,null)}function _Q(n,e){e.q=n,n.d=y.Math.max(n.d,e.r),n.b+=e.d+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W4(n,e){var t,i,r,c;return r=n.c,t=n.c+n.b,c=n.d,i=n.d+n.a,e.a>r&&e.ac&&e.br?t=r:zn(e,t+1),n.a=qo(n.a,0,e)+(""+i)+$W(n.a,t)}function Kxn(n,e){n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d=nr(n.d,e)}function Mve(n,e){return e1||n.Ob())return++n.a,n.g=0,e=n.i,n.Ob(),e;throw M(new nc)}function Uxn(n){switch(n.a.g){case 1:return new WCn;case 3:return new WRn;default:return new s8n}}function qQ(n,e){switch(e){case 1:return!!n.n&&n.n.i!=0;case 2:return n.k!=null}return wJ(n,e)}function vc(n){return Ay>22),r=n.h+e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function Yxn(n,e){var t,i,r;return t=n.l-e.l,i=n.m-e.m+(t>>22),r=n.h-e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function zve(n){var e,t;for(RDe(n),t=new C(n.d);t.ai)throw M(new Kb(e,i));return n.Si()&&(t=gOn(n,t)),n.Ei(e,t)}function em(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)Kg(n,c,s)||xA(n,c,s,!0,!1)}function u6e(n){Vg();var e,t,i;for(t=K(Ei,J,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,t[e]=Z9e(i,n);return t}function tm(n){var e,t,i;return e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,Yc(e,t,i)}function QQ(n){var e;if(n<0)return Wi;if(n==0)return 0;for(e=W5;!(e&n);e>>=1);return e}function R$(n,e,t){return n>=128?!1:n<64?C6(vi(Bs(1,n),t),0):C6(vi(Bs(1,n-64),e),0)}function Ak(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Ve(n.q,e,t)),n}function U(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Ve(n.q,e,t)),n}function fFn(n){var e,t;return t=new zM,Ur(t,n),U(t,(Q1(),y3),n),e=new de,$Pe(n,t,e),fDe(n,t,e),t}function hFn(n){var e,t;return e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,e||t}function lFn(n,e){var t,i,r,c;for(t=!1,i=n.a[e].length,c=0;c=0,"Negative initial capacity"),x7(e>=0,"Non-positive load factor"),Hu(this)}function s6e(n,e,t,i,r){var c,s;if(s=n.length,c=t.length,e<0||i<0||r<0||e+r>s||i+r>c)throw M(new qG)}function eY(n,e){Dn();var t,i,r,c,s;for(s=!1,i=e,r=0,c=i.length;r1||e>=0&&n.b<3)}function H$(n){var e,t,i;e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,n.l=e,n.m=t,n.h=i}function rY(n){Dn();var e,t,i;for(i=1,t=n.Kc();t.Ob();)e=t.Pb(),i=31*i+(e!=null?mt(e):0),i=i|0;return i}function d6e(n,e,t,i,r){var c;return c=Xnn(n,e),t&&H$(c),r&&(n=u7e(n,e),i?wa=tm(n):wa=Yc(n.l,n.m,n.h)),c}function yFn(n,e,t){n.g=uF(n,e,(en(),Zn),n.b),n.d=uF(n,t,Zn,n.b),!(n.g.c==0||n.d.c==0)&&YKn(n)}function jFn(n,e,t){n.g=uF(n,e,(en(),Wn),n.j),n.d=uF(n,t,Wn,n.j),!(n.g.c==0||n.d.c==0)&&YKn(n)}function cY(n,e){switch(e){case 7:return!!n.e&&n.e.i!=0;case 8:return!!n.d&&n.d.i!=0}return qY(n,e)}function b6e(n,e){switch(e.g){case 0:D(n.b,641)||(n.b=new Rxn);break;case 1:D(n.b,642)||(n.b=new BSn)}}function EFn(n){switch(n.g){case 0:return new gmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function CFn(n){switch(n.g){case 0:return new wmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function w6e(n,e,t){return!s4(ut(new Tn(null,new In(n.c,16)),new Z3(new hMn(e,t)))).Bd((Va(),v3))}function MFn(n,e){return vp(pm(u(v(e,(lc(),vb)),88)),new V(n.c.e.a-n.b.e.a,n.c.e.b-n.b.e.b))<=0}function g6e(n,e){for(;n.g==null&&!n.c?cJ(n):n.g==null||n.i!=0&&u(n.g[n.i-1],51).Ob();)kle(e,CA(n))}function ld(n){var e,t;for(t=new C(n.a.b);t.ai?1:0}function v6e(n){return nn(n.c,(qp(),bue)),hQ(n.a,$(R(rn((bx(),EI)))))?new tvn:new $kn(n)}function k6e(n){for(;!n.d||!n.d.Ob();)if(n.b&&!t6(n.b))n.d=u(Sp(n.b),51);else return null;return n.d}function oY(n){switch(n.g){case 1:return lVn;default:case 2:return 0;case 3:return QB;case 4:return Trn}}function y6e(){nt();var n;return IU||(n=_1e(sa("M",!0)),n=uM(sa("M",!1),n),IU=n,IU)}function LT(){LT=F,gU=new CC("ELK",0),Tdn=new CC("JSON",1),Mdn=new CC("DOT",2),Adn=new CC("SVG",3)}function a5(){a5=F,VH=new WD("STACKED",0),XH=new WD("REVERSE_STACKED",1),Ij=new WD("SEQUENCED",2)}function d5(){d5=F,wln=new eL(kh,0),nq=new eL("MIDDLE_TO_MIDDLE",1),Lj=new eL("AVOID_OVERLAP",2)}function cm(){cm=F,Esn=new Ygn,Csn=new Zgn,JZn=new Jgn,WZn=new n2n,VZn=new Qgn,jsn=(Jn(VZn),new O0n)}function NT(){NT=F,hdn=new f0(15),Jue=new Ni((He(),C1),hdn),j9=N3,udn=Pue,odn=Hd,fdn=_2,sdn=Vw}function Ng(n,e){var t,i,r,c,s;for(i=e,r=0,c=i.length;r=n.b.c.length||(fY(n,2*e+1),t=2*e+2,t0&&(e.Cd(t),t.i&&E5e(t))}function hY(n,e,t){var i;for(i=t-1;i>=0&&n[i]===e[i];i--);return i<0?0:ND(vi(n[i],mr),vi(e[i],mr))?-1:1}function SFn(n,e,t){var i,r;this.g=n,this.c=e,this.a=this,this.d=this,r=sxn(t),i=K(sQn,Cy,227,r,0,1),this.b=i}function X$(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)if(Kg(n,c,s))return!0;return!1}function A6e(n,e){var t,i;for(i=n.Zb().Cc().Kc();i.Ob();)if(t=u(i.Pb(),16),t.Hc(e))return!0;return!1}function PFn(n,e,t){var i,r,c,s;for(Jn(t),s=!1,c=n.fd(e),r=t.Kc();r.Ob();)i=r.Pb(),c.Rb(i),s=!0;return s}function V$(n,e){var t,i;return i=u(Un(n.a,4),129),t=K(jU,MK,424,e,0,1),i!=null&&Ic(i,0,t,0,i.length),t}function IFn(n,e){var t;return t=new jF((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e),n.e!=null||(t.c=n),t}function S6e(n,e){var t;return n===e?!0:D(e,85)?(t=u(e,85),dnn(Ja(n),t.vc())):!1}function OFn(n,e,t){var i,r;for(r=t.Kc();r.Ob();)if(i=u(r.Pb(),44),n.Be(e,i.md()))return!0;return!1}function DFn(n,e,t){return n.d[e.p][t.p]||(O9e(n,e,t),n.d[e.p][t.p]=!0,n.d[t.p][e.p]=!0),n.a[e.p][t.p]}function P6e(n,e){var t;return!n||n==e||!kt(e,(W(),sb))?!1:(t=u(v(e,(W(),sb)),10),t!=n)}function W$(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.$l()}}function LFn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n._l()}}function NFn(n){yOn.call(this,"The given string does not match the expected format for individual spacings.",n)}function I6e(n,e){var t;e.Ug("Min Size Preprocessing",1),t=jnn(n),ht(n,(_h(),f9),t.a),ht(n,UI,t.b),e.Vg()}function O6e(n){var e,t,i;for(e=0,i=K(Ei,J,8,n.b,0,1),t=ge(n,0);t.b!=t.d.c;)i[e++]=u(be(t),8);return i}function J$(n,e,t){var i,r,c;for(i=new Ct,c=ge(t,0);c.b!=c.d.c;)r=u(be(c),8),Fe(i,new rr(r));PFn(n,e,i)}function D6e(n,e){var t;return t=nr(n,e),ND(RN(n,e),0)|AC(RN(n,t),0)?t:nr(Ey,RN(U1(t,63),1))}function L6e(n,e){var t,i;return t=u(n.d.Bc(e),16),t?(i=n.e.hc(),i.Gc(t),n.e.d-=t.gc(),t.$b(),i):null}function $Fn(n){var e;if(e=n.a.c.length,e>0)return E4(e-1,n.a.c.length),Yl(n.a,e-1);throw M(new $yn)}function xFn(n,e,t){if(n>e)throw M(new Gn(ZA+n+Qzn+e));if(n<0||e>t)throw M(new pz(ZA+n+Stn+e+Mtn+t))}function um(n,e){n.D==null&&n.B!=null&&(n.D=n.B,n.B=null),j$(n,e==null?null:(Jn(e),e)),n.C&&n.hl(null)}function N6e(n,e){var t;t=rn((bx(),EI))!=null&&e.Sg()!=null?$(R(e.Sg()))/$(R(rn(EI))):1,Ve(n.b,e,t)}function lY(n,e){var t,i;if(i=n.c[e],i!=0)for(n.c[e]=0,n.d-=i,t=e+1;tPS?n-t>PS:t-n>PS}function XFn(n,e){var t;for(t=0;tr&&(EKn(e.q,r),i=t!=e.q.d)),i}function VFn(n,e){var t,i,r,c,s,f,h,l;return h=e.i,l=e.j,i=n.f,r=i.i,c=i.j,s=h-r,f=l-c,t=y.Math.sqrt(s*s+f*f),t}function pY(n,e){var t,i;return i=WT(n),i||(t=(UF(),$Hn(e)),i=new Cyn(t),ve(i.El(),n)),i}function Ok(n,e){var t,i;return t=u(n.c.Bc(e),16),t?(i=n.hc(),i.Gc(t),n.d-=t.gc(),t.$b(),n.mc(i)):n.jc()}function G6e(n,e){var t,i;for(i=to(n.d,1)!=0,t=!0;t;)t=!1,t=e.c.mg(e.e,i),t=t|sy(n,e,i,!1),i=!i;$Q(n)}function WFn(n,e,t,i){var r,c;n.a=e,c=i?0:1,n.f=(r=new s_n(n.c,n.a,t,c),new Kqn(t,n.a,r,n.e,n.b,n.c==(O0(),Z8)))}function xT(n){var e;return oe(n.a!=n.b),e=n.d.a[n.a],EAn(n.b==n.d.c&&e!=null),n.c=n.a,n.a=n.a+1&n.d.a.length-1,e}function JFn(n){var e;if(n.c!=0)return n.c;for(e=0;e=n.c.b:n.a<=n.c.b))throw M(new nc);return e=n.a,n.a+=n.c.c,++n.b,Y(e)}function ex(n){var e;return e=new DX(n.a),Ur(e,n),U(e,(W(),st),n),e.o.a=n.g,e.o.b=n.f,e.n.a=n.i,e.n.b=n.j,e}function tx(n){return(en(),mu).Hc(n.j)?$(R(v(n,(W(),jv)))):cc(A(T(Ei,1),J,8,0,[n.i.n,n.n,n.a])).b}function X6e(n){var e;return e=DC(Cie),u(v(n,(W(),Hc)),21).Hc((pr(),yv))&&Ke(e,(Vi(),Oc),(tr(),FP)),e}function V6e(n){var e,t,i,r;for(r=new ni,i=new C(n);i.a=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function Z6e(n,e){var t,i,r;for(r=1,t=n,i=e>=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function ea(n,e){var t,i,r,c;return c=(r=n?WT(n):null,O_n((i=e,r&&r.Gl(),i))),c==e&&(t=WT(n),t&&t.Gl()),c}function QFn(n,e,t){var i,r;return r=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,0,r,e),t?t.nj(i):t=i),t}function YFn(n,e,t){var i,r;return r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,3,r,e),t?t.nj(i):t=i),t}function vY(n,e,t){var i,r;return r=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,1,r,e),t?t.nj(i):t=i),t}function ZFn(n){var e,t;if(n!=null)for(t=0;t=i||e-129&&n<128?(FSn(),e=n+128,t=pun[e],!t&&(t=pun[e]=new vG(n)),t):new vG(n)}function sm(n){var e,t;return n>-129&&n<128?(nPn(),e=n+128,t=yun[e],!t&&(t=yun[e]=new yG(n)),t):new yG(n)}function tBn(n,e){var t;n.a.c.length>0&&(t=u(sn(n.a,n.a.c.length-1),579),sY(t,e))||nn(n.a,new kLn(e))}function c5e(n){Fs();var e,t;e=n.d.c-n.e.c,t=u(n.g,154),nu(t.b,new p7n(e)),nu(t.c,new m7n(e)),qi(t.i,new v7n(e))}function iBn(n){var e;return e=new x1,e.a+="VerticalSegment ",Dc(e,n.e),e.a+=" ",Re(e,RX(new yD,new C(n.k))),e.a}function ix(n,e){var t,i,r;for(t=0,r=uc(n,e).Kc();r.Ob();)i=u(r.Pb(),12),t+=v(i,(W(),Xu))!=null?1:0;return t}function Fg(n,e,t){var i,r,c;for(i=0,c=ge(n,0);c.b!=c.d.c&&(r=$(R(be(c))),!(r>t));)r>=e&&++i;return i}function rBn(n,e){Se(n);try{return n._b(e)}catch(t){if(t=It(t),D(t,212)||D(t,169))return!1;throw M(t)}}function yY(n,e){Se(n);try{return n.Hc(e)}catch(t){if(t=It(t),D(t,212)||D(t,169))return!1;throw M(t)}}function u5e(n,e){Se(n);try{return n.Mc(e)}catch(t){if(t=It(t),D(t,212)||D(t,169))return!1;throw M(t)}}function tw(n,e){Se(n);try{return n.xc(e)}catch(t){if(t=It(t),D(t,212)||D(t,169))return null;throw M(t)}}function o5e(n,e){Se(n);try{return n.Bc(e)}catch(t){if(t=It(t),D(t,212)||D(t,169))return null;throw M(t)}}function g5(n,e){switch(e.g){case 2:case 1:return uc(n,e);case 3:case 4:return Qo(uc(n,e))}return Dn(),Dn(),sr}function p5(n){var e;return n.Db&64?Hs(n):(e=new ls(Hs(n)),e.a+=" (name: ",Er(e,n.zb),e.a+=")",e.a)}function s5e(n){var e;return e=u(Nf(n.c.c,""),233),e||(e=new Np(u4(c4(new tp,""),"Other")),s1(n.c.c,"",e)),e}function jY(n,e,t){var i,r;return r=n.sb,n.sb=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),t}function EY(n,e,t){var i,r;return r=n.r,n.r=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,8,r,n.r),t?t.nj(i):t=i),t}function f5e(n,e,t){var i,r;return i=new ml(n.e,4,13,(r=e.c,r||(On(),Zf)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function h5e(n,e,t){var i,r;return i=new ml(n.e,3,13,null,(r=e.c,r||(On(),Zf)),f1(n,e),!1),t?t.nj(i):t=i,t}function r1(n,e){var t,i;return t=u(e,691),i=t.el(),!i&&t.fl(i=D(e,90)?new xMn(n,u(e,29)):new cDn(n,u(e,156))),i}function Dk(n,e,t){var i;n._i(n.i+1),i=n.Zi(e,t),e!=n.i&&Ic(n.g,e,n.g,e+1,n.i-e),$t(n.g,e,i),++n.i,n.Mi(e,t),n.Ni()}function l5e(n,e){var t;return e.a&&(t=e.a.a.length,n.a?Re(n.a,n.b):n.a=new mo(n.d),aDn(n.a,e.a,e.d.length,t)),n}function a5e(n,e){var t;n.c=e,n.a=p8e(e),n.a<54&&(n.f=(t=e.d>1?hDn(e.a[0],e.a[1]):hDn(e.a[0],0),id(e.e>0?t:n1(t))))}function Lk(n,e){var t;return t=new LO,n.a.Bd(t)?(b4(),new wD(Jn(GNn(n,t.a,e)))):(X1(n),b4(),b4(),Dun)}function cBn(n,e){var t;n.c.length!=0&&(t=u(Ff(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new rgn),Y_n(t,e))}function uBn(n,e){var t;n.c.length!=0&&(t=u(Ff(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new cgn),Y_n(t,e))}function rt(n,e){return Ai(n)?An(n,e):$b(n)?nSn(n,e):Nb(n)?(Jn(n),x(n)===x(e)):pW(n)?n.Fb(e):hW(n)?YMn(n,e):hJ(n,e)}function Wo(n,e,t){if(e<0)Pnn(n,t);else{if(!t.rk())throw M(new Gn(ba+t.xe()+b8));u(t,69).wk().Ek(n,n.hi(),e)}}function oBn(n,e,t){if(n<0||e>t)throw M(new Ir(ZA+n+Stn+e+", size: "+t));if(n>e)throw M(new Gn(ZA+n+Qzn+e))}function sBn(n){var e;return n.Db&64?Hs(n):(e=new ls(Hs(n)),e.a+=" (source: ",Er(e,n.d),e.a+=")",e.a)}function fBn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function d5e(n){VA();var e,t,i,r;for(t=jx(),i=0,r=t.length;i=0?ia(n):U6(ia(n1(n))))}function aBn(n,e,t,i,r,c){this.e=new Z,this.f=(gr(),Q8),nn(this.e,n),this.d=e,this.a=t,this.b=i,this.f=r,this.c=c}function g5e(n,e,t){n.n=Wa(Fa,[J,SB],[376,28],14,[t,wi(y.Math.ceil(e/32))],2),n.o=e,n.p=t,n.j=e-1>>1,n.k=t-1>>1}function dBn(n){return n-=n>>1&1431655765,n=(n>>2&858993459)+(n&858993459),n=(n>>4)+n&252645135,n+=n>>8,n+=n>>16,n&63}function bBn(n,e){var t,i;for(i=new ne(n);i.e!=i.i.gc();)if(t=u(ue(i),142),x(e)===x(t))return!0;return!1}function p5e(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(hk(n,c),""),29),i)?Qnn(n,i,e,t):null}function rx(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(hk(n,c),""),29),i)?Ynn(n,i,e,t):null}function m5e(n,e){var t;if(t=Lg(n.i,e),t==null)throw M(new eh("Node did not exist in input."));return HQ(e,t),null}function v5e(n,e){var t;if(t=oy(n,e),D(t,331))return u(t,35);throw M(new Gn(ba+e+"' is not a valid attribute"))}function v5(n,e,t){var i;if(i=n.gc(),e>i)throw M(new Kb(e,i));if(n.Si()&&n.Hc(t))throw M(new Gn(Vy));n.Gi(e,t)}function k5e(n,e){e.Ug("Sort end labels",1),qt(ut(rc(new Tn(null,new In(n.b,16)),new Hwn),new qwn),new Uwn),e.Vg()}function ci(){ci=F,Jf=new p7(n8,0),Xr=new p7(f3,1),Br=new p7(s3,2),Wf=new p7(_B,3),us=new p7("UP",4)}function $k(){$k=F,XI=new sL("P1_STRUCTURE",0),VI=new sL("P2_PROCESSING_ORDER",1),WI=new sL("P3_EXECUTION",2)}function wBn(){wBn=F,Rre=ah(ah(h6(ah(ah(h6(Ke(new ii,(Qp(),t9),(K5(),ZH)),i9),lln),dln),r9),oln),bln)}function y5e(n){switch(u(v(n,(W(),Od)),311).g){case 1:U(n,Od,(vl(),E3));break;case 2:U(n,Od,(vl(),k2))}}function j5e(n){switch(n){case 0:return new rjn;case 1:return new tjn;case 2:return new ijn;default:throw M(new W9)}}function gBn(n){switch(n.g){case 2:return Xr;case 1:return Br;case 4:return Wf;case 3:return us;default:return Jf}}function AY(n,e){switch(n.b.g){case 0:case 1:return e;case 2:case 3:return new Ho(e.d,0,e.a,e.b);default:return null}}function SY(n){switch(n.g){case 1:return Wn;case 2:return Xn;case 3:return Zn;case 4:return ae;default:return sc}}function xk(n){switch(n.g){case 1:return ae;case 2:return Wn;case 3:return Xn;case 4:return Zn;default:return sc}}function RT(n){switch(n.g){case 1:return Zn;case 2:return ae;case 3:return Wn;case 4:return Xn;default:return sc}}function PY(n,e,t,i){switch(e){case 1:return!n.n&&(n.n=new q(Ar,n,1,7)),n.n;case 2:return n.k}return yZ(n,e,t,i)}function k5(n,e,t){var i,r;return n.Pj()?(r=n.Qj(),i=lF(n,e,t),n.Jj(n.Ij(7,Y(t),i,e,r)),i):lF(n,e,t)}function cx(n,e){var t,i,r;n.d==null?(++n.e,--n.f):(r=e.ld(),t=e.Bi(),i=(t&et)%n.d.length,o4e(n,i,RHn(n,i,t,r)))}function fm(n,e){var t;t=(n.Bb&Gs)!=0,e?n.Bb|=Gs:n.Bb&=-1025,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,10,t,e))}function hm(n,e){var t;t=(n.Bb&vw)!=0,e?n.Bb|=vw:n.Bb&=-4097,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,12,t,e))}function lm(n,e){var t;t=(n.Bb&$u)!=0,e?n.Bb|=$u:n.Bb&=-8193,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,15,t,e))}function am(n,e){var t;t=(n.Bb&Tw)!=0,e?n.Bb|=Tw:n.Bb&=-2049,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,11,t,e))}function E5e(n){var e;n.g&&(e=n.c.kg()?n.f:n.a,len(e.a,n.o,!0),len(e.a,n.o,!1),U(n.o,(cn(),Kt),(Oi(),Ud)))}function C5e(n){var e;if(!n.a)throw M(new Or("Cannot offset an unassigned cut."));e=n.c-n.b,n.b+=e,_In(n,e),KIn(n,e)}function M5e(n,e){var t;if(t=ee(n.k,e),t==null)throw M(new eh("Port did not exist in input."));return HQ(e,t),null}function T5e(n){var e,t;for(t=xHn(jo(n)).Kc();t.Ob();)if(e=Oe(t.Pb()),_5(n,e))return A3e((mCn(),Boe),e);return null}function pBn(n){var e,t;for(t=n.p.a.ec().Kc();t.Ob();)if(e=u(t.Pb(),218),e.f&&n.b[e.c]<-1e-10)return e;return null}function A5e(n){var e,t;for(t=z1(new x1,91),e=!0;n.Ob();)e||(t.a+=ur),e=!1,Dc(t,n.Pb());return(t.a+="]",t).a}function S5e(n){var e,t,i;for(e=new Z,i=new C(n.b);i.ae?1:n==e?n==0?bt(1/n,1/e):0:isNaN(n)?isNaN(e)?0:1:-1}function I5e(n){var e;return e=n.a[n.c-1&n.a.length-1],e==null?null:(n.c=n.c-1&n.a.length-1,$t(n.a,n.c,null),e)}function O5e(n){var e,t,i;for(i=0,t=n.length,e=0;e=1?Xr:Wf):t}function $5e(n){switch(u(v(n,(cn(),$l)),223).g){case 1:return new Ppn;case 3:return new Npn;default:return new Spn}}function ta(n){if(n.c)ta(n.c);else if(n.d)throw M(new Or("Stream already terminated, can't be modified or used"))}function $0(n,e,t){var i;return i=n.a.get(e),n.a.set(e,t===void 0?null:t),i===void 0?(++n.c,++n.b.g):++n.d,i}function x5e(n,e,t){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),10),Ek(t,u(sn(e,i.p),16)))return i;return null}function OY(n,e,t){var i;return i=0,e&&(vg(n.a)?i+=e.f.a/2:i+=e.f.b/2),t&&(vg(n.a)?i+=t.f.a/2:i+=t.f.b/2),i}function F5e(n,e,t){var i;i=t,!i&&(i=YV(new op,0)),i.Ug(PXn,2),jRn(n.b,e,i.eh(1)),YIe(n,e,i.eh(1)),eLe(e,i.eh(1)),i.Vg()}function DY(n,e,t){var i,r;return i=(B1(),r=new yE,r),aT(i,e),lT(i,t),n&&ve((!n.a&&(n.a=new ti(xo,n,5)),n.a),i),i}function ox(n){var e;return n.Db&64?Hs(n):(e=new ls(Hs(n)),e.a+=" (identifier: ",Er(e,n.k),e.a+=")",e.a)}function sx(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,18,t,e))}function LY(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,18,t,e))}function dm(n,e){var t;t=(n.Bb&wh)!=0,e?n.Bb|=wh:n.Bb&=-16385,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,16,t,e))}function NY(n,e){var t;t=(n.Bb&hr)!=0,e?n.Bb|=hr:n.Bb&=-65537,n.Db&4&&!(n.Db&1)&&it(n,new Rs(n,1,20,t,e))}function $Y(n){var e;return e=K(fs,gh,28,2,15,1),n-=hr,e[0]=(n>>10)+Sy&ui,e[1]=(n&1023)+56320&ui,ws(e,0,e.length)}function B5e(n){var e;return e=sw(n),e>34028234663852886e22?St:e<-34028234663852886e22?li:e}function nr(n,e){var t;return Vr(n)&&Vr(e)&&(t=n+e,Ay"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function _5e(n,e){return An(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function x0(n,e){return Tf(),Ks(fa),y.Math.abs(n-e)<=fa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e))}function El(){El=F,lU=new kC(n8,0),Yj=new kC("POLYLINE",1),Rv=new kC("ORTHOGONAL",2),F3=new kC("SPLINES",3)}function _T(){_T=F,l1n=new uL("ASPECT_RATIO_DRIVEN",0),Oq=new uL("MAX_SCALE_DRIVEN",1),h1n=new uL("AREA_DRIVEN",2)}function H5e(n,e,t){var i;try{l6e(n,e,t)}catch(r){throw r=It(r),D(r,606)?(i=r,M(new $J(i))):M(r)}return e}function q5e(n){var e,t,i;for(t=0,i=n.length;te&&i.Ne(n[c-1],n[c])>0;--c)s=n[c],$t(n,c,n[c-1]),$t(n,c-1,s)}function vn(n,e){var t,i,r,c,s;if(t=e.f,s1(n.c.d,t,e),e.g!=null)for(r=e.g,c=0,s=r.length;ce){wDn(t);break}}_7(t,e)}function X5e(n,e){var t,i,r;i=Pg(e),r=$(R(rw(i,(cn(),Ws)))),t=y.Math.max(0,r/2-.5),P5(e,t,1),nn(n,new NCn(e,t))}function V5e(n,e,t){var i;t.Ug("Straight Line Edge Routing",1),t.dh(e,xrn),i=u(z(e,(Tg(),D2)),27),iGn(n,i),t.dh(e,DS)}function xY(n,e){n.n.c.length==0&&nn(n.n,new NM(n.s,n.t,n.i)),nn(n.b,e),gZ(u(sn(n.n,n.n.c.length-1),209),e),RUn(n,e)}function y5(n){var e;this.a=(e=u(n.e&&n.e(),9),new _o(e,u(xs(e,e.length),9),0)),this.b=K(ki,Bn,1,this.a.a.length,5,1)}function Jr(n){var e;return Array.isArray(n)&&n.Tm===Q2?Xa(wo(n))+"@"+(e=mt(n)>>>0,e.toString(16)):n.toString()}function W5e(n,e){return n.h==Ty&&n.m==0&&n.l==0?(e&&(wa=Yc(0,0,0)),nTn((R4(),lun))):(e&&(wa=Yc(n.l,n.m,n.h)),Yc(0,0,0))}function J5e(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function yBn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function FY(n,e,t,i){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return PY(n,e,t,i)}function HT(n,e){if(e==n.d)return n.e;if(e==n.e)return n.d;throw M(new Gn("Node "+e+" not part of edge "+n))}function Q5e(n,e){var t;if(t=oy(n.Dh(),e),D(t,102))return u(t,19);throw M(new Gn(ba+e+"' is not a valid reference"))}function Jo(n,e,t,i){if(e<0)ten(n,t,i);else{if(!t.rk())throw M(new Gn(ba+t.xe()+b8));u(t,69).wk().Ck(n,n.hi(),e,i)}}function eo(n){var e;if(n.b){if(eo(n.b),n.b.d!=n.c)throw M(new Bo)}else n.d.dc()&&(e=u(n.f.c.xc(n.e),16),e&&(n.d=e))}function Y5e(n){Bb();var e,t,i,r;for(e=n.o.b,i=u(u(ot(n.r,(en(),ae)),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r=t.e,r.b+=e}function Z5e(n){var e,t,i;for(this.a=new rh,i=new C(n);i.a=r)return e.c+t;return e.c+e.b.gc()}function e8e(n,e){m4();var t,i,r,c;for(i=LNn(n),r=e,F4(i,0,i.length,r),t=0;t0&&(i+=r,++t);return t>1&&(i+=n.d*(t-1)),i}function i8e(n){var e,t,i,r,c;return c=enn(n),t=Z9(n.c),i=!t,i&&(r=new _a,bf(c,"knownLayouters",r),e=new lyn(r),qi(n.c,e)),c}function KY(n){var e,t,i;for(i=new Hl,i.a+="[",e=0,t=n.gc();e0&&(zn(e-1,n.length),n.charCodeAt(e-1)==58)&&!lx(n,D9,L9))}function _Y(n,e){var t;return x(n)===x(e)?!0:D(e,92)?(t=u(e,92),n.e==t.e&&n.d==t.d&&I3e(n,t.a)):!1}function zp(n){switch(en(),n.g){case 4:return Xn;case 1:return Zn;case 3:return ae;case 2:return Wn;default:return sc}}function o8e(n){var e,t;if(n.b)return n.b;for(t=Uf?null:n.d;t;){if(e=Uf?null:t.b,e)return e;t=Uf?null:t.d}return a4(),$un}function HY(n){var e,t,i;for(i=$(R(n.a.of((He(),iO)))),t=new C(n.a.Sf());t.a>5,e=n&31,i=K(ye,_e,28,t+1,15,1),i[t]=1<3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ot(n,e){var t,i,r;if(t=(n.i==null&&bh(n),n.i),i=e.Lj(),i!=-1){for(r=t.length;i=0;--i)for(e=t[i],r=0;r>1,this.k=e-1>>1}function j8e(n){YM(),u(n.of((He(),Ta)),181).Hc((io(),hO))&&(u(n.of(Ww),181).Fc((zu(),B3)),u(n.of(Ta),181).Mc(hO))}function SBn(n){var e,t;e=n.d==(Yp(),dv),t=GZ(n),e&&!t||!e&&t?U(n.a,(cn(),Th),(Rh(),Uj)):U(n.a,(cn(),Th),(Rh(),qj))}function bx(){bx=F,nC(),EI=(cn(),gb),Qte=Of(A(T(Xq,1),Ern,149,0,[Tj,Ws,T2,wb,qw,IH,Av,Sv,OH,X8,M2,Bd,A2]))}function E8e(n,e){var t;return t=u(Wr(n,qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),t.Qc(WSn(t.gc()))}function PBn(n,e){var t,i;if(i=new Y3(n.a.ad(e,!0)),i.a.gc()<=1)throw M(new rp);return t=i.a.ec().Kc(),t.Pb(),u(t.Pb(),40)}function C8e(n,e,t){var i,r;return i=$(n.p[e.i.p])+$(n.d[e.i.p])+e.n.b+e.a.b,r=$(n.p[t.i.p])+$(n.d[t.i.p])+t.n.b+t.a.b,r-i}function WY(n,e){var t;return n.i>0&&(e.lengthn.i&&$t(e,n.i,null),e}function UT(n){var e;return n.Db&64?p5(n):(e=new ls(p5(n)),e.a+=" (instanceClassName: ",Er(e,n.D),e.a+=")",e.a)}function GT(n){var e,t,i,r;for(r=0,t=0,i=n.length;t0?(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=RHn(n,r,i,e),t!=-1):!1}function IBn(n,e){var t,i;n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d+=e,t=e-n.f,i=n.e+t,n.f=i-n.e-t,n.e=i}function JY(n,e){switch(e){case 3:P0(n,0);return;case 4:I0(n,0);return;case 5:eu(n,0);return;case 6:tu(n,0);return}kY(n,e)}function F0(n,e){switch(e.g){case 1:return Cp(n.j,(Ou(),Fon));case 2:return Cp(n.j,(Ou(),Ron));default:return Dn(),Dn(),sr}}function QY(n){m0();var e;switch(e=n.Pc(),e.length){case 0:return qK;case 1:return new VL(Se(e[0]));default:return new PN(q5e(e))}}function OBn(n,e){n.Xj();try{n.d.bd(n.e++,e),n.f=n.d.j,n.g=-1}catch(t){throw t=It(t),D(t,77)?M(new Bo):M(t)}}function gx(){gx=F,TU=new Tvn,zdn=new Avn,Xdn=new Svn,Vdn=new Pvn,Wdn=new Ivn,Jdn=new Ovn,Qdn=new Dvn,Ydn=new Lvn,Zdn=new Nvn}function zT(n,e){kX();var t,i;return t=I7((KE(),KE(),T8)),i=null,e==t&&(i=u(Nc(fun,n),624)),i||(i=new JPn(n),e==t&&Dr(fun,n,i)),i}function DBn(n){cw();var e;return(n.q?n.q:(Dn(),Dn(),Wh))._b((cn(),db))?e=u(v(n,db),203):e=u(v(Hi(n),z8),203),e}function rw(n,e){var t,i;return i=null,kt(n,(cn(),yI))&&(t=u(v(n,yI),96),t.pf(e)&&(i=t.of(e))),i==null&&(i=v(Hi(n),e)),i}function LBn(n,e){var t,i,r;return D(e,44)?(t=u(e,44),i=t.ld(),r=tw(n.Rc(),i),sh(r,t.md())&&(r!=null||n.Rc()._b(i))):!1}function gf(n,e){var t,i,r;return n.f>0&&(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t)?t.md():null}function Xc(n,e,t){var i,r,c;return n.Pj()?(i=n.i,c=n.Qj(),Dk(n,i,e),r=n.Ij(3,null,e,i,c),t?t.nj(r):t=r):Dk(n,n.i,e),t}function T8e(n,e,t){var i,r;return i=new ml(n.e,4,10,(r=e.c,D(r,90)?u(r,29):(On(),Is)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function A8e(n,e,t){var i,r;return i=new ml(n.e,3,10,null,(r=e.c,D(r,90)?u(r,29):(On(),Is)),f1(n,e),!1),t?t.nj(i):t=i,t}function NBn(n){Bb();var e;return e=new rr(u(n.e.of((He(),_2)),8)),n.B.Hc((io(),_v))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function ia(n){dh();var e,t;return t=Ae(n),e=Ae(U1(n,32)),e!=0?new HOn(t,e):t>10||t<0?new gl(1,t):kQn[t]}function Bk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n%e,Ay=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Kk(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.Ne(e,c.d),t&&i==0)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function L8e(n,e,t,i){var r,c,s;return r=!1,xOe(n.f,t,i)&&(e9e(n.f,n.a[e][t],n.a[e][i]),c=n.a[e],s=c[i],c[i]=c[t],c[t]=s,r=!0),r}function BBn(n,e,t){var i,r,c,s;for(r=u(ee(n.b,t),183),i=0,s=new C(e.j);s.a>5,e&=31,r=n.d+t+(e==0?0:1),i=K(ye,_e,28,r,15,1),Oye(i,n.a,t,e),c=new Ya(n.e,r,i),J6(c),c}function N8e(n,e){var t,i,r;for(i=new ie(ce(Qt(n).a.Kc(),new En));pe(i);)if(t=u(fe(i),18),r=t.d.i,r.c==e)return!1;return!0}function nZ(n,e,t){var i,r,c,s,f;return s=n.k,f=e.k,i=t[s.g][f.g],r=R(rw(n,i)),c=R(rw(e,i)),y.Math.max((Jn(r),r),(Jn(c),c))}function $8e(){return Error.stackTraceLimit>0?(y.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function x8e(n,e){return Tf(),Tf(),Ks(fa),(y.Math.abs(n-e)<=fa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))>0}function eZ(n,e){return Tf(),Tf(),Ks(fa),(y.Math.abs(n-e)<=fa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<0}function KBn(n,e){return Tf(),Tf(),Ks(fa),(y.Math.abs(n-e)<=fa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<=0}function mx(n,e){for(var t=0;!e[t]||e[t]=="";)t++;for(var i=e[t++];t0&&this.b>0&&(this.g=cM(this.c,this.b,this.a))}function F8e(n,e){var t=n.a,i;e=String(e),t.hasOwnProperty(e)&&(i=t[e]);var r=(K$(),WK)[typeof i],c=r?r(i):wY(typeof i);return c}function wm(n){var e,t,i;if(i=null,e=Eh in n.a,t=!e,t)throw M(new eh("Every element must have an id."));return i=Zp(dl(n,Eh)),i}function B0(n){var e,t;for(t=a_n(n),e=null;n.c==2;)Ze(n),e||(e=(nt(),nt(),new S6(2)),pd(e,t),t=e),t.Jm(a_n(n));return t}function VT(n,e){var t,i,r;return n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t?(V$n(n,t),t.md()):null}function XBn(n,e){return n.e>e.e?1:n.ee.d?n.e:n.d=48&&n<48+y.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function B8e(n,e){if(e.c==n)return e.d;if(e.d==n)return e.c;throw M(new Gn("Input edge is not connected to the input port."))}function R8e(n){if(JT(nv,n))return _n(),ov;if(JT(cK,n))return _n(),ga;throw M(new Gn("Expecting true or false"))}function rZ(n){switch(typeof n){case nB:return t1(n);case dtn:return pp(n);case i3:return SAn(n);default:return n==null?0:l0(n)}}function ah(n,e){if(n.a<0)throw M(new Or("Did not call before(...) or after(...) before calling add(...)."));return YX(n,n.a,e),n}function cZ(n){return $M(),D(n,162)?u(ee(hE,MQn),295).Rg(n):Zc(hE,wo(n))?u(ee(hE,wo(n)),295).Rg(n):null}function iu(n){var e,t;return n.Db&32||(t=(e=u(Un(n,16),29),se(e||n.ii())-se(n.ii())),t!=0&&Xp(n,32,K(ki,Bn,1,t,5,1))),n}function Xp(n,e,t){var i;n.Db&e?t==null?jCe(n,e):(i=Rx(n,e),i==-1?n.Eb=t:$t(cd(n.Eb),i,t)):t!=null&>e(n,e,t)}function K8e(n,e,t,i){var r,c;e.c.length!=0&&(r=$Me(t,i),c=xEe(e),qt(fT(new Tn(null,new In(c,1)),new L3n),new MIn(n,t,r,i)))}function _8e(n,e){var t,i,r,c;return i=n.a.length-1,t=e-n.b&i,c=n.c-e&i,r=n.c-n.b&i,EAn(t=c?(R6e(n,e),-1):(B6e(n,e),1)}function WT(n){var e,t,i;if(i=n.Jh(),!i)for(e=0,t=n.Ph();t;t=t.Ph()){if(++e>PB)return t.Qh();if(i=t.Jh(),i||t==n)break}return i}function WBn(n,e){var t;return x(e)===x(n)?!0:!D(e,21)||(t=u(e,21),t.gc()!=n.gc())?!1:n.Ic(t)}function H8e(n,e){return n.ee.e?1:n.fe.f?1:mt(n)-mt(e)}function JT(n,e){return Jn(n),e==null?!1:An(n,e)?!0:n.length==e.length&&An(n.toLowerCase(),e.toLowerCase())}function Ml(n){var e,t;return Ec(n,-129)>0&&Ec(n,128)<0?(ZSn(),e=Ae(n)+128,t=mun[e],!t&&(t=mun[e]=new kG(n)),t):new kG(n)}function dd(){dd=F,Ow=new aC(kh,0),Don=new aC("INSIDE_PORT_SIDE_GROUPS",1),P_=new aC("GROUP_MODEL_ORDER",2),I_=new aC(tin,3)}function q8e(n){var e;return n.b||xhe(n,(e=$ae(n.e,n.a),!e||!An(cK,gf((!e.b&&(e.b=new lo((On(),ar),pc,e)),e.b),"qualified")))),n.c}function U8e(n,e){var t,i;for(t=(zn(e,n.length),n.charCodeAt(e)),i=e+1;i2e3&&(hQn=n,uP=y.setTimeout(_he,10))),cP++==0?(ime((az(),sun)),!0):!1}function r9e(n,e,t){var i;(DQn?(o8e(n),!0):LQn||$Qn?(a4(),!0):NQn&&(a4(),!1))&&(i=new aSn(e),i.b=t,aje(n,i))}function kx(n,e){var t;t=!n.A.Hc((go(),Gd))||n.q==(Oi(),qc),n.u.Hc((zu(),Fl))?t?XDe(n,e):UGn(n,e):n.u.Hc(Ia)&&(t?dDe(n,e):czn(n,e))}function eRn(n){var e;x(z(n,(He(),R2)))===x((jl(),uO))&&(At(n)?(e=u(z(At(n),R2),346),ht(n,R2,e)):ht(n,R2,E9))}function c9e(n){var e,t;return kt(n.d.i,(cn(),Cv))?(e=u(v(n.c.i,Cv),17),t=u(v(n.d.i,Cv),17),jc(e.a,t.a)>0):!1}function tRn(n,e,t){return new Ho(y.Math.min(n.a,e.a)-t/2,y.Math.min(n.b,e.b)-t/2,y.Math.abs(n.a-e.a)+t,y.Math.abs(n.b-e.b)+t)}function iRn(n){var e;this.d=new Z,this.j=new Li,this.g=new Li,e=n.g.b,this.f=u(v(Hi(e),(cn(),Do)),88),this.e=$(R(nA(e,qw)))}function rRn(n){this.d=new Z,this.e=new Ql,this.c=K(ye,_e,28,(en(),A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=n}function sZ(n,e,t){var i;switch(i=t[n.g][e],n.g){case 1:case 3:return new V(0,i);case 2:case 4:return new V(i,0);default:return null}}function cRn(n,e,t){var i,r;r=u(z7(e.f),205);try{r.rf(n,t),hIn(e.f,r)}catch(c){throw c=It(c),D(c,103)?(i=c,M(i)):M(c)}}function uRn(n,e,t){var i,r,c,s,f,h;return i=null,f=Zen(z4(),e),c=null,f&&(r=null,h=Qen(f,t),s=null,h!=null&&(s=n.qf(f,h)),r=s,c=r),i=c,i}function yx(n,e,t,i){var r;if(r=n.length,e>=r)return r;for(e=e>0?e:0;ei&&$t(e,i,null),e}function oRn(n,e){var t,i;for(i=n.a.length,e.lengthi&&$t(e,i,null),e}function gm(n,e){var t,i;if(++n.j,e!=null&&(t=(i=n.a.Cb,D(i,99)?u(i,99).th():null),hCe(e,t))){Xp(n.a,4,t);return}Xp(n.a,4,u(e,129))}function u9e(n){var e;if(n==null)return null;if(e=lMe(Fc(n,!0)),e==null)throw M(new kD("Invalid hexBinary value: '"+n+"'"));return e}function QT(n,e,t){var i;e.a.length>0&&(nn(n.b,new SSn(e.a,t)),i=e.a.length,0i&&(e.a+=ITn(K(fs,gh,28,-i,15,1))))}function sRn(n,e,t){var i,r,c;if(!t[e.d])for(t[e.d]=!0,r=new C(xg(e));r.a=n.b>>1)for(i=n.c,t=n.b;t>e;--t)i=i.b;else for(i=n.a.a,t=0;t=0?n.Wh(r):hF(n,i)):t<0?hF(n,i):u(i,69).wk().Bk(n,n.hi(),t)}function aRn(n){var e,t,i;for(i=(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o),t=i.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),44),e.md();return rk(i)}function rn(n){var e;if(D(n.a,4)){if(e=cZ(n.a),e==null)throw M(new Or(NVn+n.b+"'. "+LVn+(ll(lE),lE.k)+bcn));return e}else return n.a}function b9e(n,e){var t,i;if(n.j.length!=e.j.length)return!1;for(t=0,i=n.j.length;t=64&&e<128&&(r=lf(r,Bs(1,e-64)));return r}function nA(n,e){var t,i;return i=null,kt(n,(He(),$3))&&(t=u(v(n,$3),96),t.pf(e)&&(i=t.of(e))),i==null&&Hi(n)&&(i=v(Hi(n),e)),i}function w9e(n,e){var t;return t=u(v(n,(cn(),Fr)),75),yL(e,LZn)?t?vo(t):(t=new Mu,U(n,Fr,t)):t&&U(n,Fr,null),t}function C5(){C5=F,aon=(He(),qan),g_=Ean,DYn=x2,lon=C1,xYn=(aA(),Uun),$Yn=Hun,FYn=zun,NYn=_un,LYn=(Q$(),son),w_=PYn,hon=IYn,pP=OYn}function eA(n){switch($z(),this.c=new Z,this.d=n,n.g){case 0:case 2:this.a=qW(Oon),this.b=St;break;case 3:case 1:this.a=Oon,this.b=li}}function g9e(n){var e;Ep(u(v(n,(cn(),Kt)),101))&&(e=n.b,nHn((Ln(0,e.c.length),u(e.c[0],30))),nHn(u(sn(e,e.c.length-1),30)))}function p9e(n,e){e.Ug("Self-Loop post-processing",1),qt(ut(ut(rc(new Tn(null,new In(n.b,16)),new s2n),new f2n),new h2n),new l2n),e.Vg()}function dRn(n,e,t){var i,r;if(n.c)eu(n.c,n.c.i+e),tu(n.c,n.c.j+t);else for(r=new C(n.b);r.a=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}n.C&&(t.b=n.C.b,t.c=n.C.c)}function M5(){M5=F,Nhn=new l7(Crn,0),KH=new l7(sR,1),_H=new l7("LINEAR_SEGMENTS",2),W8=new l7("BRANDES_KOEPF",3),J8=new l7(sVn,4)}function T5(){T5=F,fj=new hC(eS,0),wP=new hC(HB,1),gP=new hC(qB,2),hj=new hC(UB,3),fj.a=!1,wP.a=!0,gP.a=!1,hj.a=!0}function Vp(){Vp=F,uj=new fC(eS,0),cj=new fC(HB,1),oj=new fC(qB,2),sj=new fC(UB,3),uj.a=!1,cj.a=!0,oj.a=!1,sj.a=!0}function Wp(n,e,t,i){var r;return t>=0?n.Sh(e,t,i):(n.Ph()&&(i=(r=n.Fh(),r>=0?n.Ah(i):n.Ph().Th(n,-1-r,null,i))),n.Ch(e,t,i))}function fZ(n,e){switch(e){case 7:!n.e&&(n.e=new Nn(Vt,n,7,4)),me(n.e);return;case 8:!n.d&&(n.d=new Nn(Vt,n,8,5)),me(n.d);return}JY(n,e)}function ht(n,e,t){return t==null?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),VT(n.o,e)):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),zk(n.o,e,t)),n}function pRn(n,e){Dn();var t,i,r,c;for(t=n,c=e,D(n,21)&&!D(e,21)&&(t=e,c=n),r=t.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function j9e(n,e,t,i){if(e.at.b)return!0}return!1}function Tx(n,e){return Ai(n)?!!iQn[e]:n.Sm?!!n.Sm[e]:$b(n)?!!tQn[e]:Nb(n)?!!eQn[e]:!1}function E9e(n){var e;e=n.a;do e=u(fe(new ie(ce(ji(e).a.Kc(),new En))),18).c.i,e.k==(Vn(),Mi)&&n.b.Fc(e);while(e.k==(Vn(),Mi));n.b=Qo(n.b)}function mRn(n,e){var t,i,r;for(r=n,i=new ie(ce(ji(e).a.Kc(),new En));pe(i);)t=u(fe(i),18),t.c.i.c&&(r=y.Math.max(r,t.c.i.c.p));return r}function C9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.d+t.b.Mf().b+t.d.a,i.Ob()&&(r+=n.w);return r}function M9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.b+t.b.Mf().a+t.d.c,i.Ob()&&(r+=n.w);return r}function vRn(n){var e,t,i,r;if(i=0,r=aw(n),r.c.length==0)return 1;for(t=new C(r);t.a=0?n.Lh(s,t,!0):H0(n,c,t)):u(c,69).wk().yk(n,n.hi(),r,t,i)}function P9e(n,e,t,i){var r,c;c=e.pf((He(),K2))?u(e.of(K2),21):n.j,r=d5e(c),r!=(VA(),l_)&&(t&&!tZ(r)||bnn(aMe(n,r,i),e))}function I9e(n){switch(n.g){case 1:return N0(),rj;case 3:return N0(),ij;case 2:return N0(),d_;case 4:return N0(),a_;default:return null}}function O9e(n,e,t){if(n.e)switch(n.b){case 1:yge(n.c,e,t);break;case 0:jge(n.c,e,t)}else KDn(n.c,e,t);n.a[e.p][t.p]=n.c.i,n.a[t.p][e.p]=n.c.e}function kRn(n){var e,t;if(n==null)return null;for(t=K(Qh,J,199,n.length,0,2),e=0;e=0)return r;if(n.ol()){for(i=0;i=r)throw M(new Kb(e,r));if(n.Si()&&(i=n.dd(t),i>=0&&i!=e))throw M(new Gn(Vy));return n.Xi(e,t)}function hZ(n,e){if(this.a=u(Se(n),253),this.b=u(Se(e),253),n.Ed(e)>0||n==(dD(),_K)||e==(bD(),HK))throw M(new Gn("Invalid range: "+qDn(n,e)))}function yRn(n){var e,t;for(this.b=new Z,this.c=n,this.a=!1,t=new C(n.a);t.a0),(e&-e)==e)return wi(e*to(n,31)*4656612873077393e-25);do t=to(n,31),i=t%e;while(t-i+(e-1)<0);return wi(i)}function F9e(n,e,t){switch(t.g){case 1:n.a=e.a/2,n.b=0;break;case 2:n.a=e.a,n.b=e.b/2;break;case 3:n.a=e.a/2,n.b=e.b;break;case 4:n.a=0,n.b=e.b/2}}function _k(n,e,t,i){var r,c;for(r=e;r1&&(c=L9e(n,e)),c}function CRn(n){var e;return e=$(R(z(n,(He(),Qj))))*y.Math.sqrt((!n.a&&(n.a=new q(Ye,n,10,11)),n.a).i),new V(e,e/$(R(z(n,rO))))}function Sx(n){var e;return n.f&&n.f.Vh()&&(e=u(n.f,54),n.f=u(ea(n,e),84),n.f!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.f))),n.f}function Px(n){var e;return n.i&&n.i.Vh()&&(e=u(n.i,54),n.i=u(ea(n,e),84),n.i!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,7,e,n.i))),n.i}function br(n){var e;return n.b&&n.b.Db&64&&(e=n.b,n.b=u(ea(n,e),19),n.b!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,21,e,n.b))),n.b}function uA(n,e){var t,i,r;n.d==null?(++n.e,++n.f):(i=e.Bi(),uTe(n,n.f+1),r=(i&et)%n.d.length,t=n.d[r],!t&&(t=n.d[r]=n.dk()),t.Fc(e),++n.f)}function dZ(n,e,t){var i;return e.tk()?!1:e.Ik()!=-2?(i=e.ik(),i==null?t==null:rt(i,t)):e.qk()==n.e.Dh()&&t==null}function oA(){var n;Co(16,$zn),n=sxn(16),this.b=K(UK,Cy,303,n,0,1),this.c=K(UK,Cy,303,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function Tl(n){vV.call(this),this.k=(Vn(),zt),this.j=(Co(6,mw),new Gc(6)),this.b=(Co(2,mw),new Gc(2)),this.d=new sD,this.f=new nz,this.a=n}function R9e(n){var e,t;n.c.length<=1||(e=Sqn(n,(en(),ae)),w_n(n,u(e.a,17).a,u(e.b,17).a),t=Sqn(n,Wn),w_n(n,u(t.a,17).a,u(t.b,17).a))}function K9e(n,e,t){var i,r;for(r=n.a.b,i=r.c.length;i102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function Nx(n,e){if(n==null)throw M(new fp("null key in entry: null="+e));if(e==null)throw M(new fp("null value in entry: "+n+"=null"))}function q9e(n,e){for(var t,i;n.Ob();)if(!e.Ob()||(t=n.Pb(),i=e.Pb(),!(x(t)===x(i)||t!=null&&rt(t,i))))return!1;return!e.Ob()}function ARn(n,e){var t;return t=A(T(Pi,1),Tr,28,15,[Z$(n.a[0],e),Z$(n.a[1],e),Z$(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function SRn(n,e){var t;return t=A(T(Pi,1),Tr,28,15,[$T(n.a[0],e),$T(n.a[1],e),$T(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function wZ(n,e,t){Ep(u(v(e,(cn(),Kt)),101))||(PJ(n,e,h1(e,t)),PJ(n,e,h1(e,(en(),ae))),PJ(n,e,h1(e,Xn)),Dn(),Yt(e.j,new N7n(n)))}function PRn(n){var e,t;for(n.c||sOe(n),t=new Mu,e=new C(n.a),E(e);e.a0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function i7e(n){var e;return n==null?null:new H1((e=Fc(n,!0),e.length>0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function pZ(n,e,t,i,r,c,s,f){var h,l;i&&(h=i.a[0],h&&pZ(n,e,t,h,r,c,s,f),qx(n,t,i.d,r,c,s,f)&&e.Fc(i),l=i.a[1],l&&pZ(n,e,t,l,r,c,s,f))}function Kg(n,e,t){try{return o0(C$(n,e,t),1)}catch(i){throw i=It(i),D(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function NRn(n,e,t){try{return o0(C$(n,e,t),0)}catch(i){throw i=It(i),D(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function $Rn(n,e,t){try{return o0(C$(n,e,t),2)}catch(i){throw i=It(i),D(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function xRn(n,e){if(n.g==-1)throw M(new Cu);n.Xj();try{n.d.hd(n.g,e),n.f=n.d.j}catch(t){throw t=It(t),D(t,77)?M(new Bo):M(t)}}function r7e(n){var e,t,i,r,c;for(i=new C(n.b);i.ac&&$t(e,c,null),e}function c7e(n,e){var t,i;if(i=n.gc(),e==null){for(t=0;t0&&(h+=r),l[a]=s,s+=f*(h+i)}function BRn(n){var e,t,i;for(i=n.f,n.n=K(Pi,Tr,28,i,15,1),n.d=K(Pi,Tr,28,i,15,1),e=0;e0?n.c:0),++r;n.b=i,n.d=c}function qRn(n,e){var t;return t=A(T(Pi,1),Tr,28,15,[aZ(n,(wf(),bc),e),aZ(n,Wc,e),aZ(n,wc,e)]),n.f&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function d7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!1,!0)}catch(r){throw r=It(r),D(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function b7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!0,!1)}catch(r){throw r=It(r),D(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function URn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Qs))?(e.Mc(Qs),e.Fc(Ys)):e.Hc(Ys)&&(e.Mc(Ys),e.Fc(Qs)))}function GRn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),nf))?(e.Mc(nf),e.Fc(Ms)):e.Hc(Ms)&&(e.Mc(Ms),e.Fc(nf)))}function Kx(n,e,t,i){var r,c,s,f;return n.a==null&&gje(n,e),s=e.b.j.c.length,c=t.d.p,f=i.d.p,r=f-1,r<0&&(r=s-1),c<=r?n.a[r]-n.a[c]:n.a[s-1]-n.a[c]+n.a[r]}function w7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,27).kh().i),t=new ne(u(n.f,27).kh());t.e!=t.i.gc();)e=u(ue(t),135),nn(n.b,new pD(e));return n.b}function g7e(n){var e,t;if(!n.e)for(n.e=RM(mN(u(n.f,27)).i),t=new ne(mN(u(n.f,27)));t.e!=t.i.gc();)e=u(ue(t),123),nn(n.e,new Bkn(e));return n.e}function zRn(n){var e,t;if(!n.a)for(n.a=RM(AM(u(n.f,27)).i),t=new ne(AM(u(n.f,27)));t.e!=t.i.gc();)e=u(ue(t),27),nn(n.a,new ML(n,e));return n.a}function K0(n){var e;if(!n.C&&(n.D!=null||n.B!=null))if(e=iDe(n),e)n.hl(e);else try{n.hl(null)}catch(t){if(t=It(t),!D(t,63))throw M(t)}return n.C}function p7e(n){switch(n.q.g){case 5:gKn(n,(en(),Xn)),gKn(n,ae);break;case 4:mGn(n,(en(),Xn)),mGn(n,ae);break;default:y_n(n,(en(),Xn)),y_n(n,ae)}}function m7e(n){switch(n.q.g){case 5:pKn(n,(en(),Zn)),pKn(n,Wn);break;case 4:vGn(n,(en(),Zn)),vGn(n,Wn);break;default:j_n(n,(en(),Zn)),j_n(n,Wn)}}function _g(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,r.a,0),r.a+=t.f.a+e,r.b=y.Math.max(r.b,t.f.b);return r.b>0&&(r.b+=e),r}function hA(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,0,r.b),r.b+=t.f.b+e,r.a=y.Math.max(r.a,t.f.a);return r.a>0&&(r.a+=e),r}function XRn(n){var e,t,i;for(i=et,t=new C(n.a);t.a>16==6?n.Cb.Th(n,5,Ef,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function v7e(n){O4();var e=n.e;if(e&&e.stack){var t=e.stack,i=e+` +`;return t.substring(0,i.length)==i&&(t=t.substring(i.length)),t.split(` +`)}return[]}function k7e(n){var e;return e=(Q$n(),wQn),e[n>>>28]|e[n>>24&15]<<4|e[n>>20&15]<<8|e[n>>16&15]<<12|e[n>>12&15]<<16|e[n>>8&15]<<20|e[n>>4&15]<<24|e[n&15]<<28}function JRn(n){var e,t,i;n.b==n.c&&(i=n.a.length,t=QQ(y.Math.max(8,i))<<1,n.b!=0?(e=xs(n.a,t),axn(n,e,i),n.a=e,n.b=0):Pb(n.a,t),n.c=i)}function y7e(n,e){var t;return t=n.b,t.pf((He(),oo))?t.ag()==(en(),Wn)?-t.Mf().a-$(R(t.of(oo))):e+$(R(t.of(oo))):t.ag()==(en(),Wn)?-t.Mf().a:e}function qk(n){var e;return n.b.c.length!=0&&u(sn(n.b,0),72).a?u(sn(n.b,0),72).a:(e=vN(n),e??""+(n.c?qr(n.c.a,n,0):-1))}function lA(n){var e;return n.f.c.length!=0&&u(sn(n.f,0),72).a?u(sn(n.f,0),72).a:(e=vN(n),e??""+(n.i?qr(n.i.j,n,0):-1))}function j7e(n,e){var t,i;if(e<0||e>=n.gc())return null;for(t=e;t0?n.c:0),r=y.Math.max(r,e.d),++i;n.e=c,n.b=r}function C7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,123).kh().i),t=new ne(u(n.f,123).kh());t.e!=t.i.gc();)e=u(ue(t),135),nn(n.b,new pD(e));return n.b}function M7e(n,e){var t,i,r;if(e.dc())return m4(),m4(),aE;for(t=new LAn(n,e.gc()),r=new ne(n);r.e!=r.i.gc();)i=ue(r),e.Hc(i)&&ve(t,i);return t}function yZ(n,e,t,i){return e==0?i?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),rk(n.o)):tA(n,e,t,i)}function Hx(n){var e,t;if(n.rb)for(e=0,t=n.rb.i;e>22),r+=i>>22,r<0)?!1:(n.l=t&ro,n.m=i&ro,n.h=r&Il,!0)}function qx(n,e,t,i,r,c,s){var f,h;return!(e.Te()&&(h=n.a.Ne(t,i),h<0||!r&&h==0)||e.Ue()&&(f=n.a.Ne(t,c),f>0||!s&&f==0))}function P7e(n,e){cm();var t;if(t=n.j.g-e.j.g,t!=0)return 0;switch(n.j.g){case 2:return fx(e,Csn)-fx(n,Csn);case 4:return fx(n,Esn)-fx(e,Esn)}return 0}function I7e(n){switch(n.g){case 0:return Z_;case 1:return nH;case 2:return eH;case 3:return tH;case 4:return JP;case 5:return iH;default:return null}}function $r(n,e,t){var i,r;return i=(r=new lD,ad(r,e),zc(r,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),r),r),e1(i,0),Zb(i,1),u1(i,!0),c1(i,!0),i}function Jp(n,e){var t,i;if(e>=n.i)throw M(new aL(e,n.i));return++n.j,t=n.g[e],i=n.i-e-1,i>0&&Ic(n.g,e+1,n.g,e,i),$t(n.g,--n.i,null),n.Qi(e,t),n.Ni(),t}function QRn(n,e){var t,i;return n.Db>>16==17?n.Cb.Th(n,21,As,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function O7e(n){var e,t,i,r;for(Dn(),Yt(n.c,n.a),r=new C(n.c);r.at.a.c.length))throw M(new Gn("index must be >= 0 and <= layer node count"));n.c&&du(n.c.a,n),n.c=t,t&&b0(t.a,e,n)}function tKn(n,e){var t,i,r;for(i=new ie(ce(Cl(n).a.Kc(),new En));pe(i);)return t=u(fe(i),18),r=u(e.Kb(t),10),new TE(Se(r.n.b+r.o.b/2));return Zv(),Zv(),KK}function iKn(n,e){this.c=new de,this.a=n,this.b=e,this.d=u(v(n,(W(),E2)),312),x(v(n,(cn(),shn)))===x((sk(),QP))?this.e=new Yyn:this.e=new Qyn}function S5(n,e){var t,i;return i=null,n.pf((He(),$3))&&(t=u(n.of($3),96),t.pf(e)&&(i=t.of(e))),i==null&&n.Tf()&&(i=n.Tf().of(e)),i==null&&(i=rn(e)),i}function Ux(n,e){var t,i;t=n.fd(e);try{return i=t.Pb(),t.Qb(),i}catch(r){throw r=It(r),D(r,112)?M(new Ir("Can't remove element "+e)):M(r)}}function R7e(n,e){var t,i,r;if(i=new JE,r=new nY(i.q.getFullYear()-ha,i.q.getMonth(),i.q.getDate()),t=JPe(n,e,r),t==0||t0?e:0),++t;return new V(i,r)}function TZ(n,e){var t,i;return n.Db>>16==6?n.Cb.Th(n,6,Vt,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),bO)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function AZ(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,1,oE,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Pdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function SZ(n,e){var t,i;return n.Db>>16==9?n.Cb.Th(n,9,Ye,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Odn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function uKn(n,e){var t,i;return n.Db>>16==5?n.Cb.Th(n,9,EO,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),S1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function oKn(n,e){var t,i;return n.Db>>16==7?n.Cb.Th(n,6,Ef,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),I1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function PZ(n,e){var t,i;return n.Db>>16==3?n.Cb.Th(n,0,fE,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),A1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function sKn(){this.a=new dvn,this.g=new oA,this.j=new oA,this.b=new de,this.d=new oA,this.i=new oA,this.k=new de,this.c=new de,this.e=new de,this.f=new de}function H7e(n,e,t){var i,r,c;for(t<0&&(t=0),c=n.i,r=t;rPB)return mm(n,i);if(i==n)return!0}}return!1}function U7e(n){switch(KC(),n.q.g){case 5:U_n(n,(en(),Xn)),U_n(n,ae);break;case 4:GHn(n,(en(),Xn)),GHn(n,ae);break;default:VGn(n,(en(),Xn)),VGn(n,ae)}}function G7e(n){switch(KC(),n.q.g){case 5:fHn(n,(en(),Zn)),fHn(n,Wn);break;case 4:bRn(n,(en(),Zn)),bRn(n,Wn);break;default:WGn(n,(en(),Zn)),WGn(n,Wn)}}function z7e(n){var e,t;e=u(v(n,(Us(),nZn)),17),e?(t=e.a,t==0?U(n,(Q1(),jP),new dx):U(n,(Q1(),jP),new qM(t))):U(n,(Q1(),jP),new qM(1))}function X7e(n,e){var t;switch(t=n.i,e.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-t.o.a;case 3:return n.n.b-t.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function V7e(n,e){switch(n.g){case 0:return e==(Yo(),ya)?HP:qP;case 1:return e==(Yo(),ya)?HP:wj;case 2:return e==(Yo(),ya)?wj:qP;default:return wj}}function Gk(n,e){var t,i,r;for(du(n.a,e),n.e-=e.r+(n.a.c.length==0?0:n.c),r=Frn,i=new C(n.a);i.a>16==3?n.Cb.Th(n,12,Ye,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Sdn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function OZ(n,e){var t,i;return n.Db>>16==11?n.Cb.Th(n,10,Ye,e):(i=br(u($n((t=u(Un(n,16),29),t||(Cc(),Idn)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function fKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,11,As,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),P1)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function hKn(n,e){var t,i;return n.Db>>16==10?n.Cb.Th(n,12,Ss,e):(i=br(u($n((t=u(Un(n,16),29),t||(On(),ig)),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function gs(n){var e;return!(n.Bb&1)&&n.r&&n.r.Vh()&&(e=u(n.r,54),n.r=u(ea(n,e),142),n.r!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.r))),n.r}function Gx(n,e,t){var i;return i=A(T(Pi,1),Tr,28,15,[inn(n,(wf(),bc),e,t),inn(n,Wc,e,t),inn(n,wc,e,t)]),n.f&&(i[0]=y.Math.max(i[0],i[2]),i[2]=i[0]),i}function W7e(n,e){var t,i,r;if(r=v9e(n,e),r.c.length!=0)for(Yt(r,new Pgn),t=r.c.length,i=0;i>19,l=e.h>>19,h!=l?l-h:(r=n.h,f=e.h,r!=f?r-f:(i=n.m,s=e.m,i!=s?i-s:(t=n.l,c=e.l,t-c)))}function aA(){aA=F,Xun=(NA(),f_),zun=new Mn(Otn,Xun),Gun=(cT(),s_),Uun=new Mn(Dtn,Gun),qun=(YT(),o_),Hun=new Mn(Ltn,qun),_un=new Mn(Ntn,(_n(),!0))}function P5(n,e,t){var i,r;i=e*t,D(n.g,154)?(r=xp(n),r.f.d?r.f.a||(n.d.a+=i+_f):(n.d.d-=i+_f,n.d.a+=i+_f)):D(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function lKn(n,e,t){var i,r,c,s,f;for(r=n[t.g],f=new C(e.d);f.a0?n.b:0),++t;e.b=i,e.e=r}function aKn(n){var e,t,i;if(i=n.b,iCn(n.i,i.length)){for(t=i.length*2,n.b=K(UK,Cy,303,t,0,1),n.c=K(UK,Cy,303,t,0,1),n.f=t-1,n.i=0,e=n.a;e;e=e.c)ny(n,e,e);++n.g}}function tke(n,e,t,i){var r,c,s,f;for(r=0;rs&&(f=s/i),r>c&&(h=c/r),ch(n,y.Math.min(f,h)),n}function rke(){KA();var n,e;try{if(e=u(HZ((R1(),Ps),tv),2113),e)return e}catch(t){if(t=It(t),D(t,103))n=t,OW((Ie(),n));else throw M(t)}return new fvn}function cke(){KA();var n,e;try{if(e=u(HZ((R1(),Ps),ks),2040),e)return e}catch(t){if(t=It(t),D(t,103))n=t,OW((Ie(),n));else throw M(t)}return new $vn}function uke(){jNn();var n,e;try{if(e=u(HZ((R1(),Ps),Sd),2122),e)return e}catch(t){if(t=It(t),D(t,103))n=t,OW((Ie(),n));else throw M(t)}return new S6n}function oke(n,e,t){var i,r;return r=n.e,n.e=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),r!=e&&(e?t=Nm(n,MA(n,e),t):t=Nm(n,n.a,t)),t}function dKn(){JE.call(this),this.e=-1,this.a=!1,this.p=Wi,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=Wi}function ske(n,e){var t,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=e.b.d.d,e.a||(r+=e.b.d.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function fke(n,e){var t,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=e.b.b.d,e.a||(r+=e.b.b.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function hke(n,e){var t,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=e.b.g.d,e.a||(r+=e.b.g.a),t=bt(i,r),t==0){if(!n.a&&e.a)return-1;if(!e.a&&n.a)return 1}return t}function LZ(){LZ=F,mZn=Pu(Ke(Ke(Ke(new ii,(Vi(),Kc),(tr(),fsn)),Kc,hsn),zr,lsn),zr,Yon),kZn=Ke(Ke(new ii,Kc,Gon),Kc,Zon),vZn=Pu(new ii,zr,esn)}function lke(n){var e,t,i,r,c;for(e=u(v(n,(W(),R8)),85),c=n.n,i=e.Cc().Kc();i.Ob();)t=u(i.Pb(),314),r=t.i,r.c+=c.a,r.d+=c.b,t.c?Dqn(t):Lqn(t);U(n,R8,null)}function ake(n,e,t){var i,r;switch(r=n.b,i=r.d,e.g){case 1:return-i.d-t;case 2:return r.o.a+i.c+t;case 3:return r.o.b+i.a+t;case 4:return-i.b-t;default:return-1}}function dke(n,e,t){var i,r;for(t.Ug("Interactive node placement",1),n.a=u(v(e,(W(),E2)),312),r=new C(e.b);r.a0&&(s=(c&et)%n.d.length,r=xnn(n,s,c,e),r)?(f=r.nd(t),f):(i=n.ck(c,e,t),n.c.Fc(i),null)}function xZ(n,e){var t,i,r,c;switch(r1(n,e).Kl()){case 3:case 2:{for(t=Jg(e),r=0,c=t.i;r=0;i--)if(An(n[i].d,e)||An(n[i].d,t)){n.length>=i+1&&n.splice(0,i+1);break}return n}function Xk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n/e,Ay0&&(n.b+=2,n.a+=i):(n.b+=1,n.a+=y.Math.min(i,r))}function kKn(n){var e;e=u(v(u(Zo(n.b,0),40),(lc(),Iln)),107),U(n,(pt(),Dv),new V(0,0)),lUn(new tk,n,e.b+e.c-$(R(v(n,rq))),e.d+e.a-$(R(v(n,cq))))}function yKn(n,e){var t,i;if(i=!1,Ai(e)&&(i=!0,Ip(n,new qb(Oe(e)))),i||D(e,242)&&(i=!0,Ip(n,(t=IV(u(e,242)),new AE(t)))),!i)throw M(new vD(Lcn))}function Ike(n,e,t,i){var r,c,s;return r=new ml(n.e,1,10,(s=e.c,D(s,90)?u(s,29):(On(),Is)),(c=t.c,D(c,90)?u(c,29):(On(),Is)),f1(n,e),!1),i?i.nj(r):i=r,i}function RZ(n){var e,t;switch(u(v(Hi(n),(cn(),ehn)),429).g){case 0:return e=n.n,t=n.o,new V(e.a+t.a/2,e.b+t.b/2);case 1:return new rr(n.n);default:return null}}function Vk(){Vk=F,YP=new p6(kh,0),Ksn=new p6("LEFTUP",1),Hsn=new p6("RIGHTUP",2),Rsn=new p6("LEFTDOWN",3),_sn=new p6("RIGHTDOWN",4),rH=new p6("BALANCED",5)}function Oke(n,e,t){var i,r,c;if(i=bt(n.a[e.p],n.a[t.p]),i==0){if(r=u(v(e,(W(),T3)),15),c=u(v(t,T3),15),r.Hc(t))return-1;if(c.Hc(e))return 1}return i}function Dke(n){switch(n.g){case 1:return new U4n;case 2:return new G4n;case 3:return new q4n;case 0:return null;default:throw M(new Gn(GR+(n.f!=null?n.f:""+n.g)))}}function KZ(n,e,t){switch(e){case 1:!n.n&&(n.n=new q(Ar,n,1,7)),me(n.n),!n.n&&(n.n=new q(Ar,n,1,7)),Bt(n.n,u(t,16));return;case 2:X4(n,Oe(t));return}uY(n,e,t)}function _Z(n,e,t){switch(e){case 3:P0(n,$(R(t)));return;case 4:I0(n,$(R(t)));return;case 5:eu(n,$(R(t)));return;case 6:tu(n,$(R(t)));return}KZ(n,e,t)}function dA(n,e,t){var i,r,c;c=(i=new lD,i),r=Bf(c,e,null),r&&r.oj(),zc(c,t),ve((!n.c&&(n.c=new q(yb,n,12,10)),n.c),c),e1(c,0),Zb(c,1),u1(c,!0),c1(c,!0)}function HZ(n,e){var t,i,r;return t=a6(n.i,e),D(t,241)?(r=u(t,241),r.zi()==null,r.wi()):D(t,507)?(i=u(t,2037),r=i.b,r):null}function Lke(n,e,t,i){var r,c;return Se(e),Se(t),c=u($6(n.d,e),17),VNn(!!c,"Row %s not in %s",e,n.e),r=u($6(n.b,t),17),VNn(!!r,"Column %s not in %s",t,n.c),cFn(n,c.a,r.a,i)}function jKn(n,e,t,i,r,c,s){var f,h,l,a,d;if(a=r[c],l=c==s-1,f=l?i:0,d=_Rn(f,a),i!=10&&A(T(n,s-c),e[c],t[c],f,d),!l)for(++c,h=0;h1||f==-1?(c=u(h,15),r.Wb(g8e(n,c))):r.Wb(IF(n,u(h,58)))))}function Kke(n,e,t,i){DEn();var r=RK;function c(){for(var s=0;s0)return!1;return!0}function qke(n){var e,t,i,r,c;for(i=new sd(new Ua(n.b).a);i.b;)t=L0(i),e=u(t.ld(),10),c=u(u(t.md(),42).a,10),r=u(u(t.md(),42).b,8),tt(ff(e.n),tt(Ki(c.n),r))}function Uke(n){switch(u(v(n.b,(cn(),Vfn)),387).g){case 1:qt(_r(rc(new Tn(null,new In(n.d,16)),new ypn),new jpn),new Epn);break;case 2:RAe(n);break;case 0:pEe(n)}}function Gke(n,e,t){var i,r,c;for(i=t,!i&&(i=new op),i.Ug("Layout",n.a.c.length),c=new C(n.a);c.a_R)return t;r>-1e-6&&++t}return t}function UZ(n,e){var t;e!=n.b?(t=null,n.b&&(t=OM(n.b,n,-4,t)),e&&(t=Wp(e,n,-4,t)),t=YFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function MKn(n,e){var t;e!=n.f?(t=null,n.f&&(t=OM(n.f,n,-1,t)),e&&(t=Wp(e,n,-1,t)),t=QFn(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,e,e))}function Wke(n,e,t,i){var r,c,s,f;return fo(n.e)&&(r=e.Lk(),f=e.md(),c=t.md(),s=V1(n,1,r,f,c,r.Jk()?Om(n,r,c,D(r,102)&&(u(r,19).Bb&hr)!=0):-1,!0),i?i.nj(s):i=s),i}function TKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function AKn(n){var e,t,i;if(n==null)return null;if(t=u(n,15),t.dc())return"";for(i=new Hl,e=t.Kc();e.Ob();)Er(i,(at(),Oe(e.Pb()))),i.a+=" ";return bL(i,i.a.length-1)}function Jke(n,e,t){var i,r;return i=n.c[e.c.p][e.p],r=n.c[t.c.p][t.p],i.a!=null&&r.a!=null?tN(i.a,r.a):i.a!=null?-1:r.a!=null?1:0}function Qke(n,e,t){return t.Ug("Tree layout",1),H7(n.b),hf(n.b,(Qp(),LI),LI),hf(n.b,t9,t9),hf(n.b,i9,i9),hf(n.b,r9,r9),n.a=gy(n.b,e),Gke(n,e,t.eh(1)),t.Vg(),e}function Yke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Qa(c),f=(t.b-t.a)*t.c<0?(K1(),xa):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Vkn(n),uge(i.a,r)}function Zke(n,e){var t,i,r,c,s,f;if(e)for(c=e.a.length,t=new Qa(c),f=(t.b-t.a)*t.c<0?(K1(),xa):new q1(t);f.Ob();)s=u(f.Pb(),17),r=L4(e,s.a),i=new Rkn(n),cge(i.a,r)}function nye(n){var e;if(n!=null&&n.length>0&&Xi(n,n.length-1)==33)try{return e=$Hn(qo(n,0,n.length-1)),e.e==null}catch(t){if(t=It(t),!D(t,33))throw M(t)}return!1}function eye(n,e,t){var i,r,c;switch(i=Hi(e),r=KT(i),c=new Pc,ic(c,e),t.g){case 1:gi(c,xk(zp(r)));break;case 2:gi(c,zp(r))}return U(c,(cn(),Kw),R(v(n,Kw))),c}function GZ(n){var e,t;return e=u(fe(new ie(ce(ji(n.a).a.Kc(),new En))),18),t=u(fe(new ie(ce(Qt(n.a).a.Kc(),new En))),18),on(un(v(e,(W(),zf))))||on(un(v(t,zf)))}function ow(){ow=F,gj=new s7("ONE_SIDE",0),zP=new s7("TWO_SIDES_CORNER",1),XP=new s7("TWO_SIDES_OPPOSING",2),GP=new s7("THREE_SIDES",3),UP=new s7("FOUR_SIDES",4)}function SKn(n,e){var t,i,r,c;for(c=new Z,r=0,i=e.Kc();i.Ob();){for(t=Y(u(i.Pb(),17).a+r);t.a=n.f)break;Kn(c.c,t)}return c}function tye(n,e){var t,i,r,c,s;for(c=new C(e.a);c.a0&&YRn(this,this.c-1,(en(),Zn)),this.c0&&n[0].length>0&&(this.c=on(un(v(Hi(n[0][0]),(W(),ifn))))),this.a=K(jie,J,2117,n.length,0,2),this.b=K(Eie,J,2118,n.length,0,2),this.d=new zFn}function oye(n){return n.c.length==0?!1:(Ln(0,n.c.length),u(n.c[0],18)).c.i.k==(Vn(),Mi)?!0:Og(_r(new Tn(null,new In(n,16)),new t3n),new i3n)}function OKn(n,e){var t,i,r,c,s,f,h;for(f=aw(e),c=e.f,h=e.g,s=y.Math.sqrt(c*c+h*h),r=0,i=new C(f);i.a=0?(t=Xk(n,QA),i=Bk(n,QA)):(e=U1(n,1),t=Xk(e,5e8),i=Bk(e,5e8),i=nr(Bs(i,1),vi(n,1))),lf(Bs(i,32),vi(t,mr))}function NKn(n,e,t){var i,r;switch(i=(oe(e.b!=0),u(Xo(e,e.a.a),8)),t.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return r=ge(e,0),_7(r,i),e}function $Kn(n,e,t,i){var r,c,s,f,h;switch(h=n.b,c=e.d,s=c.j,f=sZ(s,h.d[s.g],t),r=tt(Ki(c.n),c.a),c.j.g){case 1:case 3:f.a+=r.a;break;case 2:case 4:f.b+=r.b}xt(i,f,i.c.b,i.c)}function vye(n,e,t){var i,r,c,s;for(s=qr(n.e,e,0),c=new QG,c.b=t,i=new xi(n.e,s);i.b1;e>>=1)e&1&&(i=Ig(i,t)),t.d==1?t=Ig(t,t):t=new QBn(pUn(t.a,t.d,K(ye,_e,28,t.d<<1,15,1)));return i=Ig(i,t),i}function nnn(){nnn=F;var n,e,t,i;for(Lun=K(Pi,Tr,28,25,15,1),Nun=K(Pi,Tr,28,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Nun[e]=i,i*=.5;for(t=1,n=24;n>=0;n--)Lun[n]=t,t*=.5}function Mye(n){var e,t;if(on(un(z(n,(cn(),Rw))))){for(t=new ie(ce(Al(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),74),_0(e)&&on(un(z(e,Nd))))return!0}return!1}function xKn(n,e){var t,i,r;fi(n.f,e)&&(e.b=n,i=e.c,qr(n.j,i,0)!=-1||nn(n.j,i),r=e.d,qr(n.j,r,0)!=-1||nn(n.j,r),t=e.a.b,t.c.length!=0&&(!n.i&&(n.i=new iRn(n)),Ive(n.i,t)))}function Tye(n){var e,t,i,r,c;return t=n.c.d,i=t.j,r=n.d.d,c=r.j,i==c?t.p=0&&An(n.substr(e,3),"GMT")||e>=0&&An(n.substr(e,3),"UTC"))&&(t[0]=e+3),Len(n,t,i)}function Sye(n,e){var t,i,r,c,s;for(c=n.g.a,s=n.g.b,i=new C(n.d);i.at;c--)n[c]|=e[c-t-1]>>>s,n[c-1]=e[c-t-1]<0&&Ic(n.g,e,n.g,e+i,f),s=t.Kc(),n.i+=i,r=0;r>4&15,c=n[i]&15,s[r++]=Ddn[t],s[r++]=Ddn[c];return ws(s,0,s.length)}function wu(n){var e,t;return n>=hr?(e=Sy+(n-hr>>10&1023)&ui,t=56320+(n-hr&1023)&ui,String.fromCharCode(e)+(""+String.fromCharCode(t))):String.fromCharCode(n&ui)}function Rye(n,e){Bb();var t,i,r,c;return r=u(u(ot(n.r,e),21),87),r.gc()>=2?(i=u(r.Kc().Pb(),117),t=n.u.Hc((zu(),A9)),c=n.u.Hc(B3),!i.a&&!t&&(r.gc()==2||c)):!1}function RKn(n,e,t,i,r){var c,s,f;for(c=Cqn(n,e,t,i,r),f=!1;!c;)EA(n,r,!0),f=!0,c=Cqn(n,e,t,i,r);f&&EA(n,r,!1),s=B$(r),s.c.length!=0&&(n.d&&n.d.Gg(s),RKn(n,r,t,i,s))}function pA(){pA=F,dU=new y6(kh,0),tdn=new y6("DIRECTED",1),rdn=new y6("UNDIRECTED",2),ndn=new y6("ASSOCIATION",3),idn=new y6("GENERALIZATION",4),edn=new y6("DEPENDENCY",5)}function Kye(n,e){var t;if(!Sf(n))throw M(new Or(eWn));switch(t=Sf(n),e.g){case 1:return-(n.j+n.f);case 2:return n.i-t.g;case 3:return n.j-t.f;case 4:return-(n.i+n.g)}return 0}function _ye(n,e,t){var i,r,c;return i=e.Lk(),c=e.md(),r=i.Jk()?V1(n,4,i,c,null,Om(n,i,c,D(i,102)&&(u(i,19).Bb&hr)!=0),!0):V1(n,i.tk()?2:1,i,c,i.ik(),-1,!0),t?t.nj(r):t=r,t}function ym(n,e){var t,i;for(Jn(e),i=n.b.c.length,nn(n.b,e);i>0;){if(t=i,i=(i-1)/2|0,n.a.Ne(sn(n.b,i),e)<=0)return Go(n.b,t,e),!0;Go(n.b,t,sn(n.b,i))}return Go(n.b,i,e),!0}function inn(n,e,t,i){var r,c;if(r=0,t)r=$T(n.a[t.g][e.g],i);else for(c=0;c=f)}function KKn(n){switch(n.g){case 0:return new cmn;case 1:return new umn;default:throw M(new Gn("No implementation is available for the width approximator "+(n.f!=null?n.f:""+n.g)))}}function rnn(n,e,t,i){var r;if(r=!1,Ai(i)&&(r=!0,j4(e,t,Oe(i))),r||Nb(i)&&(r=!0,rnn(n,e,t,i)),r||D(i,242)&&(r=!0,nd(e,t,u(i,242))),!r)throw M(new vD(Lcn))}function qye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=gf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),vs),r!=null)){for(i=1;i<(Du(),t0n).length;++i)if(An(t0n[i],r))return i}return 0}function Uye(n,e){var t,i,r;if(t=e.qi(n.a),t&&(r=gf((!t.b&&(t.b=new lo((On(),ar),pc,t)),t.b),vs),r!=null)){for(i=1;i<(Du(),i0n).length;++i)if(An(i0n[i],r))return i}return 0}function _Kn(n,e){var t,i,r,c;if(Jn(e),c=n.a.gc(),c0?1:0;c.a[r]!=t;)c=c.a[r],r=n.a.Ne(t.d,c.d)>0?1:0;c.a[r]=i,i.b=t.b,i.a[0]=t.a[0],i.a[1]=t.a[1],t.a[0]=null,t.a[1]=null}function Xye(n){var e,t,i,r;for(e=new Z,t=K(so,Xh,28,n.a.c.length,16,1),TW(t,t.length),r=new C(n.a);r.a0&&dUn((Ln(0,t.c.length),u(t.c[0],30)),n),t.c.length>1&&dUn(u(sn(t,t.c.length-1),30),n),e.Vg()}function Wye(n){zu();var e,t;return e=yt(Fl,A(T(oO,1),G,279,0,[Ia])),!(kk(LM(e,n))>1||(t=yt(A9,A(T(oO,1),G,279,0,[T9,B3])),kk(LM(t,n))>1))}function unn(n,e){var t;t=Nc((R1(),Ps),n),D(t,507)?Dr(Ps,n,new LMn(this,e)):Dr(Ps,n,this),tF(this,e),e==(o4(),Udn)?(this.wb=u(this,2038),u(e,2040)):this.wb=(G1(),Hn)}function Jye(n){var e,t,i;if(n==null)return null;for(e=null,t=0;t=d1?"error":i>=900?"warn":i>=800?"info":"log"),nIn(t,n.a),n.b&&sen(e,t,n.b,"Exception: ",!0))}function v(n,e){var t,i;return i=(!n.q&&(n.q=new de),ee(n.q,e)),i??(t=e.Sg(),D(t,4)&&(t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Ve(n.q,e,t))),t)}function Vi(){Vi=F,Vs=new o7("P1_CYCLE_BREAKING",0),Jh=new o7("P2_LAYERING",1),Oc=new o7("P3_NODE_ORDERING",2),Kc=new o7("P4_NODE_PLACEMENT",3),zr=new o7("P5_EDGE_ROUTING",4)}function Qye(n,e){i5();var t;if(n.c==e.c){if(n.b==e.b||rve(n.b,e.b)){if(t=Ple(n.b)?1:-1,n.a&&!e.a)return t;if(!n.a&&e.a)return-t}return jc(n.b.g,e.b.g)}else return bt(n.c,e.c)}function zKn(n,e){var t,i,r;if(snn(n,e))return!0;for(i=new C(e);i.a=r||e<0)throw M(new Ir(vK+e+Td+r));if(t>=r||t<0)throw M(new Ir(kK+t+Td+r));return e!=t?i=(c=n.Cj(t),n.qj(e,c),c):i=n.xj(t),i}function WKn(n){var e,t,i;if(i=n,n)for(e=0,t=n.Eh();t;t=t.Eh()){if(++e>PB)return WKn(t);if(i=t,t==n)throw M(new Or("There is a cycle in the containment hierarchy of "+n))}return i}function ca(n){var e,t,i;for(i=new fd(ur,"[","]"),t=n.Kc();t.Ob();)e=t.Pb(),pl(i,x(e)===x(n)?"(this Collection)":e==null?gu:Jr(e));return i.a?i.e.length==0?i.a.a:i.a.a+(""+i.e):i.c}function snn(n,e){var t,i;if(i=!1,e.gc()<2)return!1;for(t=0;t1&&(n.j.b+=n.e)):(n.j.a+=t.a,n.j.b=y.Math.max(n.j.b,t.b),n.d.c.length>1&&(n.j.a+=n.e))}function ua(){ua=F,une=A(T(lr,1),Mc,64,0,[(en(),Xn),Zn,ae]),cne=A(T(lr,1),Mc,64,0,[Zn,ae,Wn]),one=A(T(lr,1),Mc,64,0,[ae,Wn,Xn]),sne=A(T(lr,1),Mc,64,0,[Wn,Xn,Zn])}function Zye(n,e,t,i){var r,c,s,f,h,l,a;if(s=n.c.d,f=n.d.d,s.j!=f.j)for(a=n.b,r=s.j,h=null;r!=f.j;)h=e==0?RT(r):SY(r),c=sZ(r,a.d[r.g],t),l=sZ(h,a.d[h.g],t),Fe(i,tt(c,l)),r=h}function nje(n,e,t,i){var r,c,s,f,h;return s=ZRn(n.a,e,t),f=u(s.a,17).a,c=u(s.b,17).a,i&&(h=u(v(e,(W(),Xu)),10),r=u(v(t,Xu),10),h&&r&&(KDn(n.b,h,r),f+=n.b.i,c+=n.b.e)),f>c}function QKn(n){var e,t,i,r,c,s,f,h,l;for(this.a=kRn(n),this.b=new Z,t=n,i=0,r=t.length;iOL(n.d).c?(n.i+=n.g.c,px(n.d)):OL(n.d).c>OL(n.g).c?(n.e+=n.d.c,px(n.g)):(n.i+=sPn(n.g),n.e+=sPn(n.d),px(n.g),px(n.d))}function rje(n,e,t){var i,r,c,s;for(c=e.q,s=e.r,new ed((af(),Ea),e,c,1),new ed(Ea,c,s,1),r=new C(t);r.af&&(h=f/i),r>c&&(l=c/r),s=y.Math.min(h,l),n.a+=s*(e.a-n.a),n.b+=s*(e.b-n.b)}function sje(n,e,t,i,r){var c,s;for(s=!1,c=u(sn(t.b,0),27);FPe(n,e,c,i,r)&&(s=!0,Bke(t,c),t.b.c.length!=0);)c=u(sn(t.b,0),27);return t.b.c.length==0&&Gk(t.j,t),s&&fA(e.q),s}function fje(n,e){Vg();var t,i,r,c;if(e.b<2)return!1;for(c=ge(e,0),t=u(be(c),8),i=t;c.b!=c.d.c;){if(r=u(be(c),8),mF(n,i,r))return!0;i=r}return!!mF(n,i,t)}function hnn(n,e,t,i){var r,c;return t==0?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),UC(n.o,e,i)):(c=u($n((r=u(Un(n,16),29),r||n.ii()),t),69),c.wk().Ak(n,iu(n),t-se(n.ii()),e,i))}function tF(n,e){var t;e!=n.sb?(t=null,n.sb&&(t=u(n.sb,54).Th(n,1,I9,t)),e&&(t=u(e,54).Rh(n,1,I9,t)),t=jY(n,e,t),t&&t.oj()):n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,e,e))}function hje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Gkn(n),_4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new zkn(n),q4(i.a,(Jn(c),c));else throw M(new eh("All edge sections need an end point."))}function lje(n,e){var t,i,r,c;if(e)r=yl(e,"x"),t=new Hkn(n),H4(t.a,(Jn(r),r)),c=yl(e,"y"),i=new qkn(n),U4(i.a,(Jn(c),c));else throw M(new eh("All edge sections need a start point."))}function aje(n,e){var t,i,r,c,s,f,h;for(i=AFn(n),c=0,f=i.length;c>22-e,r=n.h<>22-e):e<44?(t=0,i=n.l<>44-e):(t=0,i=0,r=n.l<n)throw M(new Gn("k must be smaller than n"));return e==0||e==n?1:n==0?0:FZ(n)/(FZ(e)*FZ(n-e))}function lnn(n,e){var t,i,r,c;for(t=new AX(n);t.g==null&&!t.c?cJ(t):t.g==null||t.i!=0&&u(t.g[t.i-1],51).Ob();)if(c=u(CA(t),58),D(c,167))for(i=u(c,167),r=0;r>4],e[t*2+1]=SO[c&15];return ws(e,0,e.length)}function Sje(n){yM();var e,t,i;switch(i=n.c.length,i){case 0:return rQn;case 1:return e=u(B_n(new C(n)),44),ybe(e.ld(),e.md());default:return t=u(Ff(n,K(Pd,WA,44,n.c.length,0,1)),173),new hz(t)}}function Pje(n){var e,t,i,r,c,s;for(e=new Cg,t=new Cg,W1(e,n),W1(t,n);t.b!=t.c;)for(r=u(Sp(t),36),s=new C(r.a);s.a0&&hy(n,t,e),r):pCe(n,e,t)}function oa(){oa=F,fce=(He(),N3),hce=qd,cce=Hd,uce=_2,oce=Ta,rce=K2,Jln=Wj,sce=Ww,kq=(Men(),Xre),yq=Vre,Yln=Yre,jq=ece,Zln=Zre,n1n=nce,Qln=Wre,_I=Jre,HI=Qre,Fj=tce,e1n=ice,Wln=zre}function c_n(n,e){var t,i,r,c,s;if(n.e<=e||Z2e(n,n.g,e))return n.g;for(c=n.r,i=n.g,s=n.r,r=(c-i)/2+i;i+11&&(n.e.b+=n.a)):(n.e.a+=t.a,n.e.b=y.Math.max(n.e.b,t.b),n.d.c.length>1&&(n.e.a+=n.a))}function Nje(n){var e,t,i,r;switch(r=n.i,e=r.b,i=r.j,t=r.g,r.a.g){case 0:t.a=(n.g.b.o.a-i.a)/2;break;case 1:t.a=e.d.n.a+e.d.a.a;break;case 2:t.a=e.d.n.a+e.d.a.a-i.a;break;case 3:t.b=e.d.n.b+e.d.a.b}}function $je(n,e,t){var i,r,c;for(r=new ie(ce(Cl(t).a.Kc(),new En));pe(r);)i=u(fe(r),18),!fr(i)&&!(!fr(i)&&i.c.i.c==i.d.i.c)&&(c=WHn(n,i,t,new Zyn),c.c.length>1&&Kn(e.c,c))}function o_n(n,e,t,i,r){if(ii&&(n.a=i),n.br&&(n.b=r),n}function xje(n){if(D(n,143))return dTe(u(n,143));if(D(n,233))return i8e(u(n,233));if(D(n,23))return bje(u(n,23));throw M(new Gn(Ncn+ca(new Ku(A(T(ki,1),Bn,1,5,[n])))))}function Fje(n,e,t,i,r){var c,s,f;for(c=!0,s=0;s>>r|t[s+i+1]<>>r,++s}return c}function wnn(n,e,t,i){var r,c,s;if(e.k==(Vn(),Mi)){for(c=new ie(ce(ji(e).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),s=r.c.i.k,s==Mi&&n.c.a[r.c.i.c.p]==i&&n.c.a[e.c.p]==t)return!0}return!1}function Bje(n,e){var t,i,r,c;return e&=63,t=n.h&Il,e<22?(c=t>>>e,r=n.m>>e|t<<22-e,i=n.l>>e|n.m<<22-e):e<44?(c=0,r=t>>>e-22,i=n.m>>e-22|n.h<<44-e):(c=0,r=0,i=t>>>e-44),Yc(i&ro,r&ro,c&Il)}function s_n(n,e,t,i){var r;this.b=i,this.e=n==(O0(),Z8),r=e[t],this.d=Wa(so,[J,Xh],[183,28],16,[r.length,r.length],2),this.a=Wa(ye,[J,_e],[53,28],15,[r.length,r.length],2),this.c=new JZ(e,t)}function Rje(n){var e,t,i;for(n.k=new sJ((en(),A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,n.j.c.length),i=new C(n.j);i.a=t)return Em(n,e,i.p),!0;return!1}function Ug(n,e,t,i){var r,c,s,f,h,l;for(s=t.length,c=0,r=-1,l=e$n((zn(e,n.length+1),n.substr(e)),(xL(),Oun)),f=0;fc&&awe(l,e$n(t[f],Oun))&&(r=f,c=h);return r>=0&&(i[0]=e+c),r}function h_n(n){var e;return n.Db&64?iF(n):(e=new mo(Ecn),!n.a||Re(Re((e.a+=' "',e),n.a),'"'),Re(t0(Re(t0(Re(t0(Re(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function l_n(n,e,t){var i,r,c,s,f;for(f=ru(n.e.Dh(),e),r=u(n.g,124),i=0,s=0;st?Mnn(n,t,"start index"):e<0||e>t?Mnn(e,t,"end index"):R5("end index (%s) must not be less than start index (%s)",A(T(ki,1),Bn,1,5,[Y(e),Y(n)]))}function d_n(n,e){var t,i,r,c;for(i=0,r=n.length;i0&&b_n(n,c,t));e.p=0}function ln(n){var e;this.c=new Ct,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=(e=u(of(Zh),9),new _o(e,u(xs(e,e.length),9),0)),this.g=n.f}function Gje(n){var e,t,i,r;for(e=z1(Re(new mo("Predicates."),"and"),40),t=!0,r=new zv(n);r.b0?f[s-1]:K(Qh,b1,10,0,0,1),r=f[s],l=s=0?n.ki(r):Pnn(n,i);else throw M(new Gn(ba+i.xe()+b8));else throw M(new Gn(aWn+e+dWn));else Wo(n,t,i)}function gnn(n){var e,t;if(t=null,e=!1,D(n,211)&&(e=!0,t=u(n,211).a),e||D(n,263)&&(e=!0,t=""+u(n,263).a),e||D(n,493)&&(e=!0,t=""+u(n,493).a),!e)throw M(new vD(Lcn));return t}function pnn(n,e,t){var i,r,c,s,f,h;for(h=ru(n.e.Dh(),e),i=0,f=n.i,r=u(n.g,124),s=0;s=n.d.b.c.length&&(e=new Lc(n.d),e.p=i.p-1,nn(n.d.b,e),t=new Lc(n.d),t.p=i.p,nn(n.d.b,t)),$i(i,u(sn(n.d.b,i.p),30))}function knn(n,e,t){var i,r,c;if(!n.b[e.g]){for(n.b[e.g]=!0,i=t,!i&&(i=new tk),Fe(i.b,e),c=n.a[e.g].Kc();c.Ob();)r=u(c.Pb(),65),r.b!=e&&knn(n,r.b,i),r.c!=e&&knn(n,r.c,i),Fe(i.a,r);return i}return null}function Wje(n){switch(n.g){case 0:case 1:case 2:return en(),Xn;case 3:case 4:case 5:return en(),ae;case 6:case 7:case 8:return en(),Wn;case 9:case 10:case 11:return en(),Zn;default:return en(),sc}}function Jje(n,e){var t;return n.c.length==0?!1:(t=DBn((Ln(0,n.c.length),u(n.c[0],18)).c.i),ko(),t==(cw(),P2)||t==S2?!0:Og(_r(new Tn(null,new In(n,16)),new r3n),new Y7n(e)))}function oF(n,e){if(D(e,207))return Ule(n,u(e,27));if(D(e,193))return Gle(n,u(e,123));if(D(e,452))return qle(n,u(e,166));throw M(new Gn(Ncn+ca(new Ku(A(T(ki,1),Bn,1,5,[e])))))}function k_n(n,e,t){var i,r;if(this.f=n,i=u(ee(n.b,e),260),r=i?i.a:0,BJ(t,r),t>=(r/2|0))for(this.e=i?i.c:null,this.d=r;t++0;)sQ(this);this.b=e,this.a=null}function Qje(n,e){var t,i;e.a?OTe(n,e):(t=u(ID(n.b,e.b),60),t&&t==n.a[e.b.f]&&t.a&&t.a!=e.b.a&&t.c.Fc(e.b),i=u(PD(n.b,e.b),60),i&&n.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),EL(n.b,e.b))}function y_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.b=0,t.n.c=0;return}t.n.b=n.C.b,t.n.c=n.C.c,n.A.Hc((go(),Gd))&&Xqn(n,e),i=M9e(n,e),kF(n,e)==(Bg(),Sa)&&(i+=2*n.w),t.a.a=i}function j_n(n,e){var t,i;if(t=u(Cr(n.b,e),127),u(u(ot(n.r,e),21),87).dc()){t.n.d=0,t.n.a=0;return}t.n.d=n.C.d,t.n.a=n.C.a,n.A.Hc((go(),Gd))&&Vqn(n,e),i=C9e(n,e),kF(n,e)==(Bg(),Sa)&&(i+=2*n.w),t.a.b=i}function Yje(n,e){var t,i,r,c;for(c=new Z,i=new C(e);i.ai&&(zn(e-1,n.length),n.charCodeAt(e-1)<=32);)--e;return i>0||et.a&&(i.Hc((wd(),w9))?r=(e.a-t.a)/2:i.Hc(g9)&&(r=e.a-t.a)),e.b>t.b&&(i.Hc((wd(),m9))?c=(e.b-t.b)/2:i.Hc(p9)&&(c=e.b-t.b)),cnn(n,r,c)}function P_n(n,e,t,i,r,c,s,f,h,l,a,d,g){D(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,t),n.f=s,hm(n,f),am(n,h),fm(n,l),lm(n,a),u1(n,d),dm(n,g),c1(n,!0),e1(n,r),n.Zk(c),ad(n,e),i!=null&&(n.i=null,kT(n,i))}function Mnn(n,e,t){if(n<0)return R5(Tzn,A(T(ki,1),Bn,1,5,[t,Y(n)]));if(e<0)throw M(new Gn(Azn+e));return R5("%s (%s) must not be greater than size (%s)",A(T(ki,1),Bn,1,5,[t,Y(n),Y(e)]))}function Tnn(n,e,t,i,r,c){var s,f,h,l;if(s=i-t,s<7){z5e(e,t,i,c);return}if(h=t+r,f=i+r,l=h+(f-h>>1),Tnn(e,n,h,l,-r,c),Tnn(e,n,l,f,-r,c),c.Ne(n[l-1],n[l])<=0){for(;t=0?n.bi(c,t):ten(n,r,t);else throw M(new Gn(ba+r.xe()+b8));else throw M(new Gn(aWn+e+dWn));else Jo(n,i,r,t)}function I_n(n){var e,t;if(n.f){for(;n.n>0;){if(e=u(n.k.Xb(n.n-1),76),t=e.Lk(),D(t,102)&&u(t,19).Bb&kc&&(!n.e||t.pk()!=Hv||t.Lj()!=0)&&e.md()!=null)return!0;--n.n}return!1}else return n.n>0}function O_n(n){var e,t,i,r;if(t=u(n,54)._h(),t)try{if(i=null,e=Mm((R1(),Ps),gUn(r8e(t))),e&&(r=e.ai(),r&&(i=r.Fl(che(t.e)))),i&&i!=n)return O_n(i)}catch(c){if(c=It(c),!D(c,63))throw M(c)}return n}function bEe(n,e,t){var i,r,c;t.Ug("Remove overlaps",1),t.dh(e,xrn),i=u(z(e,(Tg(),D2)),27),n.f=i,n.a=Ax(u(z(e,(oa(),Fj)),300)),r=R(z(e,(He(),qd))),mG(n,(Jn(r),r)),c=aw(i),BGn(n,e,c,t),t.dh(e,DS)}function wEe(n){var e,t,i;if(on(un(z(n,(He(),Xj))))){for(i=new Z,t=new ie(ce(Al(n).a.Kc(),new En));pe(t);)e=u(fe(t),74),_0(e)&&on(un(z(e,eU)))&&Kn(i.c,e);return i}else return Dn(),Dn(),sr}function D_n(n){if(!n)return Djn(),dQn;var e=n.valueOf?n.valueOf():n;if(e!==n){var t=WK[typeof e];return t?t(e):wY(typeof e)}else return n instanceof Array||n instanceof y.Array?new aG(n):new U9(n)}function L_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=ty(i),r.a=ey(i),r.b=y.Math.max(r.b,c.a),r.b>c.a&&!e&&(r.b=c.a),r.c=-(r.b-c.a)/2,t.g){case 1:r.d=-r.a;break;case 3:r.d=c.b}LF(i),NF(i)}function N_n(n,e,t){var i,r,c;switch(c=n.o,i=u(Cr(n.p,t),252),r=i.i,r.b=ty(i),r.a=ey(i),r.a=y.Math.max(r.a,c.b),r.a>c.b&&!e&&(r.a=c.b),r.d=-(r.a-c.b)/2,t.g){case 4:r.c=-r.b;break;case 2:r.c=c.a}LF(i),NF(i)}function gEe(n,e){var t,i,r,c,s;if(!e.dc()){if(r=u(e.Xb(0),131),e.gc()==1){lqn(n,r,r,1,0,e);return}for(t=1;t0)try{r=Ao(e,Wi,et)}catch(c){throw c=It(c),D(c,130)?(i=c,M(new eT(i))):M(c)}return t=(!n.a&&(n.a=new iD(n)),n.a),r=0?u(L(t,r),58):null}function kEe(n,e){if(n<0)return R5(Tzn,A(T(ki,1),Bn,1,5,["index",Y(n)]));if(e<0)throw M(new Gn(Azn+e));return R5("%s (%s) must be less than size (%s)",A(T(ki,1),Bn,1,5,["index",Y(n),Y(e)]))}function yEe(n){var e,t,i,r,c;if(n==null)return gu;for(c=new fd(ur,"[","]"),t=n,i=0,r=t.length;i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Zl(e);else throw M(new Gn(ba+e.xe()+b8))}function Inn(n){var e,t;return n>-0x800000000000&&n<0x800000000000?n==0?0:(e=n<0,e&&(n=-n),t=wi(y.Math.floor(y.Math.log(n)/.6931471805599453)),(!e||n!=y.Math.pow(2,t))&&++t,t):Qxn(vc(n))}function xEe(n){var e,t,i,r,c,s,f;for(c=new rh,t=new C(n);t.a2&&f.e.b+f.j.b<=2&&(r=f,i=s),c.a.zc(r,c),r.q=i);return c}function FEe(n,e,t){t.Ug("Eades radial",1),t.dh(e,DS),n.d=u(z(e,(Tg(),D2)),27),n.c=$(R(z(e,(oa(),HI)))),n.e=Ax(u(z(e,Fj),300)),n.a=a8e(u(z(e,e1n),434)),n.b=Dke(u(z(e,Qln),354)),bke(n),t.dh(e,DS)}function BEe(n,e){if(e.Ug("Target Width Setter",1),Lf(n,(Rf(),Nq)))ht(n,(_h(),Xw),R(z(n,Nq)));else throw M(new _l("A target width has to be set if the TargetWidthWidthApproximator should be used."));e.Vg()}function R_n(n,e){var t,i,r;return i=new Tl(n),Ur(i,e),U(i,(W(),cI),e),U(i,(cn(),Kt),(Oi(),qc)),U(i,Th,(Rh(),nO)),Ha(i,(Vn(),Zt)),t=new Pc,ic(t,i),gi(t,(en(),Wn)),r=new Pc,ic(r,i),gi(r,Zn),i}function K_n(n){switch(n.g){case 0:return new gD((O0(),Oj));case 1:return new i8n;case 2:return new r8n;default:throw M(new Gn("No implementation is available for the crossing minimizer "+(n.f!=null?n.f:""+n.g)))}}function __n(n,e){var t,i,r,c,s;for(n.c[e.p]=!0,nn(n.a,e),s=new C(e.j);s.a=c)s.$b();else for(r=s.Kc(),i=0;i0?wz():s<0&&G_n(n,e,-s),!0):!1}function ey(n){var e,t,i,r,c,s,f;if(f=0,n.b==0){for(s=ARn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}else f=Ujn(I$(Ub(ut(CW(n.a),new fbn),new hbn)));return f>0?f+n.n.d+n.n.a:0}function ty(n){var e,t,i,r,c,s,f;if(f=0,n.b==0)f=Ujn(I$(Ub(ut(CW(n.a),new obn),new sbn)));else{for(s=SRn(n,!0),e=0,i=s,r=0,c=i.length;r0&&(f+=t,++e);e>1&&(f+=n.c*(e-1))}return f>0?f+n.n.b+n.n.c:0}function GEe(n){var e,t;if(n.c.length!=2)throw M(new Or("Order only allowed for two paths."));e=(Ln(0,n.c.length),u(n.c[0],18)),t=(Ln(1,n.c.length),u(n.c[1],18)),e.d.i!=t.c.i&&(n.c.length=0,Kn(n.c,t),Kn(n.c,e))}function z_n(n,e,t){var i;for(kg(t,e.g,e.f),Ro(t,e.i,e.j),i=0;i<(!e.a&&(e.a=new q(Ye,e,10,11)),e.a).i;i++)z_n(n,u(L((!e.a&&(e.a=new q(Ye,e,10,11)),e.a),i),27),u(L((!t.a&&(t.a=new q(Ye,t,10,11)),t.a),i),27))}function zEe(n,e){var t,i,r,c;for(c=u(Cr(n.b,e),127),t=c.a,r=u(u(ot(n.r,e),21),87).Kc();r.Ob();)i=u(r.Pb(),117),i.c&&(t.a=y.Math.max(t.a,eW(i.c)));if(t.a>0)switch(e.g){case 2:c.n.c=n.s;break;case 4:c.n.b=n.s}}function XEe(n,e){var t,i,r;return t=u(v(e,(Us(),k3)),17).a-u(v(n,k3),17).a,t==0?(i=mi(Ki(u(v(n,(Q1(),lj)),8)),u(v(n,D8),8)),r=mi(Ki(u(v(e,lj),8)),u(v(e,D8),8)),bt(i.a*i.b,r.a*r.b)):t}function VEe(n,e){var t,i,r;return t=u(v(e,(lc(),FI)),17).a-u(v(n,FI),17).a,t==0?(i=mi(Ki(u(v(n,(pt(),Nj)),8)),u(v(n,Dv),8)),r=mi(Ki(u(v(e,Nj),8)),u(v(e,Dv),8)),bt(i.a*i.b,r.a*r.b)):t}function X_n(n){var e,t;return t=new x1,t.a+="e_",e=_ve(n),e!=null&&(t.a+=""+e),n.c&&n.d&&(Re((t.a+=" ",t),lA(n.c)),Re(Dc((t.a+="[",t),n.c.i),"]"),Re((t.a+=iR,t),lA(n.d)),Re(Dc((t.a+="[",t),n.d.i),"]")),t.a}function V_n(n){switch(n.g){case 0:return new d8n;case 1:return new b8n;case 2:return new l8n;case 3:return new h8n;default:throw M(new Gn("No implementation is available for the layout phase "+(n.f!=null?n.f:""+n.g)))}}function Lnn(n,e,t,i,r){var c;switch(c=0,r.g){case 1:c=y.Math.max(0,e.b+n.b-(t.b+i));break;case 3:c=y.Math.max(0,-n.b-i);break;case 2:c=y.Math.max(0,-n.a-i);break;case 4:c=y.Math.max(0,e.a+n.a-(t.a+i))}return c}function WEe(n,e,t){var i,r,c,s,f;if(t)for(r=t.a.length,i=new Qa(r),f=(i.b-i.a)*i.c<0?(K1(),xa):new q1(i);f.Ob();)s=u(f.Pb(),17),c=L4(t,s.a),Acn in c.a||pK in c.a?fSe(n,c,e):SLe(n,c,e),A1e(u(ee(n.b,wm(c)),74))}function Nnn(n){var e,t;switch(n.b){case-1:return!0;case 0:return t=n.t,t>1||t==-1?(n.b=-1,!0):(e=gs(n),e&&(dr(),e.lk()==bJn)?(n.b=-1,!0):(n.b=1,!1));default:case 1:return!1}}function $nn(n,e){var t,i,r,c;if(Ze(n),n.c!=0||n.a!=123)throw M(new Le($e((Ie(),xWn))));if(c=e==112,i=n.d,t=w4(n.i,125,i),t<0)throw M(new Le($e((Ie(),FWn))));return r=qo(n.i,i,t),n.d=t+1,mNn(r,c,(n.e&512)==512)}function W_n(n){var e,t,i,r,c,s,f;if(i=n.a.c.length,i>0)for(s=n.c.d,f=n.d.d,r=ch(mi(new V(f.a,f.b),s),1/(i+1)),c=new V(s.a,s.b),t=new C(n.a);t.a=0&&i=0?n.Lh(t,!0,!0):H0(n,r,!0),160)),u(i,220).Wl(e);throw M(new Gn(ba+e.xe()+sK))}function ZEe(){Fz();var n;return Yoe?u(Mm((R1(),Ps),ks),2038):(Ge(Pd,new k6n),VOe(),n=u(D(Nc((R1(),Ps),ks),560)?Nc(Ps,ks):new aIn,560),Yoe=!0,WLe(n),tNe(n),Ve((xz(),qdn),n,new xvn),Dr(Ps,ks,n),n)}function nCe(n,e){var t,i,r,c;n.j=-1,fo(n.e)?(t=n.i,c=n.i!=0,ek(n,e),i=new ml(n.e,3,n.c,null,e,t,c),r=e.zl(n.e,n.c,null),r=PKn(n,e,r),r?(r.nj(i),r.oj()):it(n.e,i)):(ek(n,e),r=e.zl(n.e,n.c,null),r&&r.oj())}function yA(n,e){var t,i,r;if(r=0,i=e[0],i>=n.length)return-1;for(t=(zn(i,n.length),n.charCodeAt(i));t>=48&&t<=57&&(r=r*10+(t-48),++i,!(i>=n.length));)t=(zn(i,n.length),n.charCodeAt(i));return i>e[0]?e[0]=i:r=-1,r}function eCe(n){var e,t,i,r,c;return r=u(n.a,17).a,c=u(n.b,17).a,t=r,i=c,e=y.Math.max(y.Math.abs(r),y.Math.abs(c)),r<=0&&r==c?(t=0,i=c-1):r==-e&&c!=e?(t=c,i=r,c>=0&&++t):(t=-c,i=r),new bi(Y(t),Y(i))}function tCe(n,e,t,i){var r,c,s,f,h,l;for(r=0;r=0&&l>=0&&h=n.i)throw M(new Ir(vK+e+Td+n.i));if(t>=n.i)throw M(new Ir(kK+t+Td+n.i));return i=n.g[t],e!=t&&(e>16),e=i>>16&16,t=16-e,n=n>>e,i=n-256,e=i>>16&8,t+=e,n<<=e,i=n-vw,e=i>>16&4,t+=e,n<<=e,i=n-wh,e=i>>16&2,t+=e,n<<=e,i=n>>14,e=i&~(i>>1),t+2-e)}function rCe(n){Lp();var e,t,i,r;for(mP=new Z,m_=new de,p_=new Z,e=(!n.a&&(n.a=new q(Ye,n,10,11)),n.a),VDe(e),r=new ne(e);r.e!=r.i.gc();)i=u(ue(r),27),qr(mP,i,0)==-1&&(t=new Z,nn(p_,t),ZBn(i,t));return p_}function cCe(n,e,t){var i,r,c,s;n.a=t.b.d,D(e,326)?(r=Xg(u(e,74),!1,!1),c=Qk(r),i=new F9n(n),qi(c,i),dy(c,r),e.of((He(),kb))!=null&&qi(u(e.of(kb),75),i)):(s=u(e,422),s.rh(s.nh()+n.a.a),s.sh(s.oh()+n.a.b))}function uCe(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.c.g==n.g&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Og(new Tn(null,new In(r,16)),new hkn(t))&&Kn(r.c,t);return Yt(r,new U3n),r}function Q_n(n,e,t){var i,r,c,s;return D(e,153)&&D(t,153)?(c=u(e,153),s=u(t,153),n.a[c.a][s.a]+n.a[s.a][c.a]):D(e,250)&&D(t,250)&&(i=u(e,250),r=u(t,250),i.a==r.a)?u(v(r.a,(Us(),k3)),17).a:0}function Y_n(n,e){var t,i,r,c,s,f,h,l;for(l=$(R(v(e,(cn(),X8)))),h=n[0].n.a+n[0].o.a+n[0].d.c+l,f=1;f=0?t:(f=z6(mi(new V(s.c+s.b/2,s.d+s.a/2),new V(c.c+c.b/2,c.d+c.a/2))),-(CUn(c,s)-1)*f)}function sCe(n,e,t){var i;qt(new Tn(null,(!t.a&&(t.a=new q(Mt,t,6,6)),new In(t.a,16))),new dMn(n,e)),qt(new Tn(null,(!t.n&&(t.n=new q(Ar,t,1,7)),new In(t.n,16))),new bMn(n,e)),i=u(z(t,(He(),kb)),75),i&&BQ(i,n,e)}function H0(n,e,t){var i,r,c;if(c=Qg((Du(),zi),n.Dh(),e),c)return dr(),u(c,69).xk()||(c=$p(Lr(zi,c))),r=(i=n.Ih(c),u(i>=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Sl(e,t);throw M(new Gn(ba+e.xe()+sK))}function xnn(n,e,t,i){var r,c,s,f,h;if(r=n.d[e],r){if(c=r.g,h=r.i,i!=null){for(f=0;f=t&&(i=e,l=(h.c+h.a)/2,s=l-t,h.c<=l-t&&(r=new KL(h.c,s),b0(n,i++,r)),f=l+t,f<=h.a&&(c=new KL(f,h.a),zb(i,n.c.length),d6(n.c,i,c)))}function eHn(n,e,t){var i,r,c,s,f,h;if(!e.dc()){for(r=new Ct,h=e.Kc();h.Ob();)for(f=u(h.Pb(),40),Ve(n.a,Y(f.g),Y(t)),s=(i=ge(new sl(f).a.d,0),new sg(i));Q9(s.a);)c=u(be(s.a),65).c,xt(r,c,r.c.b,r.c);eHn(n,r,t+1)}}function Fnn(n){var e;if(!n.c&&n.g==null)n.d=n.bj(n.f),ve(n,n.d),e=n.d;else{if(n.g==null)return!0;if(n.i==0)return!1;e=u(n.g[n.i-1],51)}return e==n.b&&null.Vm>=null.Um()?(CA(n),Fnn(n)):e.Ob()}function tHn(n){if(this.a=n,n.c.i.k==(Vn(),Zt))this.c=n.c,this.d=u(v(n.c.i,(W(),gc)),64);else if(n.d.i.k==Zt)this.c=n.d,this.d=u(v(n.d.i,(W(),gc)),64);else throw M(new Gn("Edge "+n+" is not an external edge."))}function iHn(n,e){var t,i,r;r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,r,n.b)),e?e!=n&&(zc(n,e.zb),v$(n,e.d),t=(i=e.c,i??e.zb),y$(n,t==null||An(t,e.zb)?null:t)):(zc(n,null),v$(n,0),y$(n,null))}function rHn(n,e){var t;this.e=(m0(),Se(n),m0(),QY(n)),this.c=(Se(e),QY(e)),KX(this.e.Rd().dc()==this.c.Rd().dc()),this.d=vBn(this.e),this.b=vBn(this.c),t=Wa(ki,[J,Bn],[5,1],5,[this.e.Rd().gc(),this.c.Rd().gc()],2),this.a=t,Fme(this)}function cHn(n){!XK&&(XK=uLe());var e=n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(t){return h2e(t)});return'"'+e+'"'}function Bnn(n,e,t,i,r,c){var s,f,h,l,a;if(r!=0)for(x(n)===x(t)&&(n=n.slice(e,e+r),e=0),h=t,f=e,l=e+r;f=s)throw M(new Kb(e,s));return r=t[e],s==1?i=null:(i=K(jU,MK,424,s-1,0,1),Ic(t,0,i,0,e),c=s-e-1,c>0&&Ic(t,e+1,i,e,c)),gm(n,i),S_n(n,e,r),r}function oHn(n){var e,t;if(n.f){for(;n.n0?c=zp(t):c=xk(zp(t))),ht(e,Mv,c)}function wCe(n,e){var t;e.Ug("Partition preprocessing",1),t=u(Wr(ut(rc(ut(new Tn(null,new In(n.a,16)),new zgn),new Xgn),new Vgn),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),qt(t.Oc(),new Wgn),e.Vg()}function gCe(n,e){var t,i,r,c,s;for(s=n.j,e.a!=e.b&&Yt(s,new Mpn),r=s.c.length/2|0,i=0;i0&&hy(n,t,e),c):i.a!=null?(hy(n,e,t),-1):r.a!=null?(hy(n,t,e),1):0}function mCe(n,e){var t,i,r,c,s;for(r=e.b.b,n.a=K(rs,kw,15,r,0,1),n.b=K(so,Xh,28,r,16,1),s=ge(e.b,0);s.b!=s.d.c;)c=u(be(s),40),n.a[c.g]=new Ct;for(i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),n.a[t.b.g].Fc(t),n.a[t.c.g].Fc(t)}function lHn(n,e){var t,i,r,c;n.Pj()?(t=n.Ej(),c=n.Qj(),++n.j,n.qj(t,n.Zi(t,e)),i=n.Ij(3,null,e,t,c),n.Mj()?(r=n.Nj(e,null),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(eIn(n,e),n.Mj()&&(r=n.Nj(e,null),r&&r.oj()))}function Rnn(n,e,t){var i,r,c;n.Pj()?(c=n.Qj(),Dk(n,e,t),i=n.Ij(3,null,t,e,c),n.Mj()?(r=n.Nj(t,null),n.Tj()&&(r=n.Uj(t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):n.Jj(i)):(Dk(n,e,t),n.Mj()&&(r=n.Nj(t,null),r&&r.oj()))}function jA(n,e){var t,i,r,c,s;for(s=ru(n.e.Dh(),e),r=new EE,t=u(n.g,124),c=n.i;--c>=0;)i=t[c],s.am(i.Lk())&&ve(r,i);!uzn(n,r)&&fo(n.e)&&t4(n,e.Jk()?V1(n,6,e,(Dn(),sr),null,-1,!1):V1(n,e.tk()?2:1,e,null,null,-1,!1))}function vCe(n,e){var t,i,r,c,s;return n.a==(jm(),x8)?!0:(c=e.a.c,t=e.a.c+e.a.b,!(e.j&&(i=e.A,s=i.c.c.a-i.o.a/2,r=c-(i.n.a+i.o.a),r>s)||e.q&&(i=e.C,s=i.c.c.a-i.o.a/2,r=i.n.a-t,r>s)))}function aHn(n){NN();var e,t,i,r,c,s,f;for(t=new Ql,r=new C(n.e.b);r.a1?n.e*=$(n.a):n.f/=$(n.a),_6e(n),X8e(n),UAe(n),U(n.b,(C5(),pP),n.g)}function gHn(n,e,t){var i,r,c,s,f,h;for(i=0,h=t,e||(i=t*(n.c.length-1),h*=-1),c=new C(n);c.a=0?n.Ah(null):n.Ph().Th(n,-1-e,null,null)),n.Bh(u(r,54),t),i&&i.oj(),n.vh()&&n.wh()&&t>-1&&it(n,new Ci(n,9,t,c,r)),r):c}function Hnn(n,e){var t,i,r,c,s;for(c=n.b.Ce(e),i=(t=n.a.get(c),t??K(ki,Bn,1,0,5,1)),s=0;s>5,r>=n.d)return n.e<0;if(t=n.a[r],e=1<<(e&31),n.e<0){if(i=Ixn(n),r>16)),15).dd(c),f0&&(!(hl(n.a.c)&&e.n.d)&&!(vg(n.a.c)&&e.n.b)&&(e.g.d+=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(vg(n.a.c)&&e.n.c)&&(e.g.a-=i-1))}function MHn(n){var e,t,i,r,c;if(r=new Z,c=kUn(n,r),e=u(v(n,(W(),Xu)),10),e)for(i=new C(e.j);i.a>e,c=n.m>>e|t<<22-e,r=n.l>>e|n.m<<22-e):e<44?(s=i?Il:0,c=t>>e-22,r=n.m>>e-22|t<<44-e):(s=i?Il:0,c=i?ro:0,r=t>>e-44),Yc(r&ro,c&ro,s&Il)}function bF(n){var e,t,i,r,c,s;for(this.c=new Z,this.d=n,i=St,r=St,e=li,t=li,s=ge(n,0);s.b!=s.d.c;)c=u(be(s),8),i=y.Math.min(i,c.a),r=y.Math.min(r,c.b),e=y.Math.max(e,c.a),t=y.Math.max(t,c.b);this.a=new Ho(i,r,e-i,t-r)}function AHn(n,e){var t,i,r,c,s,f;for(c=new C(n.b);c.a0&&D(e,44)&&(n.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(n.a,c),t=n.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f=2)for(t=r.Kc(),e=R(t.Pb());t.Ob();)c=e,e=R(t.Pb()),i=y.Math.min(i,(Jn(e),e-(Jn(c),c)));return i}function _Ce(n,e){var t,i,r;for(r=new Z,i=ge(e.a,0);i.b!=i.d.c;)t=u(be(i),65),t.b.g==n.g&&!An(t.b.c,IS)&&x(v(t.b,(lc(),Sh)))!==x(v(t.c,Sh))&&!Og(new Tn(null,new In(r,16)),new lkn(t))&&Kn(r.c,t);return Yt(r,new V3n),r}function HCe(n,e){var t,i,r;if(x(e)===x(Se(n)))return!0;if(!D(e,15)||(i=u(e,15),r=n.gc(),r!=i.gc()))return!1;if(D(i,59)){for(t=0;t0&&(r=t),s=new C(n.f.e);s.a0?(e-=1,t-=1):i>=0&&r<0?(e+=1,t+=1):i>0&&r>=0?(e-=1,t+=1):(e+=1,t-=1),new bi(Y(e),Y(t))}function tMe(n,e){return n.ce.c?1:n.be.b?1:n.a!=e.a?mt(n.a)-mt(e.a):n.d==(Z6(),e9)&&e.d==n9?-1:n.d==n9&&e.d==e9?1:0}function NHn(n,e){var t,i,r,c,s;return c=e.a,c.c.i==e.b?s=c.d:s=c.c,c.c.i==e.b?i=c.c:i=c.d,r=C8e(n.a,s,i),r>0&&r0):r<0&&-r0):!1}function iMe(n,e,t,i){var r,c,s,f,h,l,a,d;for(r=(e-n.d)/n.c.c.length,c=0,n.a+=t,n.d=e,d=new C(n.c);d.a>24;return s}function cMe(n){if(n.ze()){var e=n.c;e.Ae()?n.o="["+e.n:e.ze()?n.o="["+e.xe():n.o="[L"+e.xe()+";",n.b=e.we()+"[]",n.k=e.ye()+"[]";return}var t=n.j,i=n.d;i=i.split("/"),n.o=mx(".",[t,mx("$",i)]),n.b=mx(".",[t,mx(".",i)]),n.k=i[i.length-1]}function uMe(n,e){var t,i,r,c,s;for(s=null,c=new C(n.e.a);c.a=0;e-=2)for(t=0;t<=e;t+=2)(n.b[t]>n.b[t+2]||n.b[t]===n.b[t+2]&&n.b[t+1]>n.b[t+3])&&(i=n.b[t+2],n.b[t+2]=n.b[t],n.b[t]=i,i=n.b[t+3],n.b[t+3]=n.b[t+1],n.b[t+1]=i);n.c=!0}}function fMe(n,e){var t,i,r,c,s,f,h,l,a;for(l=-1,a=0,s=n,f=0,h=s.length;f0&&++a;++l}return a}function Hs(n){var e,t;return t=new mo(Xa(n.Rm)),t.a+="@",Re(t,(e=mt(n)>>>0,e.toString(16))),n.Vh()?(t.a+=" (eProxyURI: ",Dc(t,n._h()),n.Kh()&&(t.a+=" eClass: ",Dc(t,n.Kh())),t.a+=")"):n.Kh()&&(t.a+=" (eClass: ",Dc(t,n.Kh()),t.a+=")"),t.a}function $5(n){var e,t,i,r;if(n.e)throw M(new Or((ll(u_),FB+u_.k+BB)));for(n.d==(ci(),Jf)&&UA(n,Br),t=new C(n.a.a);t.a>24}return t}function aMe(n,e,t){var i,r,c;if(r=u(Cr(n.i,e),314),!r)if(r=new k$n(n.d,e,t),Pp(n.i,e,r),tZ(e))g1e(n.a,e.c,e.b,r);else switch(c=Wje(e),i=u(Cr(n.p,c),252),c.g){case 1:case 3:r.j=!0,mD(i,e.b,r);break;case 4:case 2:r.k=!0,mD(i,e.c,r)}return r}function dMe(n,e){var t,i,r,c,s,f,h,l,a;for(h=Dh(n.c-n.b&n.a.length-1),l=null,a=null,c=new V6(n);c.a!=c.b;)r=u(xT(c),10),t=(f=u(v(r,(W(),yf)),12),f?f.i:null),i=(s=u(v(r,Es),12),s?s.i:null),(l!=t||a!=i)&&(pHn(h,e),l=t,a=i),Kn(h.c,r);pHn(h,e)}function bMe(n,e,t,i){var r,c,s,f,h,l;if(f=new EE,h=ru(n.e.Dh(),e),r=u(n.g,124),dr(),u(e,69).xk())for(s=0;s=0)return r;for(c=1,f=new C(e.j);f.a=0)return r;for(c=1,f=new C(e.j);f.a0&&e.Ne((Ln(r-1,n.c.length),u(n.c[r-1],10)),c)>0;)Go(n,r,(Ln(r-1,n.c.length),u(n.c[r-1],10))),--r;Ln(r,n.c.length),n.c[r]=c}t.a=new de,t.b=new de}function wMe(n,e,t){var i,r,c,s,f,h,l,a;for(a=(i=u(e.e&&e.e(),9),new _o(i,u(xs(i,i.length),9),0)),h=ww(t,"[\\[\\]\\s,]+"),c=h,s=0,f=c.length;s=0?(e||(e=new i6,i>0&&Er(e,(Fi(0,i,n.length),n.substr(0,i)))),e.a+="\\",T4(e,t&ui)):e&&T4(e,t&ui);return e?e.a:n}function pMe(n){var e,t,i;for(t=new C(n.a.a.b);t.a0&&(!(hl(n.a.c)&&e.n.d)&&!(vg(n.a.c)&&e.n.b)&&(e.g.d-=y.Math.max(0,i/2-.5)),!(hl(n.a.c)&&e.n.a)&&!(vg(n.a.c)&&e.n.c)&&(e.g.a+=y.Math.max(0,i-1)))}function qHn(n,e,t){var i,r;if((n.c-n.b&n.a.length-1)==2)e==(en(),Xn)||e==Zn?(sT(u(l5(n),15),(To(),nl)),sT(u(l5(n),15),Aa)):(sT(u(l5(n),15),(To(),Aa)),sT(u(l5(n),15),nl));else for(r=new V6(n);r.a!=r.b;)i=u(xT(r),15),sT(i,t)}function mMe(n,e){var t,i,r,c,s,f,h;for(r=y4(new xG(n)),f=new xi(r,r.c.length),c=y4(new xG(e)),h=new xi(c,c.c.length),s=null;f.b>0&&h.b>0&&(t=(oe(f.b>0),u(f.a.Xb(f.c=--f.b),27)),i=(oe(h.b>0),u(h.a.Xb(h.c=--h.b),27)),t==i);)s=t;return s}function UHn(n,e,t){var i,r,c,s;GOn(n,e)>GOn(n,t)?(i=uc(t,(en(),Zn)),n.d=i.dc()?0:zL(u(i.Xb(0),12)),s=uc(e,Wn),n.b=s.dc()?0:zL(u(s.Xb(0),12))):(r=uc(t,(en(),Wn)),n.d=r.dc()?0:zL(u(r.Xb(0),12)),c=uc(e,Zn),n.b=c.dc()?0:zL(u(c.Xb(0),12)))}function GHn(n,e){var t,i,r,c;for(t=n.o.a,c=u(u(ot(n.r,e),21),87).Kc();c.Ob();)r=u(c.Pb(),117),r.e.a=t*$(R(r.b.of(bP))),r.e.b=(i=r.b,i.pf((He(),oo))?i.ag()==(en(),Xn)?-i.Mf().b-$(R(i.of(oo))):$(R(i.of(oo))):i.ag()==(en(),Xn)?-i.Mf().b:0)}function vMe(n,e){var t,i,r,c;for(e.Ug("Self-Loop pre-processing",1),i=new C(n.a);i.an.c));s++)r.a>=n.s&&(c<0&&(c=s),f=s);return h=(n.s+n.c)/2,c>=0&&(i=oSe(n,e,c,f),h=cle((Ln(i,e.c.length),u(e.c[i],339))),aCe(e,i,t)),h}function Me(n,e,t){var i,r,c,s,f,h,l;for(s=(c=new tG,c),IQ(s,(Jn(e),e)),l=(!s.b&&(s.b=new lo((On(),ar),pc,s)),s.b),h=1;h0&&iOe(this,r)}function Znn(n,e,t,i,r,c){var s,f,h;if(!r[e.a]){for(r[e.a]=!0,s=i,!s&&(s=new zM),nn(s.e,e),h=c[e.a].Kc();h.Ob();)f=u(h.Pb(),290),!(f.d==t||f.c==t)&&(f.c!=e&&Znn(n,f.c,e,s,r,c),f.d!=e&&Znn(n,f.d,e,s,r,c),nn(s.c,f),hi(s.d,f.b));return s}return null}function jMe(n){var e,t,i,r,c,s,f;for(e=0,r=new C(n.e);r.a=2}function EMe(n,e,t,i,r){var c,s,f,h,l,a;for(c=n.c.d.j,s=u(Zo(t,0),8),a=1;a1||(e=yt(Qs,A(T(yr,1),G,95,0,[xl,Ys])),kk(LM(e,n))>1)||(i=yt(nf,A(T(yr,1),G,95,0,[el,Ms])),kk(LM(i,n))>1))}function nen(n,e,t){var i,r,c;for(c=new C(n.t);c.a0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&Fe(e,i.b));for(r=new C(n.i);r.a0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&Fe(t,i.a))}function CA(n){var e,t,i,r,c;if(n.g==null&&(n.d=n.bj(n.f),ve(n,n.d),n.c))return c=n.f,c;if(e=u(n.g[n.i-1],51),r=e.Pb(),n.e=e,t=n.bj(r),t.Ob())n.d=t,ve(n,t);else for(n.d=null;!e.Ob()&&($t(n.g,--n.i,null),n.i!=0);)i=u(n.g[n.i-1],51),e=i;return r}function MMe(n,e){var t,i,r,c,s,f;if(i=e,r=i.Lk(),Sl(n.e,r)){if(r.Si()&&_M(n,r,i.md()))return!1}else for(f=ru(n.e.Dh(),r),t=u(n.g,124),c=0;c1||t>1)return 2;return e+t==1?2:0}function to(n,e){var t,i,r,c,s,f;return c=n.a*LB+n.b*1502,f=n.b*LB+11,t=y.Math.floor(f*Iy),c+=t,f-=t*Ctn,c%=Ctn,n.a=c,n.b=f,e<=24?y.Math.floor(n.a*Lun[e]):(r=n.a*(1<=2147483648&&(i-=4294967296),i)}function JHn(n,e,t){var i,r,c,s,f,h,l;for(c=new Z,l=new Ct,s=new Ct,XPe(n,l,s,e),MOe(n,l,s,e,t),h=new C(n);h.ai.b.g&&Kn(c.c,i);return c}function OMe(n,e,t){var i,r,c,s,f,h;for(f=n.c,s=(t.q?t.q:(Dn(),Dn(),Wh)).vc().Kc();s.Ob();)c=u(s.Pb(),44),i=!s4(ut(new Tn(null,new In(f,16)),new Z3(new uMn(e,c)))).Bd((Va(),v3)),i&&(h=c.md(),D(h,4)&&(r=cZ(h),r!=null&&(h=r)),e.qf(u(c.ld(),149),h))}function DMe(n,e,t){var i,r;if(H7(n.b),hf(n.b,($k(),XI),(s6(),Hj)),hf(n.b,VI,e.g),hf(n.b,WI,e.a),n.a=gy(n.b,e),t.Ug("Compaction by shrinking a tree",n.a.c.length),e.i.c.length>1)for(r=new C(n.a);r.a=0?n.Lh(i,!0,!0):H0(n,c,!0),160)),u(r,220).Xl(e,t)}else throw M(new Gn(ba+e.xe()+b8))}function MA(n,e){var t,i,r,c,s;if(e){for(c=D(n.Cb,90)||D(n.Cb,102),s=!c&&D(n.Cb,331),i=new ne((!e.a&&(e.a=new B6(e,jr,e)),e.a));i.e!=i.i.gc();)if(t=u(ue(i),89),r=BA(t),c?D(r,90):s?D(r,156):r)return r;return c?(On(),Is):(On(),Zf)}else return null}function LMe(n,e){var t,i,r,c;for(e.Ug("Resize child graph to fit parent.",1),i=new C(n.b);i.a=2*e&&nn(t,new KL(s[i-1]+e,s[i]-e));return t}function xMe(n,e,t){var i,r,c,s,f,h,l,a;if(t)for(c=t.a.length,i=new Qa(c),f=(i.b-i.a)*i.c<0?(K1(),xa):new q1(i);f.Ob();)s=u(f.Pb(),17),r=L4(t,s.a),r&&(h=a3e(n,(l=(B1(),a=new ez,a),e&&ien(l,e),l),r),X4(h,bl(r,Eh)),gA(r,h),Ann(r,h),_$(n,r,h))}function TA(n){var e,t,i,r,c,s;if(!n.j){if(s=new Cvn,e=N9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ue(i),29),r=TA(t),Bt(s,r),ve(s,t);e.a.Bc(n)!=null}ew(s),n.j=new pg((u(L(H((G1(),Hn).o),11),19),s.i),s.g),Zu(n).b&=-33}return n.j}function FMe(n){var e,t,i,r;if(n==null)return null;if(i=Fc(n,!0),r=nj.length,An(i.substr(i.length-r,r),nj)){if(t=i.length,t==4){if(e=(zn(0,i.length),i.charCodeAt(0)),e==43)return f0n;if(e==45)return vse}else if(t==3)return f0n}return new UG(i)}function BMe(n){var e,t,i;return t=n.l,t&t-1||(i=n.m,i&i-1)||(e=n.h,e&e-1)||e==0&&i==0&&t==0?-1:e==0&&i==0&&t!=0?kQ(t):e==0&&i!=0&&t==0?kQ(i)+22:e!=0&&i==0&&t==0?kQ(e)+44:-1}function zg(n,e){var t,i,r,c,s;for(r=e.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==e){c?c.b=e.b:n.b[r]=e.b;break}c=i}for(s=e.f&n.f,c=null,t=n.c[s];;t=t.d){if(t==e){c?c.d=e.d:n.c[s]=e.d;break}c=t}e.e?e.e.c=e.c:n.a=e.c,e.c?e.c.e=e.e:n.e=e.e,--n.i,++n.g}function RMe(n,e){var t;e.d?e.d.b=e.b:n.a=e.b,e.b?e.b.d=e.d:n.e=e.d,!e.e&&!e.c?(t=u(as(u(Bp(n.b,e.a),260)),260),t.a=0,++n.c):(t=u(as(u(ee(n.b,e.a),260)),260),--t.a,e.e?e.e.c=e.c:t.b=u(as(e.c),511),e.c?e.c.e=e.e:t.c=u(as(e.e),511)),--n.d}function KMe(n){var e,t,i,r,c,s,f,h,l,a;for(t=n.o,e=n.p,s=et,r=Wi,f=et,c=Wi,l=0;l0),c.a.Xb(c.c=--c.b),Rb(c,r),oe(c.b3&&Bh(n,0,e-3))}function HMe(n){var e,t,i,r;return x(v(n,(cn(),Bw)))===x((jl(),M1))?!n.e&&x(v(n,Cj))!==x((Z4(),mj)):(i=u(v(n,yH),299),r=on(un(v(n,jH)))||x(v(n,U8))===x((c5(),pj)),e=u(v(n,Hfn),17).a,t=n.a.c.length,!r&&i!=(Z4(),mj)&&(e==0||e>t))}function qMe(n){var e,t;for(t=0;t0);t++);if(t>0&&t0);e++);return e>0&&t>16!=6&&e){if(mm(n,e))throw M(new Gn(w8+dHn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?TZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,6,i)),i=hV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,6,e,e))}function AA(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(w8+nGn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?IZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,12,i)),i=lV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function ien(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=9&&e){if(mm(n,e))throw M(new Gn(w8+Yqn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?SZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,9,i)),i=aV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,9,e,e))}function Tm(n){var e,t,i,r,c;if(i=gs(n),c=n.j,c==null&&i)return n.Jk()?null:i.ik();if(D(i,156)){if(t=i.jk(),t&&(r=t.wi(),r!=n.i)){if(e=u(i,156),e.nk())try{n.g=r.ti(e,c)}catch(s){if(s=It(s),D(s,82))n.g=null;else throw M(s)}n.i=r}return n.g}return null}function nqn(n){var e;return e=new Z,nn(e,new bp(new V(n.c,n.d),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c,n.d),new V(n.c,n.d+n.a))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c+n.b,n.d))),nn(e,new bp(new V(n.c+n.b,n.d+n.a),new V(n.c,n.d+n.a))),e}function UMe(n){var e,t,i;if(n==null)return gu;try{return Jr(n)}catch(r){if(r=It(r),D(r,103))return e=r,i=Xa(wo(n))+"@"+(t=(fl(),rZ(n)>>>0),t.toString(16)),r9e(qve(),(a4(),"Exception during lenientFormat for "+i),e),"<"+i+" threw "+Xa(e.Rm)+">";throw M(r)}}function GMe(n,e,t){var i,r,c;for(c=e.a.ec().Kc();c.Ob();)r=u(c.Pb(),74),i=u(ee(n.b,r),272),!i&&(At(Kh(r))==At(ra(r))?DTe(n,r,t):Kh(r)==At(ra(r))?ee(n.c,r)==null&&ee(n.b,ra(r))!=null&&DGn(n,r,t,!1):ee(n.d,r)==null&&ee(n.b,Kh(r))!=null&&DGn(n,r,t,!0))}function zMe(n,e){var t,i,r,c,s,f,h;for(r=n.Kc();r.Ob();)for(i=u(r.Pb(),10),f=new Pc,ic(f,i),gi(f,(en(),Zn)),U(f,(W(),uI),(_n(),!0)),s=e.Kc();s.Ob();)c=u(s.Pb(),10),h=new Pc,ic(h,c),gi(h,Wn),U(h,uI,!0),t=new E0,U(t,uI,!0),Zi(t,f),Ii(t,h)}function XMe(n,e,t,i){var r,c,s,f;r=BBn(n,e,t),c=BBn(n,t,e),s=u(ee(n.c,e),118),f=u(ee(n.c,t),118),r1)for(e=h0((t=new za,++n.b,t),n.d),f=ge(c,0);f.b!=f.d.c;)s=u(be(f),125),qs(Ls(Ds(Ns(Os(new hs,1),0),e),s))}function JMe(n,e,t){var i,r,c,s,f;for(t.Ug("Breaking Point Removing",1),n.a=u(v(e,(cn(),$l)),223),c=new C(e.b);c.a>16!=11&&e){if(mm(n,e))throw M(new Gn(w8+Een(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?OZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=Wp(e,n,10,i)),i=yV(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,e,e))}function QMe(n){var e,t,i,r;for(i=new sd(new Ua(n.b).a);i.b;)t=L0(i),r=u(t.ld(),12),e=u(t.md(),10),U(e,(W(),st),r),U(r,Xu,e),U(r,yj,(_n(),!0)),gi(r,u(v(e,gc),64)),v(e,gc),U(r.i,(cn(),Kt),(Oi(),Kv)),u(v(Hi(r.i),Hc),21).Fc((pr(),yv))}function YMe(n,e,t){var i,r,c,s,f,h;if(c=0,s=0,n.c)for(h=new C(n.d.i.j);h.ac.a?-1:r.ah){for(a=n.d,n.d=K(Ndn,qcn,66,2*h+4,0,1),c=0;c=9223372036854776e3?(R4(),hun):(r=!1,n<0&&(r=!0,n=-n),i=0,n>=vd&&(i=wi(n/vd),n-=i*vd),t=0,n>=o3&&(t=wi(n/o3),n-=t*o3),e=wi(n),c=Yc(e,t,i),r&&H$(c),c)}function fTe(n){var e,t,i,r,c;if(c=new Z,nu(n.b,new S9n(c)),n.b.c.length=0,c.c.length!=0){for(e=(Ln(0,c.c.length),u(c.c[0],82)),t=1,i=c.c.length;t=-e&&i==e?new bi(Y(t-1),Y(i)):new bi(Y(t),Y(i-1))}function iqn(){return tr(),A(T(yNe,1),G,81,0,[Qon,Von,b2,N_,gsn,IP,KP,Lw,bsn,csn,asn,Dw,wsn,tsn,psn,Hon,NP,$_,SP,FP,vsn,xP,qon,dsn,ksn,BP,msn,PP,Zon,hsn,fsn,_P,zon,AP,DP,Gon,hv,osn,isn,lsn,L8,Won,Xon,ssn,rsn,LP,RP,Uon,$P,usn,OP,nsn,Yon,bj,TP,esn,Jon])}function aTe(n,e,t){n.d=0,n.b=0,e.k==(Vn(),_c)&&t.k==_c&&u(v(e,(W(),st)),10)==u(v(t,st),10)&&(s$(e).j==(en(),Xn)?UHn(n,e,t):UHn(n,t,e)),e.k==_c&&t.k==Mi?s$(e).j==(en(),Xn)?n.d=1:n.b=1:t.k==_c&&e.k==Mi&&(s$(t).j==(en(),Xn)?n.b=1:n.d=1),J9e(n,e,t)}function dTe(n){var e,t,i,r,c,s,f,h,l,a,d;return d=enn(n),e=n.a,h=e!=null,h&&j4(d,"category",n.a),r=Z9(new qa(n.d)),s=!r,s&&(l=new _a,bf(d,"knownOptions",l),t=new fyn(l),qi(new qa(n.d),t)),c=Z9(n.g),f=!c,f&&(a=new _a,bf(d,"supportedFeatures",a),i=new hyn(a),qi(n.g,i)),d}function bTe(n){var e,t,i,r,c,s,f,h,l;for(i=!1,e=336,t=0,c=new zAn(n.length),f=n,h=0,l=f.length;h>16!=7&&e){if(mm(n,e))throw M(new Gn(w8+h_n(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?AZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,1,oE,i)),i=bW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,e,e))}function rqn(n,e){var t,i;if(e!=n.Cb||n.Db>>16!=3&&e){if(mm(n,e))throw M(new Gn(w8+sBn(n)));i=null,n.Cb&&(i=(t=n.Db>>16,t>=0?PZ(n,i):n.Cb.Th(n,-1-t,null,i))),e&&(i=u(e,54).Rh(n,0,fE,i)),i=wW(n,e,i),i&&i.oj()}else n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,3,e,e))}function vF(n,e){Am();var t,i,r,c,s,f,h,l,a;return e.d>n.d&&(f=n,n=e,e=f),e.d<63?tAe(n,e):(s=(n.d&-2)<<4,l=NJ(n,s),a=NJ(e,s),i=RF(n,Fp(l,s)),r=RF(e,Fp(a,s)),h=vF(l,a),t=vF(i,r),c=vF(RF(l,i),RF(r,a)),c=zF(zF(c,h),t),c=Fp(c,s),h=Fp(h,s<<1),zF(zF(h,c),t))}function a1(){a1=F,xH=new dg(sVn,0),Shn=new dg("LONGEST_PATH",1),Phn=new dg("LONGEST_PATH_SOURCE",2),$H=new dg("COFFMAN_GRAHAM",3),Ahn=new dg(sR,4),Ihn=new dg("STRETCH_WIDTH",5),CI=new dg("MIN_WIDTH",6),Pv=new dg("BF_MODEL_ORDER",7),Iv=new dg("DF_MODEL_ORDER",8)}function gTe(n,e,t){var i,r,c,s,f;for(s=g5(n,t),f=K(Qh,b1,10,e.length,0,1),i=0,c=s.Kc();c.Ob();)r=u(c.Pb(),12),on(un(v(r,(W(),yj))))&&(f[i++]=u(v(r,Xu),10));if(i=0;c+=t?1:-1)s=s|e.c.lg(h,c,t,i&&!on(un(v(e.j,(W(),ka))))&&!on(un(v(e.j,(W(),j2))))),s=s|e.q.ug(h,c,t),s=s|Gqn(n,h[c],t,i);return fi(n.c,e),s}function IA(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=CDn(n.j),d=0,g=a.length;d1&&(n.a=!0),Wbe(u(t.b,68),tt(Ki(u(e.b,68).c),ch(mi(Ki(u(t.b,68).a),u(e.b,68).a),r))),OOn(n,e),cqn(n,t)}function uqn(n){var e,t,i,r,c,s,f;for(c=new C(n.a.a);c.a0&&c>0?s.p=e++:i>0?s.p=t++:c>0?s.p=r++:s.p=t++}Dn(),Yt(n.j,new _gn)}function yTe(n){var e,t;t=null,e=u(sn(n.g,0),18);do{if(t=e.d.i,kt(t,(W(),Es)))return u(v(t,Es),12).i;if(t.k!=(Vn(),zt)&&pe(new ie(ce(Qt(t).a.Kc(),new En))))e=u(fe(new ie(ce(Qt(t).a.Kc(),new En))),18);else if(t.k!=zt)return null}while(t&&t.k!=(Vn(),zt));return t}function jTe(n,e){var t,i,r,c,s,f,h,l,a;for(f=e.j,s=e.g,h=u(sn(f,f.c.length-1),113),a=(Ln(0,f.c.length),u(f.c[0],113)),l=Kx(n,s,h,a),c=1;cl&&(h=t,a=r,l=i);e.a=a,e.c=h}function ETe(n,e,t){var i,r,c,s,f,h,l;for(l=new Ul(new X7n(n)),s=A(T(FZn,1),DXn,12,0,[e,t]),f=0,h=s.length;fh-n.b&&fh-n.a&&f0?c.a?(f=c.b.Mf().a,t>f&&(r=(t-f)/2,c.d.b=r,c.d.c=r)):c.d.c=n.s+t:K6(n.u)&&(i=tnn(c.b),i.c<0&&(c.d.b=-i.c),i.c+i.b>c.b.Mf().a&&(c.d.c=i.c+i.b-c.b.Mf().a))}function KTe(n,e){var t,i,r,c,s;s=new Z,t=e;do c=u(ee(n.b,t),131),c.B=t.c,c.D=t.d,Kn(s.c,c),t=u(ee(n.k,t),18);while(t);return i=(Ln(0,s.c.length),u(s.c[0],131)),i.j=!0,i.A=u(i.d.a.ec().Kc().Pb(),18).c.i,r=u(sn(s,s.c.length-1),131),r.q=!0,r.C=u(r.d.a.ec().Kc().Pb(),18).d.i,s}function _Te(n){var e,t;if(e=u(n.a,17).a,t=u(n.b,17).a,e>=0){if(e==t)return new bi(Y(-e-1),Y(-e-1));if(e==-t)return new bi(Y(-e),Y(t+1))}return y.Math.abs(e)>y.Math.abs(t)?e<0?new bi(Y(-e),Y(t)):new bi(Y(-e),Y(t+1)):new bi(Y(e+1),Y(t))}function HTe(n){var e,t;t=u(v(n,(cn(),ou)),171),e=u(v(n,(W(),Od)),311),t==(Yo(),ya)?(U(n,ou,Ej),U(n,Od,(vl(),k2))):t==xw?(U(n,ou,Ej),U(n,Od,(vl(),E3))):e==(vl(),k2)?(U(n,ou,ya),U(n,Od,vj)):e==E3&&(U(n,ou,xw),U(n,Od,vj))}function OA(){OA=F,Dj=new A3n,Jie=Ke(new ii,(Vi(),Oc),(tr(),SP)),Zie=Pu(Ke(new ii,Oc,xP),zr,$P),nre=ah(ah(h6(Pu(Ke(new ii,Vs,KP),zr,RP),Kc),BP),_P),Qie=Pu(Ke(Ke(Ke(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),Yie=Pu(Ke(Ke(new ii,Kc,hv),Kc,AP),zr,TP)}function B5(){B5=F,ire=Ke(Pu(new ii,(Vi(),zr),(tr(),nsn)),Oc,SP),ore=ah(ah(h6(Pu(Ke(new ii,Vs,KP),zr,RP),Kc),BP),_P),rre=Pu(Ke(Ke(Ke(new ii,Jh,IP),Kc,DP),Kc,hv),zr,OP),ure=Ke(Ke(new ii,Oc,xP),zr,$P),cre=Pu(Ke(Ke(new ii,Kc,hv),Kc,AP),zr,TP)}function qTe(n,e,t,i,r){var c,s;(!fr(e)&&e.c.i.c==e.d.i.c||!fxn(cc(A(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])),t))&&!fr(e)&&(e.c==r?g4(e.a,0,new rr(t)):Fe(e.a,new rr(t)),i&&!sf(n.a,t)&&(s=u(v(e,(cn(),Fr)),75),s||(s=new Mu,U(e,Fr,s)),c=new rr(t),xt(s,c,s.c.b,s.c),fi(n.a,c)))}function fqn(n,e){var t,i,r,c;for(c=Ae(er(Uh,xh(Ae(er(e==null?0:mt(e),Gh)),15))),t=c&n.b.length-1,r=null,i=n.b[t];i;r=i,i=i.a)if(i.d==c&&sh(i.i,e))return r?r.a=i.a:n.b[t]=i.a,Kjn(u(as(i.c),604),u(as(i.f),604)),V9(u(as(i.b),227),u(as(i.e),227)),--n.f,++n.e,!0;return!1}function UTe(n){var e,t;for(t=new ie(ce(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),e.c.i.k!=(Vn(),Ac))throw M(new _l(oR+qk(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function GTe(n,e,t){var i,r,c,s,f,h,l;if(r=dBn(n.Db&254),r==0)n.Eb=t;else{if(r==1)f=K(ki,Bn,1,2,5,1),c=Rx(n,e),c==0?(f[0]=t,f[1]=n.Eb):(f[0]=n.Eb,f[1]=t);else for(f=K(ki,Bn,1,r+1,5,1),s=cd(n.Eb),i=2,h=0,l=0;i<=128;i<<=1)i==e?f[l++]=t:n.Db&i&&(f[l++]=s[h++]);n.Eb=f}n.Db|=e}function hqn(n,e,t){var i,r,c,s;for(this.b=new Z,r=0,i=0,s=new C(n);s.a0&&(c=u(sn(this.b,0),176),r+=c.o,i+=c.p),r*=2,i*=2,e>1?r=wi(y.Math.ceil(r*e)):i=wi(y.Math.ceil(i/e)),this.a=new VY(r,i)}function lqn(n,e,t,i,r,c){var s,f,h,l,a,d,g,p,m,k,j,S;for(a=i,e.j&&e.o?(p=u(ee(n.f,e.A),60),k=p.d.c+p.d.b,--a):k=e.a.c+e.a.b,d=r,t.q&&t.o?(p=u(ee(n.f,t.C),60),l=p.d.c,++d):l=t.a.c,j=l-k,h=y.Math.max(2,d-a),f=j/h,m=k+f,g=a;g=0;s+=r?1:-1){for(f=e[s],h=i==(en(),Zn)?r?uc(f,i):Qo(uc(f,i)):r?Qo(uc(f,i)):uc(f,i),c&&(n.c[f.p]=h.gc()),d=h.Kc();d.Ob();)a=u(d.Pb(),12),n.d[a.p]=l++;hi(t,h)}}function dqn(n,e,t){var i,r,c,s,f,h,l,a;for(c=$(R(n.b.Kc().Pb())),l=$(R(Hve(e.b))),i=ch(Ki(n.a),l-t),r=ch(Ki(e.a),t-c),a=tt(i,r),ch(a,1/(l-c)),this.a=a,this.b=new Z,f=!0,s=n.b.Kc(),s.Pb();s.Ob();)h=$(R(s.Pb())),f&&h-t>_R&&(this.b.Fc(t),f=!1),this.b.Fc(h);f&&this.b.Fc(t)}function zTe(n){var e,t,i,r;if(hSe(n,n.n),n.d.c.length>0){for(e6(n.c);Gnn(n,u(E(new C(n.e.a)),125))>5,e&=31,i>=n.d)return n.e<0?(dh(),vQn):(dh(),S8);if(c=n.d-i,r=K(ye,_e,28,c+1,15,1),Fje(r,c,n.a,i,e),n.e<0){for(t=0;t0&&n.a[t]<<32-e){for(t=0;t=0?!1:(t=Qg((Du(),zi),r,e),t?(i=t.Ik(),(i>1||i==-1)&&y0(Lr(zi,t))!=3):!0)):!1}function JTe(n,e,t,i){var r,c,s,f,h;return f=Gr(u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84)),h=Gr(u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84)),At(f)==At(h)||Yb(h,f)?null:(s=V7(e),s==t?i:(c=u(ee(n.a,s),10),c&&(r=c.e,r)?r:null))}function QTe(n,e,t){var i,r,c,s,f;for(t.Ug("Longest path to source layering",1),n.a=e,f=n.a.a,n.b=K(ye,_e,28,f.c.length,15,1),i=0,s=new C(f);s.a0&&(t[0]+=n.d,s-=t[0]),t[2]>0&&(t[2]+=n.d,s-=t[2]),c=y.Math.max(0,s),t[1]=y.Math.max(t[1],s),xJ(n,Wc,r.c+i.b+t[0]-(t[1]-s)/2,t),e==Wc&&(n.c.b=c,n.c.c=r.c+i.b+(c-s)/2)}function Eqn(){this.c=K(Pi,Tr,28,(en(),A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=K(Pi,Tr,28,A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),this.a=K(Pi,Tr,28,A(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn]).length,15,1),Rz(this.c,St),Rz(this.b,li),Rz(this.a,li)}function xc(n,e,t){var i,r,c,s;if(e<=t?(r=e,c=t):(r=t,c=e),i=0,n.b==null)n.b=K(ye,_e,28,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r){n.b[i-1]=c;return}s=K(ye,_e,28,i+2,15,1),Ic(n.b,0,s,0,i),n.b=s,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||Gg(n)}}function iAe(n,e,t){var i,r,c,s,f,h,l;for(l=e.d,n.a=new Gc(l.c.length),n.c=new de,f=new C(l);f.a=0?n.Lh(l,!1,!0):H0(n,t,!1),61));n:for(c=d.Kc();c.Ob();){for(r=u(c.Pb(),58),a=0;a1;)dw(r,r.i-1);return i}function Mqn(n,e){var t,i,r,c,s,f,h;for(t=new Cg,c=new C(n.b);c.an.d[s.p]&&(t+=SJ(n.b,c),W1(n.a,Y(c)));for(;!t6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function fAe(n){var e,t,i,r,c,s,f,h,l;for(n.a=new kV,l=0,r=0,i=new C(n.i.b);i.af.d&&(a=f.d+f.a+l));t.c.d=a,e.a.zc(t,e),h=y.Math.max(h,t.c.d+t.c.a)}return h}function pr(){pr=F,ZP=new Db("COMMENTS",0),cs=new Db("EXTERNAL_PORTS",1),F8=new Db("HYPEREDGES",2),nI=new Db("HYPERNODES",3),yv=new Db("NON_FREE_PORTS",4),v2=new Db("NORTH_SOUTH_PORTS",5),B8=new Db(JXn,6),vv=new Db("CENTER_LABELS",7),kv=new Db("END_LABELS",8),eI=new Db("PARTITIONS",9)}function lAe(n,e,t,i,r){return i<0?(i=Ug(n,r,A(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=Ug(n,r,A(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function aAe(n,e,t,i,r){return i<0?(i=Ug(n,r,A(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB]),e),i<0&&(i=Ug(n,r,A(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),i<0?!1:(t.k=i,!0)):i>0?(t.k=i-1,!0):!1}function dAe(n,e,t,i,r,c){var s,f,h,l;if(f=32,i<0){if(e[0]>=n.length||(f=Xi(n,e[0]),f!=43&&f!=45)||(++e[0],i=yA(n,e),i<0))return!1;f==45&&(i=-i)}return f==32&&e[0]-t==2&&r.b==2&&(h=new JE,l=h.q.getFullYear()-ha+ha-80,s=l%100,c.a=i==s,i+=(l/100|0)*100+(i=0?ia(n):U6(ia(n1(n)))),P8[e]=AC(Bs(n,e),0)?ia(Bs(n,e)):U6(ia(n1(Bs(n,e)))),n=er(n,5);for(;e=l&&(h=i);h&&(a=y.Math.max(a,h.a.o.a)),a>g&&(d=l,g=a)}return d}function vAe(n){var e,t,i,r,c,s,f;for(c=new Ul(u(Se(new kbn),50)),f=li,t=new C(n.d);t.ajVn?Yt(h,n.b):i<=jVn&&i>EVn?Yt(h,n.d):i<=EVn&&i>CVn?Yt(h,n.c):i<=CVn&&Yt(h,n.a),c=Iqn(n,h,c);return r}function Oqn(n,e,t,i){var r,c,s,f,h,l;for(r=(i.c+i.a)/2,vo(e.j),Fe(e.j,r),vo(t.e),Fe(t.e,r),l=new Zjn,f=new C(n.f);f.a1,f&&(i=new V(r,t.b),Fe(e.a,i)),r5(e.a,A(T(Ei,1),J,8,0,[g,d]))}function ben(n,e,t){var i,r;for(e=48;t--)B9[t]=t-48<<24>>24;for(i=70;i>=65;i--)B9[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)B9[r]=r-97+10<<24>>24;for(c=0;c<10;c++)SO[c]=48+c&ui;for(n=10;n<=15;n++)SO[n]=65+n-10&ui}function EAe(n,e){e.Ug("Process graph bounds",1),U(n,(pt(),rq),a7(O$(Ub(new Tn(null,new In(n.b,16)),new r4n)))),U(n,cq,a7(O$(Ub(new Tn(null,new In(n.b,16)),new c4n)))),U(n,vln,a7(I$(Ub(new Tn(null,new In(n.b,16)),new u4n)))),U(n,kln,a7(I$(Ub(new Tn(null,new In(n.b,16)),new o4n)))),e.Vg()}function CAe(n){var e,t,i,r,c;r=u(v(n,(cn(),xd)),21),c=u(v(n,kI),21),t=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),e=new rr(t),r.Hc((go(),Qw))&&(i=u(v(n,Ev),8),c.Hc((io(),_v))&&(i.a<=0&&(i.a=20),i.b<=0&&(i.b=20)),e.a=y.Math.max(t.a,i.a),e.b=y.Math.max(t.b,i.b)),on(un(v(n,SH)))||nIe(n,t,e)}function MAe(n,e){var t,i,r,c;for(c=uc(e,(en(),ae)).Kc();c.Ob();)i=u(c.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&qs(Ls(Ds(Ns(Os(new hs,0),.1),n.i[e.p].d),n.i[t.p].a));for(r=uc(e,Xn).Kc();r.Ob();)i=u(r.Pb(),12),t=u(v(i,(W(),Xu)),10),t&&qs(Ls(Ds(Ns(Os(new hs,0),.1),n.i[t.p].d),n.i[e.p].a))}function yF(n){var e,t,i,r,c,s;if(!n.c){if(s=new kvn,e=N9,c=e.a.zc(n,e),c==null){for(i=new ne(Sc(n));i.e!=i.i.gc();)t=u(ue(i),89),r=BA(t),D(r,90)&&Bt(s,yF(u(r,29))),ve(s,t);e.a.Bc(n)!=null,e.a.gc()==0}k8e(s),ew(s),n.c=new pg((u(L(H((G1(),Hn).o),15),19),s.i),s.g),Zu(n).b&=-33}return n.c}function gen(n){var e;if(n.c!=10)throw M(new Le($e((Ie(),qS))));switch(e=n.a,e){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw M(new Le($e((Ie(),is))))}return e}function $qn(n){var e,t,i,r,c;if(n.l==0&&n.m==0&&n.h==0)return"0";if(n.h==Ty&&n.m==0&&n.l==0)return"-9223372036854775808";if(n.h>>19)return"-"+$qn(tm(n));for(t=n,i="";!(t.l==0&&t.m==0&&t.h==0);){if(r=QN(QA),t=Jen(t,r,!0),e=""+cEn(wa),!(t.l==0&&t.m==0&&t.h==0))for(c=9-e.length;c>0;c--)e="0"+e;i=e+i}return i}function TAe(n){var e,t,i,r,c,s,f;for(e=!1,t=0,r=new C(n.d.b);r.a=n.a||!YZ(e,t))return-1;if(N4(u(i.Kb(e),20)))return 1;for(r=0,s=u(i.Kb(e),20).Kc();s.Ob();)if(c=u(s.Pb(),18),h=c.c.i==e?c.d.i:c.c.i,f=pen(n,h,t,i),f==-1||(r=y.Math.max(r,f),r>n.c-1))return-1;return r+1}function xqn(n,e){var t,i,r,c,s,f;if(x(e)===x(n))return!0;if(!D(e,15)||(i=u(e,15),f=n.gc(),i.gc()!=f))return!1;if(s=i.Kc(),n.Yi()){for(t=0;t0){if(n._j(),e!=null){for(c=0;c>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw M(new th("Invalid hexadecimal"))}}function NA(){NA=F,eon=new ag("SPIRAL",0),Qun=new ag("LINE_BY_LINE",1),Yun=new ag("MANHATTAN",2),Jun=new ag("JITTER",3),f_=new ag("QUADRANTS_LINE_BY_LINE",4),non=new ag("QUADRANTS_MANHATTAN",5),Zun=new ag("QUADRANTS_JITTER",6),Wun=new ag("COMBINE_LINE_BY_LINE_MANHATTAN",7),Vun=new ag("COMBINE_JITTER_MANHATTAN",8)}function Bqn(n,e,t,i){var r,c,s,f,h,l;for(h=zx(n,t),l=zx(e,t),r=!1;h&&l&&(i||E7e(h,l,t));)s=zx(h,t),f=zx(l,t),fk(e),fk(n),c=h.c,XF(h,!1),XF(l,!1),t?(uw(e,l.p,c),e.p=l.p,uw(n,h.p+1,c),n.p=h.p):(uw(n,h.p,c),n.p=h.p,uw(e,l.p+1,c),e.p=l.p),$i(h,null),$i(l,null),h=s,l=f,r=!0;return r}function Rqn(n){switch(n.g){case 0:return new Y5n;case 1:return new J5n;case 3:return new dCn;case 4:return new Xpn;case 5:return new _An;case 6:return new Q5n;case 2:return new W5n;case 7:return new q5n;case 8:return new G5n;default:throw M(new Gn("No implementation is available for the layerer "+(n.f!=null?n.f:""+n.g)))}}function DAe(n,e,t,i){var r,c,s,f,h;for(r=!1,c=!1,f=new C(i.j);f.a=e.length)throw M(new Ir("Greedy SwitchDecider: Free layer not in graph."));this.c=e[n],this.e=new D7(i),T$(this.e,this.c,(en(),Wn)),this.i=new D7(i),T$(this.i,this.c,Zn),this.f=new rPn(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(Vn(),Zt),this.a&&zje(this,n,e.length)}function _qn(n,e){var t,i,r,c,s,f;c=!n.B.Hc((io(),cE)),s=n.B.Hc(bU),n.a=new ABn(s,c,n.c),n.n&&WW(n.a.n,n.n),mD(n.g,(wf(),Wc),n.a),e||(i=new E5(1,c,n.c),i.n.a=n.k,Pp(n.p,(en(),Xn),i),r=new E5(1,c,n.c),r.n.d=n.k,Pp(n.p,ae,r),f=new E5(0,c,n.c),f.n.c=n.k,Pp(n.p,Wn,f),t=new E5(0,c,n.c),t.n.b=n.k,Pp(n.p,Zn,t))}function NAe(n){var e,t,i;switch(e=u(v(n.d,(cn(),$l)),223),e.g){case 2:t=jLe(n);break;case 3:t=(i=new Z,qt(ut(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new ipn),new rpn),new cpn),new U2n),new E7n(i)),i);break;default:throw M(new Or("Compaction not supported for "+e+" edges."))}UIe(n,t),qi(new qa(n.g),new y7n(n))}function $Ae(n,e){var t,i,r,c,s,f,h;if(e.Ug("Process directions",1),t=u(v(n,(lc(),vb)),88),t!=(ci(),Wf))for(r=ge(n.b,0);r.b!=r.d.c;){switch(i=u(be(r),40),f=u(v(i,(pt(),$j)),17).a,h=u(v(i,xj),17).a,t.g){case 4:h*=-1;break;case 1:c=f,f=h,h=c;break;case 2:s=f,f=-h,h=s}U(i,$j,Y(f)),U(i,xj,Y(h))}e.Vg()}function xAe(n,e){var t;return t=new xO,e&&Ur(t,u(ee(n.a,oE),96)),D(e,422)&&Ur(t,u(ee(n.a,sE),96)),D(e,366)?(Ur(t,u(ee(n.a,Ar),96)),t):(D(e,84)&&Ur(t,u(ee(n.a,he),96)),D(e,207)?(Ur(t,u(ee(n.a,Ye),96)),t):D(e,193)?(Ur(t,u(ee(n.a,Qu),96)),t):(D(e,326)&&Ur(t,u(ee(n.a,Vt),96)),t))}function FAe(n){var e,t,i,r,c,s,f,h;for(h=new yLn,f=new C(n.a);f.a0&&e=0)return!1;if(e.p=t.b,nn(t.e,e),r==(Vn(),Mi)||r==_c){for(s=new C(e.j);s.an.d[f.p]&&(t+=SJ(n.b,c),W1(n.a,Y(c)))):++s;for(t+=n.b.d*s;!t6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function Qqn(n){var e,t,i,r,c,s;return c=0,e=gs(n),e.kk()&&(c|=4),n.Bb&$u&&(c|=2),D(n,102)?(t=u(n,19),r=br(t),t.Bb&kc&&(c|=32),r&&(se(Gb(r)),c|=8,s=r.t,(s>1||s==-1)&&(c|=16),r.Bb&kc&&(c|=64)),t.Bb&hr&&(c|=Tw),c|=Gs):D(e,469)?c|=512:(i=e.kk(),i&&i.i&1&&(c|=256)),n.Bb&512&&(c|=128),c}function WAe(n,e){var t;return n.f==AU?(t=y0(Lr((Du(),zi),e)),n.e?t==4&&e!=(n3(),_3)&&e!=(n3(),K3)&&e!=(n3(),SU)&&e!=(n3(),PU):t==2):n.d&&(n.d.Hc(e)||n.d.Hc($p(Lr((Du(),zi),e)))||n.d.Hc(Qg((Du(),zi),n.b,e)))?!0:n.f&&ren((Du(),n.f),q7(Lr(zi,e)))?(t=y0(Lr(zi,e)),n.e?t==4:t==2):!1}function JAe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(g=-1,p=0,l=n,a=0,d=l.length;a0&&++p;++g}return p}function QAe(n,e,t,i){var r,c,s,f,h,l,a,d;return s=u(z(t,(He(),N3)),8),h=s.a,a=s.b+n,r=y.Math.atan2(a,h),r<0&&(r+=Cd),r+=e,r>Cd&&(r-=Cd),f=u(z(i,N3),8),l=f.a,d=f.b+n,c=y.Math.atan2(d,l),c<0&&(c+=Cd),c+=e,c>Cd&&(c-=Cd),Tf(),Ks(1e-10),y.Math.abs(r-c)<=1e-10||r==c||isNaN(r)&&isNaN(c)?0:rc?1:s0(isNaN(r),isNaN(c))}function CF(n){var e,t,i,r,c,s,f;for(f=new de,i=new C(n.a.b);i.a=n.o)throw M(new YG);f=e>>5,s=e&31,c=Bs(1,Ae(Bs(s,1))),r?n.n[t][f]=lf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c)),c=Bs(c,1),i?n.n[t][f]=lf(n.n[t][f],c):n.n[t][f]=vi(n.n[t][f],WV(c))}catch(h){throw h=It(h),D(h,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(h)}}function nSe(n,e,t,i){var r,c,s,f,h,l,a,d,g;for(g=new Ul(new z7n(n)),f=A(T(Qh,1),b1,10,0,[e,t]),h=0,l=f.length;h0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Re(Re((e.a+=' "',e),i),'"'))),Re(t0(Re(t0(Re(t0(Re(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function Yqn(n){var e,t,i;return n.Db&64?iF(n):(e=new mo(Mcn),t=n.k,t?Re(Re((e.a+=' "',e),t),'"'):(!n.n&&(n.n=new q(Ar,n,1,7)),n.n.i>0&&(i=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!i||Re(Re((e.a+=' "',e),i),'"'))),Re(t0(Re(t0(Re(t0(Re(t0((e.a+=" (",e),n.i),","),n.j)," | "),n.g),","),n.f),")"),e.a)}function iSe(n,e){var t,i,r,c,s;for(e==(a5(),XH)&&Yk(u(ot(n.a,(ow(),gj)),15)),r=u(ot(n.a,(ow(),gj)),15).Kc();r.Ob();)switch(i=u(r.Pb(),105),t=u(sn(i.j,0),113).d.j,c=new _u(i.j),Yt(c,new apn),e.g){case 2:Qx(n,c,t,(D0(),va),1);break;case 1:case 0:s=qMe(c),Qx(n,new Jl(c,0,s),t,(D0(),va),0),Qx(n,new Jl(c,s,c.c.length),t,va,1)}}function TF(n,e){var t,i,r,c,s,f,h;if(e==null||e.length==0)return null;if(r=u(Nc(n.a,e),143),!r){for(i=(f=new ol(n.b).a.vc().Kc(),new Sb(f));i.a.Ob();)if(t=(c=u(i.a.Pb(),44),u(c.md(),143)),s=t.c,h=e.length,An(s.substr(s.length-h,h),e)&&(e.length==s.length||Xi(s,s.length-e.length-1)==46)){if(r)return null;r=t}r&&Dr(n.a,e,r)}return r}function rSe(n,e){var t,i,r,c;return t=new Tbn,i=u(Wr(_r(new Tn(null,new In(n.f,16)),t),Wb(new Y2,new Z2,new np,new ep,A(T(xr,1),G,108,0,[(Gu(),Aw),Yr]))),21),r=i.gc(),i=u(Wr(_r(new Tn(null,new In(e.f,16)),t),Wb(new Y2,new Z2,new np,new ep,A(T(xr,1),G,108,0,[Aw,Yr]))),21),c=i.gc(),rr.p?(gi(c,ae),c.d&&(f=c.o.b,e=c.a.b,c.a.b=f-e)):c.j==ae&&r.p>n.p&&(gi(c,Xn),c.d&&(f=c.o.b,e=c.a.b,c.a.b=-(f-e)));break}return r}function fy(n,e,t,i,r){var c,s,f,h,l,a,d;if(!(D(e,207)||D(e,366)||D(e,193)))throw M(new Gn("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return s=n.a/2,h=e.i+i-s,a=e.j+r-s,l=h+e.g+n.a,d=a+e.f+n.a,c=new Mu,Fe(c,new V(h,a)),Fe(c,new V(h,d)),Fe(c,new V(l,d)),Fe(c,new V(l,a)),f=new bF(c),Ur(f,e),t&&Ve(n.b,e,f),f}function Sm(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(c=new V(e,t),a=new C(n.a);a.a1,f&&(i=new V(r,t.b),Fe(e.a,i)),r5(e.a,A(T(Ei,1),J,8,0,[g,d]))}function ps(){ps=F,AI=new Lb(kh,0),Sj=new Lb("NIKOLOV",1),Pj=new Lb("NIKOLOV_PIXEL",2),Fhn=new Lb("NIKOLOV_IMPROVED",3),Bhn=new Lb("NIKOLOV_IMPROVED_PIXEL",4),xhn=new Lb("DUMMYNODE_PERCENTAGE",5),Rhn=new Lb("NODECOUNT_PERCENTAGE",6),SI=new Lb("NO_BOUNDARY",7),pb=new Lb("MODEL_ORDER_LEFT_TO_RIGHT",8),Uw=new Lb("MODEL_ORDER_RIGHT_TO_LEFT",9)}function bSe(n){var e,t,i,r,c;for(i=n.length,e=new i6,c=0;c=40,s&&wPe(n),CIe(n),zTe(n),t=pBn(n),i=0;t&&i0&&Fe(n.f,c)):(n.c[s]-=l+1,n.c[s]<=0&&n.a[s]>0&&Fe(n.e,c))))}function lUn(n,e,t,i){var r,c,s,f,h,l,a;for(h=new V(t,i),mi(h,u(v(e,(pt(),Dv)),8)),a=ge(e.b,0);a.b!=a.d.c;)l=u(be(a),40),tt(l.e,h),Fe(n.b,l);for(f=u(Wr(uJ(new Tn(null,new In(e.a,16))),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15).Kc();f.Ob();){for(s=u(f.Pb(),65),c=ge(s.a,0);c.b!=c.d.c;)r=u(be(c),8),r.a+=h.a,r.b+=h.b;Fe(n.a,s)}}function Den(n,e){var t,i,r,c;if(0<(D(n,16)?u(n,16).gc():wl(n.Kc()))){if(r=e,1=0&&hc*2?(a=new hT(d),l=Su(s)/ao(s),h=QF(a,e,new up,t,i,r,l),tt(ff(a.e),h),d.c.length=0,c=0,Kn(d.c,a),Kn(d.c,s),c=Su(a)*ao(a)+Su(s)*ao(s)):(Kn(d.c,s),c+=Su(s)*ao(s));return d}function dUn(n,e){var t,i,r,c,s,f;if(f=u(v(e,(cn(),Kt)),101),f==(Oi(),tl)||f==qc)for(r=new V(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,s=new C(n.a);s.at?e:t;l<=d;++l)l==t?f=i++:(c=r[l],a=m.am(c.Lk()),l==e&&(h=l==d&&!a?i-1:i),a&&++i);return g=u(k5(n,e,t),76),f!=h&&t4(n,new ck(n.e,7,s,Y(f),p.md(),h)),g}}else return u(lF(n,e,t),76);return u(k5(n,e,t),76)}function NSe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Port order processing",1),h=u(v(n,(cn(),whn)),430),i=new C(n.b);i.a=0&&(f=S7e(n,s),!(f&&(l<22?h.l|=1<>>1,s.m=a>>>1|(d&1)<<21,s.l=g>>>1|(a&1)<<21,--l;return t&&H$(h),c&&(i?(wa=tm(n),r&&(wa=Yxn(wa,(R4(),lun)))):wa=Yc(n.l,n.m,n.h)),h}function FSe(n,e){var t,i,r,c,s,f,h,l,a,d;for(l=n.e[e.c.p][e.p]+1,h=e.c.a.c.length+1,f=new C(n.a);f.a0&&(zn(0,n.length),n.charCodeAt(0)==45||(zn(0,n.length),n.charCodeAt(0)==43))?1:0,i=s;it)throw M(new th(V0+n+'"'));return f}function BSe(n){var e,t,i,r,c,s,f;for(s=new Ct,c=new C(n.a);c.a1)&&e==1&&u(n.a[n.b],10).k==(Vn(),Ac)?t3(u(n.a[n.b],10),(To(),nl)):i&&(!t||(n.c-n.b&n.a.length-1)>1)&&e==1&&u(n.a[n.c-1&n.a.length-1],10).k==(Vn(),Ac)?t3(u(n.a[n.c-1&n.a.length-1],10),(To(),Aa)):(n.c-n.b&n.a.length-1)==2?(t3(u(l5(n),10),(To(),nl)),t3(u(l5(n),10),Aa)):dMe(n,r),TJ(n)}function _Se(n,e,t){var i,r,c,s,f;for(c=0,r=new ne((!n.a&&(n.a=new q(Ye,n,10,11)),n.a));r.e!=r.i.gc();)i=u(ue(r),27),s="",(!i.n&&(i.n=new q(Ar,i,1,7)),i.n).i==0||(s=u(L((!i.n&&(i.n=new q(Ar,i,1,7)),i.n),0),135).a),f=new q$(c++,e,s),Ur(f,i),U(f,(pt(),u9),i),f.e.b=i.j+i.f/2,f.f.a=y.Math.max(i.g,1),f.e.a=i.i+i.g/2,f.f.b=y.Math.max(i.f,1),Fe(e.b,f),Vc(t.f,i,f)}function HSe(n){var e,t,i,r,c;i=u(v(n,(W(),st)),27),c=u(z(i,(cn(),xd)),181).Hc((go(),Gd)),n.e||(r=u(v(n,Hc),21),e=new V(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((pr(),cs))?(ht(i,Kt,(Oi(),qc)),G0(i,e.a,e.b,!1,!0)):on(un(z(i,SH)))||G0(i,e.a,e.b,!0,!0)),c?ht(i,xd,jn(Gd)):ht(i,xd,(t=u(of(S9),9),new _o(t,u(xs(t,t.length),9),0)))}function Len(n,e,t){var i,r,c,s;if(e[0]>=n.length)return t.o=0,!0;switch(Xi(n,e[0])){case 43:r=1;break;case 45:r=-1;break;default:return t.o=0,!0}if(++e[0],c=e[0],s=yA(n,e),s==0&&e[0]==c)return!1;if(e[0]f&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.c.i,t)));Dn(),Yt(a,n.c),b0(n.b,h.p,a)}}function zSe(n,e){var t,i,r,c,s,f,h,l,a;for(s=new C(e.b);s.af&&(f=r,a.c.length=0),r==f&&nn(a,new bi(t.d.i,t)));Dn(),Yt(a,n.c),b0(n.f,h.p,a)}}function XSe(n,e){var t,i,r,c,s,f,h,l;if(l=un(v(e,(lc(),Ire))),l==null||(Jn(l),l)){for(mCe(n,e),r=new Z,h=ge(e.b,0);h.b!=h.d.c;)s=u(be(h),40),t=knn(n,s,null),t&&(Ur(t,e),Kn(r.c,t));if(n.a=null,n.b=null,r.c.length>1)for(i=new C(r);i.a=0&&f!=t&&(c=new Ci(n,1,f,s,null),i?i.nj(c):i=c),t>=0&&(c=new Ci(n,1,t,f==t?s:null,e),i?i.nj(c):i=c)),i}function gUn(n){var e,t,i;if(n.b==null){if(i=new Hl,n.i!=null&&(Er(i,n.i),i.a+=":"),n.f&256){for(n.f&256&&n.a!=null&&(lge(n.i)||(i.a+="//"),Er(i,n.a)),n.d!=null&&(i.a+="/",Er(i,n.d)),n.f&16&&(i.a+="/"),e=0,t=n.j.length;eg?!1:(d=(h=G5(i,g,!1),h.a),a+f+d<=e.b&&(uk(t,c-t.s),t.c=!0,uk(i,c-t.s),Hk(i,t.s,t.t+t.d+f),i.k=!0,_Q(t.q,i),p=!0,r&&(wT(e,i),i.j=e,n.c.length>s&&(Gk((Ln(s,n.c.length),u(n.c[s],186)),i),(Ln(s,n.c.length),u(n.c[s],186)).a.c.length==0&&Yl(n,s)))),p)}function nPe(n,e){var t,i,r,c,s,f;if(e.Ug("Partition midprocessing",1),r=new C0,qt(ut(new Tn(null,new In(n.a,16)),new qgn),new h7n(r)),r.d!=0){for(f=u(Wr(fJ((c=r.i,new Tn(null,(c||(r.i=new Mg(r,r.c))).Nc()))),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),i=f.Kc(),t=u(i.Pb(),17);i.Ob();)s=u(i.Pb(),17),zMe(u(ot(r,t),21),u(ot(r,s),21)),t=s;e.Vg()}}function vUn(n,e,t){var i,r,c,s,f,h,l,a;if(e.p==0){for(e.p=1,s=t,s||(r=new Z,c=(i=u(of(lr),9),new _o(i,u(xs(i,i.length),9),0)),s=new bi(r,c)),u(s.a,15).Fc(e),e.k==(Vn(),Zt)&&u(s.b,21).Fc(u(v(e,(W(),gc)),64)),h=new C(e.j);h.a0){if(r=u(n.Ab.g,2033),e==null){for(c=0;ct.s&&fs)return en(),Zn;break;case 4:case 3:if(a<0)return en(),Xn;if(a+t>c)return en(),ae}return h=(l+f/2)/s,i=(a+t/2)/c,h+i<=1&&h-i<=0?(en(),Wn):h+i>=1&&h-i>=0?(en(),Zn):i<.5?(en(),Xn):(en(),ae)}function cPe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=!1,a=$(R(v(e,(cn(),gb)))),m=fa*a,r=new C(e.b);r.ah+m&&(k=d.g+g.g,g.a=(g.g*g.a+d.g*d.a)/k,g.g=k,d.f=g,t=!0)),c=f,d=g;return t}function EUn(n,e,t,i,r,c,s){var f,h,l,a,d,g;for(g=new mp,l=e.Kc();l.Ob();)for(f=u(l.Pb(),853),d=new C(f.Rf());d.a0?f.a?(l=f.b.Mf().b,r>l&&(n.v||f.c.d.c.length==1?(s=(r-l)/2,f.d.d=s,f.d.a=s):(t=u(sn(f.c.d,0),187).Mf().b,i=(t-l)/2,f.d.d=y.Math.max(0,i),f.d.a=r-i-l))):f.d.a=n.t+r:K6(n.u)&&(c=tnn(f.b),c.d<0&&(f.d.d=-c.d),c.d+c.a>f.b.Mf().b&&(f.d.a=c.d+c.a-f.b.Mf().b))}function Us(){Us=F,k3=new Ni((He(),Jj),Y(1)),yP=new Ni(qd,80),tZn=new Ni(Uan,5),zYn=new Ni(x2,Gm),nZn=new Ni(fU,Y(1)),eZn=new Ni(hU,(_n(),!0)),mon=new f0(50),YYn=new Ni(C1,mon),won=Vj,von=v9,XYn=new Ni(Zq,!1),pon=Wj,JYn=Vw,QYn=Ta,WYn=Hd,VYn=K2,ZYn=Ww,gon=(ann(),RYn),y_=qYn,kP=BYn,k_=KYn,kon=HYn,cZn=k9,uZn=cO,rZn=Qj,iZn=rO,yon=(Gp(),Yw),new Ni(x3,yon)}function sPe(n,e){var t;switch(bk(n)){case 6:return Ai(e);case 7:return $b(e);case 8:return Nb(e);case 3:return Array.isArray(e)&&(t=bk(e),!(t>=14&&t<=16));case 11:return e!=null&&typeof e===eB;case 12:return e!=null&&(typeof e===vy||typeof e==eB);case 0:return Tx(e,n.__elementTypeId$);case 2:return uN(e)&&e.Tm!==Q2;case 1:return uN(e)&&e.Tm!==Q2||Tx(e,n.__elementTypeId$);default:return!0}}function CUn(n,e){var t,i,r,c;return i=y.Math.min(y.Math.abs(n.c-(e.c+e.b)),y.Math.abs(n.c+n.b-e.c)),c=y.Math.min(y.Math.abs(n.d-(e.d+e.a)),y.Math.abs(n.d+n.a-e.d)),t=y.Math.abs(n.c+n.b/2-(e.c+e.b/2)),t>n.b/2+e.b/2||(r=y.Math.abs(n.d+n.a/2-(e.d+e.a/2)),r>n.a/2+e.a/2)?1:t==0&&r==0?0:t==0?c/r+1:r==0?i/t+1:y.Math.min(i/t,c/r)+1}function fPe(n,e){var t,i,r,c,s,f,h;for(c=0,f=0,h=0,r=new C(n.f.e);r.a0&&n.d!=(t5(),C_)&&(f+=s*(i.d.a+n.a[e.a][i.a]*(e.d.a-i.d.a)/t)),t>0&&n.d!=(t5(),j_)&&(h+=s*(i.d.b+n.a[e.a][i.a]*(e.d.b-i.d.b)/t)));switch(n.d.g){case 1:return new V(f/c,e.d.b);case 2:return new V(e.d.a,h/c);default:return new V(f/c,h/c)}}function MUn(n){var e,t,i,r,c,s;for(t=(!n.a&&(n.a=new ti(xo,n,5)),n.a).i+2,s=new Gc(t),nn(s,new V(n.j,n.k)),qt(new Tn(null,(!n.a&&(n.a=new ti(xo,n,5)),new In(n.a,16))),new xkn(s)),nn(s,new V(n.b,n.c)),e=1;e0&&(Tk(h,!1,(ci(),Br)),Tk(h,!0,Xr)),nu(e.g,new RCn(n,t)),Ve(n.g,e,t)}function SUn(){SUn=F;var n;for(vun=A(T(ye,1),_e,28,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),JK=K(ye,_e,28,37,15,1),gQn=A(T(ye,1),_e,28,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),kun=K(Fa,SB,28,37,14,1),n=2;n<=36;n++)JK[n]=wi(y.Math.pow(n,vun[n])),kun[n]=Xk(Ey,JK[n])}function hPe(n){var e;if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));return e=new Mu,Ck(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84))&&Bi(e,gzn(n,Ck(u(L((!n.b&&(n.b=new Nn(he,n,4,7)),n.b),0),84)),!1)),Ck(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84))&&Bi(e,gzn(n,Ck(u(L((!n.c&&(n.c=new Nn(he,n,5,8)),n.c),0),84)),!0)),e}function PUn(n,e){var t,i,r,c,s;for(e.d?r=n.a.c==(fh(),mb)?ji(e.b):Qt(e.b):r=n.a.c==(fh(),y1)?ji(e.b):Qt(e.b),c=!1,i=new ie(ce(r.a.Kc(),new En));pe(i);)if(t=u(fe(i),18),s=on(n.a.f[n.a.g[e.b.p].p]),!(!s&&!fr(t)&&t.c.i.c==t.d.i.c)&&!(on(n.a.n[n.a.g[e.b.p].p])||on(n.a.n[n.a.g[e.b.p].p]))&&(c=!0,sf(n.b,n.a.g[h7e(t,e.b).p])))return e.c=!0,e.a=t,e;return e.c=c,e.a=null,e}function $en(n,e,t){var i,r,c,s,f,h,l;if(i=t.gc(),i==0)return!1;if(n.Pj())if(h=n.Qj(),UY(n,e,t),s=i==1?n.Ij(3,null,t.Kc().Pb(),e,h):n.Ij(5,null,t,e,h),n.Mj()){for(f=i<100?null:new F1(i),c=e+i,r=e;r0){for(s=0;s>16==-15&&n.Cb.Yh()&&h$(new c$(n.Cb,9,13,t,n.c,f1(no(u(n.Cb,62)),n))):D(n.Cb,90)&&n.Db>>16==-23&&n.Cb.Yh()&&(e=n.c,D(e,90)||(e=(On(),Is)),D(t,90)||(t=(On(),Is)),h$(new c$(n.Cb,9,10,t,e,f1(Sc(u(n.Cb,29)),n)))))),n.c}function dPe(n,e,t){var i,r,c,s,f,h,l,a,d;for(t.Ug("Hyperedge merging",1),FCe(n,e),h=new xi(e.b,0);h.b0,f=HT(e,c),VX(t?f.b:f.g,e),xg(f).c.length==1&&xt(i,f,i.c.b,i.c),r=new bi(c,e),W1(n.o,r),du(n.e.a,c))}function xUn(n,e){var t,i,r,c,s,f,h;return i=y.Math.abs(gM(n.b).a-gM(e.b).a),f=y.Math.abs(gM(n.b).b-gM(e.b).b),r=0,h=0,t=1,s=1,i>n.b.b/2+e.b.b/2&&(r=y.Math.min(y.Math.abs(n.b.c-(e.b.c+e.b.b)),y.Math.abs(n.b.c+n.b.b-e.b.c)),t=1-r/i),f>n.b.a/2+e.b.a/2&&(h=y.Math.min(y.Math.abs(n.b.d-(e.b.d+e.b.a)),y.Math.abs(n.b.d+n.b.a-e.b.d)),s=1-h/f),c=y.Math.min(t,s),(1-c)*y.Math.sqrt(i*i+f*f)}function gPe(n){var e,t,i,r;for(JF(n,n.e,n.f,(M0(),Ca),!0,n.c,n.i),JF(n,n.e,n.f,Ca,!1,n.c,n.i),JF(n,n.e,n.f,I2,!0,n.c,n.i),JF(n,n.e,n.f,I2,!1,n.c,n.i),aPe(n,n.c,n.e,n.f,n.i),i=new xi(n.i,0);i.b=65;t--)nh[t]=t-65<<24>>24;for(i=122;i>=97;i--)nh[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)nh[r]=r-48+52<<24>>24;for(nh[43]=62,nh[47]=63,c=0;c<=25;c++)O1[c]=65+c&ui;for(s=26,h=0;s<=51;++s,h++)O1[s]=97+h&ui;for(n=52,f=0;n<=61;++n,f++)O1[n]=48+f&ui;O1[62]=43,O1[63]=47}function FUn(n,e){var t,i,r,c,s,f;return r=xQ(n),f=xQ(e),r==f?n.e==e.e&&n.a<54&&e.a<54?n.fe.f?1:0:(i=n.e-e.e,t=(n.d>0?n.d:y.Math.floor((n.a-1)*Uzn)+1)-(e.d>0?e.d:y.Math.floor((e.a-1)*Uzn)+1),t>i+1?r:t0&&(s=Ig(s,VUn(i))),XBn(c,s))):rl&&(g=0,p+=h+e,h=0),Sm(s,g,p),t=y.Math.max(t,g+a.a),h=y.Math.max(h,a.b),g+=a.a+e;return new V(t+e,p+h+e)}function Ren(n,e){var t,i,r,c,s,f,h;if(!Sf(n))throw M(new Or(eWn));if(i=Sf(n),c=i.g,r=i.f,c<=0&&r<=0)return en(),sc;switch(f=n.i,h=n.j,e.g){case 2:case 1:if(f<0)return en(),Wn;if(f+n.g>c)return en(),Zn;break;case 4:case 3:if(h<0)return en(),Xn;if(h+n.f>r)return en(),ae}return s=(f+n.g/2)/c,t=(h+n.f/2)/r,s+t<=1&&s-t<=0?(en(),Wn):s+t>=1&&s-t>=0?(en(),Zn):t<.5?(en(),Xn):(en(),ae)}function vPe(n,e,t,i,r){var c,s;if(c=nr(vi(e[0],mr),vi(i[0],mr)),n[0]=Ae(c),c=w0(c,32),t>=r){for(s=1;s0&&(r.b[s++]=0,r.b[s++]=c.b[0]-1),e=1;e0&&(JO(h,h.d-r.d),r.c==(af(),Ea)&&ife(h,h.a-r.d),h.d<=0&&h.i>0&&xt(e,h,e.c.b,e.c)));for(c=new C(n.f);c.a0&&(SE(f,f.i-r.d),r.c==(af(),Ea)&&rfe(f,f.b-r.d),f.i<=0&&f.d>0&&xt(t,f,t.c.b,t.c)))}function jPe(n,e,t,i,r){var c,s,f,h,l,a,d,g,p;for(Dn(),Yt(n,new Jmn),s=$7(n),p=new Z,g=new Z,f=null,h=0;s.b!=0;)c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),163),!f||Su(f)*ao(f)/21&&(h>Su(f)*ao(f)/2||s.b==0)&&(d=new hT(g),a=Su(f)/ao(f),l=QF(d,e,new up,t,i,r,a),tt(ff(d.e),l),f=d,Kn(p.c,d),h=0,g.c.length=0));return hi(p,g),p}function Ic(n,e,t,i,r){fl();var c,s,f,h,l,a,d;if(PW(n,"src"),PW(t,"dest"),d=wo(n),h=wo(t),VV((d.i&4)!=0,"srcType is not an array"),VV((h.i&4)!=0,"destType is not an array"),a=d.c,s=h.c,VV(a.i&1?a==s:(s.i&1)==0,"Array types don't match"),s6e(n,e,t,i,r),!(a.i&1)&&d!=h)if(l=cd(n),c=cd(t),x(n)===x(t)&&ei;)$t(c,f,l[--e]);else for(f=i+r;i0),i.a.Xb(i.c=--i.b),d>g+h&&bo(i);for(s=new C(p);s.a0),i.a.Xb(i.c=--i.b)}}function CPe(){nt();var n,e,t,i,r,c;if(OU)return OU;for(n=new yo(4),gw(n,sa(FK,!0)),V5(n,sa("M",!0)),V5(n,sa("C",!0)),c=new yo(4),i=0;i<11;i++)xc(c,i,i);return e=new yo(4),gw(e,sa("M",!0)),xc(e,4448,4607),xc(e,65438,65439),r=new S6(2),pd(r,n),pd(r,K9),t=new S6(2),t.Jm(uM(c,sa("L",!0))),t.Jm(e),t=new Xb(3,t),t=new SW(r,t),OU=t,OU}function ww(n,e){var t,i,r,c,s,f,h,l;for(t=new RegExp(e,"g"),h=K(fn,J,2,0,6,1),i=0,l=n,c=null;;)if(f=t.exec(l),f==null||l==""){h[i]=l;break}else s=f.index,h[i]=(Fi(0,s,l.length),l.substr(0,s)),l=qo(l,s+f[0].length,l.length),t.lastIndex=0,c==l&&(h[i]=(Fi(0,1,l.length),l.substr(0,1)),l=(zn(1,l.length+1),l.substr(1))),c=l,++i;if(n.length>0){for(r=h.length;r>0&&h[r-1]=="";)--r;r0&&(d-=i[0]+n.c,i[0]+=n.c),i[2]>0&&(d-=i[2]+n.c),i[1]=y.Math.max(i[1],d),hM(n.a[1],t.c+e.b+i[0]-(i[1]-d)/2,i[1]);for(c=n.a,f=0,l=c.length;f0?(n.n.c.length-1)*n.i:0,i=new C(n.n);i.a1)for(i=ge(r,0);i.b!=i.d.c;)for(t=u(be(i),235),c=0,h=new C(t.e);h.a0&&(e[0]+=n.c,d-=e[0]),e[2]>0&&(d-=e[2]+n.c),e[1]=y.Math.max(e[1],d),lM(n.a[1],i.d+t.d+e[0]-(e[1]-d)/2,e[1]);else for(m=i.d+t.d,p=i.a-t.d-t.a,s=n.a,h=0,a=s.length;h0||x0(r.b.d,n.b.d+n.b.a)==0&&i.b<0||x0(r.b.d+r.b.a,n.b.d)==0&&i.b>0){f=0;break}}else f=y.Math.min(f,x_n(n,r,i));f=y.Math.min(f,_Un(n,c,f,i))}return f}function dy(n,e){var t,i,r,c,s,f,h;if(n.b<2)throw M(new Gn("The vector chain must contain at least a source and a target point."));for(r=(oe(n.b!=0),u(n.a.a.c,8)),j7(e,r.a,r.b),h=new kp((!e.a&&(e.a=new ti(xo,e,5)),e.a)),s=ge(n,1);s.a=0&&c!=t))throw M(new Gn(Vy));for(r=0,h=0;h$(Af(s.g,s.d[0]).a)?(oe(h.b>0),h.a.Xb(h.c=--h.b),Rb(h,s),r=!0):f.e&&f.e.gc()>0&&(c=(!f.e&&(f.e=new Z),f.e).Mc(e),l=(!f.e&&(f.e=new Z),f.e).Mc(t),(c||l)&&((!f.e&&(f.e=new Z),f.e).Fc(s),++s.c));r||Kn(i.c,s)}function OPe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S;return d=n.a.i+n.a.g/2,g=n.a.i+n.a.g/2,m=e.i+e.g/2,j=e.j+e.f/2,f=new V(m,j),l=u(z(e,(He(),N3)),8),l.a=l.a+d,l.b=l.b+g,c=(f.b-l.b)/(f.a-l.a),i=f.b-c*f.a,k=t.i+t.g/2,S=t.j+t.f/2,h=new V(k,S),a=u(z(t,N3),8),a.a=a.a+d,a.b=a.b+g,s=(h.b-a.b)/(h.a-a.a),r=h.b-s*h.a,p=(i-r)/(s-c),l.a>>0,"0"+e.toString(16)),i="\\x"+qo(t,t.length-2,t.length)):n>=hr?(t=(e=n>>>0,"0"+e.toString(16)),i="\\v"+qo(t,t.length-6,t.length)):i=""+String.fromCharCode(n&ui)}return i}function GUn(n){var e,t,i;if(mg(u(v(n,(cn(),Kt)),101)))for(t=new C(n.j);t.a=e.o&&t.f<=e.f||e.a*.5<=t.f&&e.a*1.5>=t.f){if(s=u(sn(e.n,e.n.c.length-1),209),s.e+s.d+t.g+r<=i&&(c=u(sn(e.n,e.n.c.length-1),209),c.f-n.f+t.f<=n.b||n.a.c.length==1))return xY(e,t),!0;if(e.s+t.g<=i&&(e.t+e.d+t.f+r<=n.b||n.a.c.length==1))return nn(e.b,t),f=u(sn(e.n,e.n.c.length-1),209),nn(e.n,new NM(e.s,f.f+f.a+e.i,e.i)),gZ(u(sn(e.n,e.n.c.length-1),209),t),RUn(e,t),!0}return!1}function XUn(n,e,t){var i,r,c,s;return n.Pj()?(r=null,c=n.Qj(),i=n.Ij(1,s=d$(n,e,t),t,e,c),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))?(s!=null&&(r=n.Oj(s,r)),r=n.Nj(t,r),n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)):(n.Tj()&&(r=n.Wj(s,t,r)),r?(r.nj(i),r.oj()):n.Jj(i)),s):(s=d$(n,e,t),n.Mj()&&!(n.Yi()&&s!=null?rt(s,t):x(s)===x(t))&&(r=null,s!=null&&(r=n.Oj(s,null)),r=n.Nj(t,r),r&&r.oj()),s)}function BPe(n,e){var t,i,r,c,s;if(e.Ug("Path-Like Graph Wrapping",1),n.b.c.length==0){e.Vg();return}if(r=new znn(n),s=(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)*r.f),t=s/(r.i==null&&(r.i=FQ(r,new VU)),$(r.i)),r.b>t){e.Vg();return}switch(u(v(n,(cn(),LH)),351).g){case 2:c=new JU;break;case 0:c=new XU;break;default:c=new QU}if(i=c.og(n,r),!c.pg())switch(u(v(n,jI),352).g){case 2:i=F_n(r,i);break;case 1:i=SKn(r,i)}NIe(n,r,i),e.Vg()}function H5(n,e){var t,i,r,c,s,f,h,l;e%=24,n.q.getHours()!=e&&(i=new y.Date(n.q.getTime()),i.setDate(i.getDate()+1),f=n.q.getTimezoneOffset()-i.getTimezoneOffset(),f>0&&(h=f/60|0,l=f%60,r=n.q.getDate(),t=n.q.getHours(),t+h>=24&&++r,c=new y.Date(n.q.getFullYear(),n.q.getMonth(),r,e+h,n.q.getMinutes()+l,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),s=n.q.getTime(),n.q.setTime(s+36e5),n.q.getHours()!=e&&n.q.setTime(s)}function RPe(n,e){var t,i,r,c;if(Y2e(n.d,n.e),n.c.a.$b(),$(R(v(e.j,(cn(),hI))))!=0||$(R(v(e.j,hI)))!=0)for(t=i2,x(v(e.j,Yh))!==x((lh(),k1))&&U(e.j,(W(),ka),(_n(),!0)),c=u(v(e.j,V8),17).a,r=0;rr&&++l,nn(s,(Ln(f+l,e.c.length),u(e.c[f+l],17))),h+=(Ln(f+l,e.c.length),u(e.c[f+l],17)).a-i,++t;t=j&&n.e[h.p]>m*n.b||O>=t*j)&&(Kn(g.c,f),f=new Z,Bi(s,c),c.a.$b(),l-=a,p=y.Math.max(p,l*n.b+k),l+=O,I=O,O=0,a=0,k=0);return new bi(p,g)}function $F(n){var e,t,i,r,c,s,f;if(!n.d){if(f=new jvn,e=N9,c=e.a.zc(n,e),c==null){for(i=new ne(Hr(n));i.e!=i.i.gc();)t=u(ue(i),29),Bt(f,$F(t));e.a.Bc(n)!=null,e.a.gc()==0}for(s=f.i,r=(!n.q&&(n.q=new q(Ss,n,11,10)),new ne(n.q));r.e!=r.i.gc();++s)u(ue(r),411);Bt(f,(!n.q&&(n.q=new q(Ss,n,11,10)),n.q)),ew(f),n.d=new pg((u(L(H((G1(),Hn).o),9),19),f.i),f.g),n.e=u(f.g,688),n.e==null&&(n.e=Joe),Zu(n).b&=-17}return n.d}function Om(n,e,t,i){var r,c,s,f,h,l;if(l=ru(n.e.Dh(),e),h=0,r=u(n.g,124),dr(),u(e,69).xk()){for(s=0;s1||m==-1)if(d=u(k,71),g=u(a,71),d.dc())g.$b();else for(s=!!br(e),c=0,f=n.a?d.Kc():d.Ii();f.Ob();)l=u(f.Pb(),58),r=u(Nf(n,l),58),r?(s?(h=g.dd(r),h==-1?g.Gi(c,r):c!=h&&g.Ui(c,r)):g.Gi(c,r),++c):n.b&&!s&&(g.Gi(c,l),++c);else k==null?a.Wb(null):(r=Nf(n,k),r==null?n.b&&!br(e)&&a.Wb(k):a.Wb(r))}function UPe(n,e){var t,i,r,c,s,f,h,l;for(t=new ogn,r=new ie(ce(ji(e).a.Kc(),new En));pe(r);)if(i=u(fe(r),18),!fr(i)&&(f=i.c.i,YZ(f,MP))){if(l=pen(n,f,MP,CP),l==-1)continue;t.b=y.Math.max(t.b,l),!t.a&&(t.a=new Z),nn(t.a,f)}for(s=new ie(ce(Qt(e).a.Kc(),new En));pe(s);)if(c=u(fe(s),18),!fr(c)&&(h=c.d.i,YZ(h,CP))){if(l=pen(n,h,CP,MP),l==-1)continue;t.d=y.Math.max(t.d,l),!t.c&&(t.c=new Z),nn(t.c,h)}return t}function GPe(n,e,t,i){var r,c,s,f,h,l,a;if(t.d.i!=e.i){for(r=new Tl(n),Ha(r,(Vn(),Mi)),U(r,(W(),st),t),U(r,(cn(),Kt),(Oi(),qc)),Kn(i.c,r),s=new Pc,ic(s,r),gi(s,(en(),Wn)),f=new Pc,ic(f,r),gi(f,Zn),a=t.d,Ii(t,s),c=new E0,Ur(c,t),U(c,Fr,null),Zi(c,f),Ii(c,a),l=new xi(t.b,0);l.b1e6)throw M(new _E("power of ten too big"));if(n<=et)return Fp(ry(m3[1],e),e);for(i=ry(m3[1],et),r=i,t=vc(n-et),e=wi(n%et);Ec(t,et)>0;)r=Ig(r,i),t=bs(t,et);for(r=Ig(r,ry(m3[1],e)),r=Fp(r,et),t=vc(n-et);Ec(t,et)>0;)r=Fp(r,et),t=bs(t,et);return r=Fp(r,e),r}function WUn(n){var e,t,i,r,c,s,f,h,l,a;for(h=new C(n.a);h.al&&i>l)a=f,l=$(e.p[f.p])+$(e.d[f.p])+f.o.b+f.d.a;else{r=!1,t._g()&&t.bh("bk node placement breaks on "+f+" which should have been after "+a);break}if(!r)break}return t._g()&&t.bh(e+" is feasible: "+r),r}function qen(n,e,t,i){var r,c,s,f,h,l,a,d,g;if(c=new Tl(n),Ha(c,(Vn(),_c)),U(c,(cn(),Kt),(Oi(),qc)),r=0,e){for(s=new Pc,U(s,(W(),st),e),U(c,st,e.i),gi(s,(en(),Wn)),ic(s,c),g=hh(e.e),l=g,a=0,d=l.length;a0){if(r<0&&a.a&&(r=h,c=l[0],i=0),r>=0){if(f=a.b,h==r&&(f-=i++,f==0))return 0;if(!ZGn(e,l,a,f,s)){h=r-1,l[0]=c;continue}}else if(r=-1,!ZGn(e,l,a,0,s))return 0}else{if(r=-1,Xi(a.c,0)==32){if(d=l[0],n$n(e,l),l[0]>d)continue}else if(Lge(e,a.c,l[0])){l[0]+=a.c.length;continue}return 0}return $De(s,t)?l[0]:0}function QPe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new dM(new B9n(t)),f=K(so,Xh,28,n.f.e.c.length,16,1),TW(f,f.length),t[e.a]=0,l=new C(n.f.e);l.a=0&&!Kg(n,a,d);)--d;r[a]=d}for(p=0;p=0&&!Kg(n,f,m);)--f;c[m]=f}for(h=0;he[g]&&gi[h]&&xA(n,h,g,!1,!0)}function Uen(n){var e,t,i,r,c,s,f,h;t=on(un(v(n,(Us(),XYn)))),c=n.a.c.d,f=n.a.d.d,t?(s=ch(mi(new V(f.a,f.b),c),.5),h=ch(Ki(n.e),.5),e=mi(tt(new V(c.a,c.b),s),h),ZX(n.d,e)):(r=$(R(v(n.a,tZn))),i=n.d,c.a>=f.a?c.b>=f.b?(i.a=f.a+(c.a-f.a)/2+r,i.b=f.b+(c.b-f.b)/2-r-n.e.b):(i.a=f.a+(c.a-f.a)/2+r,i.b=c.b+(f.b-c.b)/2+r):c.b>=f.b?(i.a=c.a+(f.a-c.a)/2+r,i.b=f.b+(c.b-f.b)/2+r):(i.a=c.a+(f.a-c.a)/2+r,i.b=c.b+(f.b-c.b)/2-r-n.e.b))}function U5(n){var e,t,i,r,c,s,f,h;if(!n.f){if(h=new iG,f=new iG,e=N9,s=e.a.zc(n,e),s==null){for(c=new ne(Hr(n));c.e!=c.i.gc();)r=u(ue(c),29),Bt(h,U5(r));e.a.Bc(n)!=null,e.a.gc()==0}for(i=(!n.s&&(n.s=new q(ku,n,21,17)),new ne(n.s));i.e!=i.i.gc();)t=u(ue(i),179),D(t,102)&&ve(f,u(t,19));ew(f),n.r=new _Sn(n,(u(L(H((G1(),Hn).o),6),19),f.i),f.g),Bt(h,n.r),ew(h),n.f=new pg((u(L(H(Hn.o),5),19),h.i),h.g),Zu(n).b&=-3}return n.f}function QUn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ka,jd),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new Bbn))),Q(n,jd,WB,rn(aon)),Q(n,jd,JB,rn(g_)),Q(n,jd,l3,rn(DYn)),Q(n,jd,W0,rn(lon)),Q(n,jd,Dtn,rn(xYn)),Q(n,jd,Ltn,rn($Yn)),Q(n,jd,Otn,rn(FYn)),Q(n,jd,Ntn,rn(NYn)),Q(n,jd,_tn,rn(LYn)),Q(n,jd,Htn,rn(w_)),Q(n,jd,qtn,rn(hon)),Q(n,jd,Utn,rn(pP))}function KA(){KA=F,Ddn=A(T(fs,1),gh,28,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),Toe=new RegExp(`[ +\r\f]+`);try{O9=A(T(LNe,1),Bn,2114,0,[new X9((kX(),zT("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",I7((KE(),KE(),T8))))),new X9(zT("yyyy-MM-dd'T'HH:mm:ss'.'SSS",I7(T8))),new X9(zT("yyyy-MM-dd'T'HH:mm:ss",I7(T8))),new X9(zT("yyyy-MM-dd'T'HH:mm",I7(T8))),new X9(zT("yyyy-MM-dd",I7(T8)))])}catch(n){if(n=It(n),!D(n,82))throw M(n)}}function ZPe(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=Cen(n,e),i==0&&on(un(v(e.j,(W(),ka)))))return 0;!on(un(v(e.j,(W(),ka))))&&!on(un(v(e.j,j2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,ka))),sy(n,e,r,!0),on(un(v(e.j,j2)))&&U(e.j,j2,(_n(),!1)),on(un(v(e.j,ka)))&&(U(e.j,ka,(_n(),!1)),U(e.j,j2,!0)),t=Cen(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=Cen(n,e)}while(c>t);return c}function YUn(n,e){var t,i,r,c;if(r=to(n.d,1)!=0,i=kA(n,e),i==0&&on(un(v(e.j,(W(),ka)))))return 0;!on(un(v(e.j,(W(),ka))))&&!on(un(v(e.j,j2)))||x(v(e.j,(cn(),Yh)))===x((lh(),k1))?e.c.mg(e.e,r):r=on(un(v(e.j,ka))),sy(n,e,r,!0),on(un(v(e.j,j2)))&&U(e.j,j2,(_n(),!1)),on(un(v(e.j,ka)))&&(U(e.j,ka,(_n(),!1)),U(e.j,j2,!0)),t=kA(n,e);do{if($Q(n),t==0)return 0;r=!r,c=t,sy(n,e,r,!1),t=kA(n,e)}while(c>t);return c}function Gen(n,e,t,i){var r,c,s,f,h,l,a,d,g;return h=mi(new V(t.a,t.b),n),l=h.a*e.b-h.b*e.a,a=e.a*i.b-e.b*i.a,d=(h.a*i.b-h.b*i.a)/a,g=l/a,a==0?l==0?(r=tt(new V(t.a,t.b),ch(new V(i.a,i.b),.5)),c=J1(n,r),s=J1(tt(new V(n.a,n.b),e),r),f=y.Math.sqrt(i.a*i.a+i.b*i.b)*.5,c=0&&d<=1&&g>=0&&g<=1?tt(new V(n.a,n.b),ch(new V(e.a,e.b),d)):null}function nIe(n,e,t){var i,r,c,s,f;if(i=u(v(n,(cn(),kH)),21),t.a>e.a&&(i.Hc((wd(),w9))?n.c.a+=(t.a-e.a)/2:i.Hc(g9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),m9))?n.c.b+=(t.b-e.b)/2:i.Hc(p9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(f=new C(n.a);f.ae.a&&(i.Hc((wd(),w9))?n.c.a+=(t.a-e.a)/2:i.Hc(g9)&&(n.c.a+=t.a-e.a)),t.b>e.b&&(i.Hc((wd(),m9))?n.c.b+=(t.b-e.b)/2:i.Hc(p9)&&(n.c.b+=t.b-e.b)),u(v(n,(W(),Hc)),21).Hc((pr(),cs))&&(t.a>e.a||t.b>e.b))for(s=new C(n.a);s.a0?n.i:0)>e&&h>0&&(c=0,s+=h+n.i,r=y.Math.max(r,g),i+=h+n.i,h=0,g=0,t&&(++d,nn(n.n,new NM(n.s,s,n.i))),f=0),g+=l.g+(f>0?n.i:0),h=y.Math.max(h,l.f),t&&gZ(u(sn(n.n,d),209),l),c+=l.g+(f>0?n.i:0),++f;return r=y.Math.max(r,g),i+=h,t&&(n.r=r,n.d=i,kZ(n.j)),new Ho(n.s,n.t,r,i)}function xF(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(n.b=!1,d=St,h=li,g=St,l=li,i=n.e.a.ec().Kc();i.Ob();)for(t=u(i.Pb(),272),r=t.a,d=y.Math.min(d,r.c),h=y.Math.max(h,r.c+r.b),g=y.Math.min(g,r.d),l=y.Math.max(l,r.d+r.a),s=new C(t.c);s.an.o.a&&(a=(h-n.o.a)/2,f.b=y.Math.max(f.b,a),f.c=y.Math.max(f.c,a))}}function rIe(n){var e,t,i,r,c,s,f,h;for(c=new XOn,$le(c,(qp(),due)),i=(r=S$(n,K(fn,J,2,0,6,1)),new zv(new Ku(new SD(n,r).b)));i.bf?1:-1:hY(n.a,e.a,c),r==-1)d=-h,a=s==h?ZN(e.a,f,n.a,c):e$(e.a,f,n.a,c);else if(d=s,s==h){if(r==0)return dh(),S8;a=ZN(n.a,c,e.a,f)}else a=e$(n.a,c,e.a,f);return l=new Ya(d,a.length,a),J6(l),l}function cIe(n,e){var t,i,r,c;if(c=$Un(e),!e.c&&(e.c=new q(Qu,e,9,9)),qt(new Tn(null,(!e.c&&(e.c=new q(Qu,e,9,9)),new In(e.c,16))),new H9n(c)),r=u(v(c,(W(),Hc)),21),QOe(e,r),r.Hc((pr(),cs)))for(i=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));i.e!=i.i.gc();)t=u(ue(i),123),TDe(n,e,c,t);return u(z(e,(cn(),xd)),181).gc()!=0&&Aqn(e,c),on(un(v(c,ahn)))&&r.Fc(eI),kt(c,Mj)&&xjn(new XY($(R(v(c,Mj)))),c),x(z(e,Bw))===x((jl(),M1))?JLe(n,e,c):NLe(n,e,c),c}function uIe(n){var e,t,i,r,c,s,f,h;for(r=new C(n.b);r.a0?qo(t.a,0,c-1):""):(Fi(0,c-1,n.length),n.substr(0,c-1)):t?t.a:n}function oIe(n,e){var t,i,r,c,s,f,h;for(e.Ug("Sort By Input Model "+v(n,(cn(),Yh)),1),r=0,i=new C(n.b);i.a=n.b.length?(c[r++]=s.b[i++],c[r++]=s.b[i++]):i>=s.b.length?(c[r++]=n.b[t++],c[r++]=n.b[t++]):s.b[i]0?n.i:0)),++e;for(IY(n.n,h),n.d=t,n.r=i,n.g=0,n.f=0,n.e=0,n.o=St,n.p=St,c=new C(n.b);c.a0&&(r=(!n.n&&(n.n=new q(Ar,n,1,7)),u(L(n.n,0),135)).a,!r||Re(Re((e.a+=' "',e),r),'"'))),t=(!n.b&&(n.b=new Nn(he,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new Nn(he,n,5,8)),n.c.i<=1))),t?e.a+=" [":e.a+=" ",Re(e,RX(new yD,new ne(n.b))),t&&(e.a+="]"),e.a+=iR,t&&(e.a+="["),Re(e,RX(new yD,new ne(n.c))),t&&(e.a+="]"),e.a)}function fIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn;for(_=n.c,X=e.c,t=qr(_.a,n,0),i=qr(X.a,e,0),O=u(F0(n,(gr(),Vu)).Kc().Pb(),12),kn=u(F0(n,Jc).Kc().Pb(),12),N=u(F0(e,Vu).Kc().Pb(),12),Fn=u(F0(e,Jc).Kc().Pb(),12),S=hh(O.e),tn=hh(kn.g),I=hh(N.e),yn=hh(Fn.g),uw(n,i,X),s=I,a=0,m=s.length;aa?new ed((af(),zw),t,e,l-a):l>0&&a>0&&(new ed((af(),zw),e,t,0),new ed(zw,t,e,0))),s)}function aIe(n,e,t){var i,r,c;for(n.a=new Z,c=ge(e.b,0);c.b!=c.d.c;){for(r=u(be(c),40);u(v(r,(lc(),Sh)),17).a>n.a.c.length-1;)nn(n.a,new bi(i2,Arn));i=u(v(r,Sh),17).a,t==(ci(),Br)||t==Xr?(r.e.a<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.a),r.e.a+r.f.a>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.a+r.f.a)):(r.e.b<$(R(u(sn(n.a,i),42).a))&&QO(u(sn(n.a,i),42),r.e.b),r.e.b+r.f.b>$(R(u(sn(n.a,i),42).b))&&YO(u(sn(n.a,i),42),r.e.b+r.f.b))}}function eGn(n,e,t,i){var r,c,s,f,h,l,a;if(c=KT(i),f=on(un(v(i,(cn(),uhn)))),(f||on(un(v(n,wI))))&&!mg(u(v(n,Kt),101)))r=zp(c),h=Nen(n,t,t==(gr(),Jc)?r:xk(r));else switch(h=new Pc,ic(h,n),e?(a=h.n,a.a=e.a-n.n.a,a.b=e.b-n.n.b,o_n(a,0,0,n.o.a,n.o.b),gi(h,jUn(h,c))):(r=zp(c),gi(h,t==(gr(),Jc)?r:xk(r))),s=u(v(i,(W(),Hc)),21),l=h.j,c.g){case 2:case 1:(l==(en(),Xn)||l==ae)&&s.Fc((pr(),v2));break;case 4:case 3:(l==(en(),Zn)||l==Wn)&&s.Fc((pr(),v2))}return h}function tGn(n,e){var t,i,r,c,s,f;for(s=new sd(new Ua(n.f.b).a);s.b;){if(c=L0(s),r=u(c.ld(),602),e==1){if(r.Af()!=(ci(),us)&&r.Af()!=Wf)continue}else if(r.Af()!=(ci(),Br)&&r.Af()!=Xr)continue;switch(i=u(u(c.md(),42).b,86),f=u(u(c.md(),42).a,194),t=f.c,r.Af().g){case 2:i.g.c=n.e.a,i.g.b=y.Math.max(1,i.g.b+t);break;case 1:i.g.c=i.g.c+t,i.g.b=y.Math.max(1,i.g.b-t);break;case 4:i.g.d=n.e.b,i.g.a=y.Math.max(1,i.g.a+t);break;case 3:i.g.d=i.g.d+t,i.g.a=y.Math.max(1,i.g.a-t)}}}function dIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(f=K(ye,_e,28,e.b.c.length,15,1),l=K(D_,G,273,e.b.c.length,0,1),h=K(Qh,b1,10,e.b.c.length,0,1),d=n.a,g=0,p=d.length;g0&&h[i]&&(m=jg(n.b,h[i],r)),k=y.Math.max(k,r.c.c.b+m);for(c=new C(a.e);c.a1)throw M(new Gn(Zy));h||(c=Fh(e,i.Kc().Pb()),s.Fc(c))}return JQ(n,pnn(n,e,t),s)}function HA(n,e,t){var i,r,c,s,f,h,l,a;if(Sl(n.e,e))h=(dr(),u(e,69).xk()?new eM(e,n):new k7(e,n)),jA(h.c,h.b),P6(h,u(t,16));else{for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s"}h!=null&&(e.a+=""+h)}else n.e?(f=n.e.zb,f!=null&&(e.a+=""+f)):(e.a+="?",n.b?(e.a+=" super ",_F(n.b,e)):n.f&&(e.a+=" extends ",_F(n.f,e)))}function vIe(n){n.b=null,n.a=null,n.o=null,n.q=null,n.v=null,n.w=null,n.B=null,n.p=null,n.Q=null,n.R=null,n.S=null,n.T=null,n.U=null,n.V=null,n.W=null,n.bb=null,n.eb=null,n.ab=null,n.H=null,n.db=null,n.c=null,n.d=null,n.f=null,n.n=null,n.r=null,n.s=null,n.u=null,n.G=null,n.J=null,n.e=null,n.j=null,n.i=null,n.g=null,n.k=null,n.t=null,n.F=null,n.I=null,n.L=null,n.M=null,n.O=null,n.P=null,n.$=null,n.N=null,n.Z=null,n.cb=null,n.K=null,n.D=null,n.A=null,n.C=null,n._=null,n.fb=null,n.X=null,n.Y=null,n.gb=!1,n.hb=!1}function kIe(n){var e,t,i,r;if(i=ZF((!n.c&&(n.c=J7(vc(n.f))),n.c),0),n.e==0||n.a==0&&n.f!=-1&&n.e<0)return i;if(e=xQ(n)<0?1:0,t=n.e,r=(i.length+1+y.Math.abs(wi(n.e)),new fg),e==1&&(r.a+="-"),n.e>0)if(t-=i.length-e,t>=0){for(r.a+="0.";t>Id.length;t-=Id.length)QSn(r,Id);$An(r,Id,wi(t)),Re(r,(zn(e,i.length+1),i.substr(e)))}else t=e-t,Re(r,qo(i,e,wi(t))),r.a+=".",Re(r,$W(i,wi(t)));else{for(Re(r,(zn(e,i.length+1),i.substr(e)));t<-Id.length;t+=Id.length)QSn(r,Id);$An(r,Id,wi(-t))}return r.a}function HF(n){var e,t,i,r,c,s,f,h,l;return!(n.k!=(Vn(),zt)||n.j.c.length<=1||(c=u(v(n,(cn(),Kt)),101),c==(Oi(),qc))||(r=(cw(),(n.q?n.q:(Dn(),Dn(),Wh))._b(db)?i=u(v(n,db),203):i=u(v(Hi(n),z8),203),i),r==TI)||!(r==P2||r==S2)&&(s=$(R(rw(n,X8))),e=u(v(n,Aj),140),!e&&(e=new mV(s,s,s,s)),l=uc(n,(en(),Wn)),h=e.d+e.a+(l.gc()-1)*s,h>n.o.b||(t=uc(n,Zn),f=e.d+e.a+(t.gc()-1)*s,f>n.o.b)))}function yIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;e.Ug("Orthogonal edge routing",1),l=$(R(v(n,(cn(),A2)))),t=$(R(v(n,M2))),i=$(R(v(n,Bd))),g=new lN(0,t),j=0,s=new xi(n.b,0),f=null,a=null,h=null,d=null;do a=s.b0?(p=(m-1)*t,f&&(p+=i),a&&(p+=i),pe||on(un(z(h,(Rf(),Kj)))))&&(r=0,c+=a.b+t,Kn(d.c,a),a=new dJ(c,t),i=new U$(0,a.f,a,t),wT(a,i),r=0),i.b.c.length==0||!on(un(z(At(h),(Rf(),Lq))))&&(h.f>=i.o&&h.f<=i.f||i.a*.5<=h.f&&i.a*1.5>=h.f)?xY(i,h):(s=new U$(i.s+i.r+t,a.f,a,t),wT(a,s),xY(s,h)),r=h.i+h.g;return Kn(d.c,a),d}function z5(n){var e,t,i,r;if(!(n.b==null||n.b.length<=2)&&!n.a){for(e=0,r=0;r=n.b[r+1])r+=2;else if(t0)for(i=new _u(u(ot(n.a,c),21)),Dn(),Yt(i,new LG(e)),r=new xi(c.b,0);r.b0&&i>=-6?i>=0?E7(c,t-wi(n.e),"."):(L$(c,e-1,e-1,"0."),E7(c,e+1,ws(Id,0,-wi(i)-1))):(t-e>=1&&(E7(c,e,"."),++t),E7(c,t,"E"),i>0&&E7(c,++t,"+"),E7(c,++t,""+_6(vc(i)))),n.g=c.a,n.g))}function OIe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn;i=$(R(v(e,(cn(),fhn)))),_=u(v(e,V8),17).a,g=4,r=3,X=20/_,p=!1,h=0,s=et;do{for(c=h!=1,d=h!=0,tn=0,j=n.a,I=0,N=j.length;I_)?(h=2,s=et):h==0?(h=1,s=tn):(h=0,s=tn)):(p=tn>=s||s-tn0?1:s0(isNaN(i),isNaN(0)))>=0^(Ks(jh),(y.Math.abs(f)<=jh||f==0||isNaN(f)&&isNaN(0)?0:f<0?-1:f>0?1:s0(isNaN(f),isNaN(0)))>=0)?y.Math.max(f,i):(Ks(jh),(y.Math.abs(i)<=jh||i==0||isNaN(i)&&isNaN(0)?0:i<0?-1:i>0?1:s0(isNaN(i),isNaN(0)))>0?y.Math.sqrt(f*f+i*i):-y.Math.sqrt(f*f+i*i))}function pd(n,e){var t,i,r,c,s,f;if(e){if(!n.a&&(n.a=new BE),n.e==2){FE(n.a,e);return}if(e.e==1){for(r=0;r=hr?Er(t,$Y(i)):T4(t,i&ui),s=new IN(10,null,0),wwe(n.a,s,f-1)):(t=(s.Mm().length+c,new i6),Er(t,s.Mm())),e.e==0?(i=e.Km(),i>=hr?Er(t,$Y(i)):T4(t,i&ui)):Er(t,e.Mm()),u(s,530).b=t.a}}function NIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(!t.dc()){for(f=0,g=0,i=t.Kc(),m=u(i.Pb(),17).a;f1&&(h=l.Hg(h,n.a,f));return h.c.length==1?u(sn(h,h.c.length-1),238):h.c.length==2?EIe((Ln(0,h.c.length),u(h.c[0],238)),(Ln(1,h.c.length),u(h.c[1],238)),s,c):null}function BIe(n,e,t){var i,r,c,s,f,h,l;for(t.Ug("Find roots",1),n.a.c.length=0,r=ge(e.b,0);r.b!=r.d.c;)i=u(be(r),40),i.b.b==0&&(U(i,(pt(),Ma),(_n(),!0)),nn(n.a,i));switch(n.a.c.length){case 0:c=new q$(0,e,"DUMMY_ROOT"),U(c,(pt(),Ma),(_n(),!0)),U(c,tq,!0),Fe(e.b,c);break;case 1:break;default:for(s=new q$(0,e,IS),h=new C(n.a);h.a=y.Math.abs(i.b)?(i.b=0,c.d+c.a>s.d&&c.ds.c&&c.c0){if(e=new gX(n.i,n.g),t=n.i,c=t<100?null:new F1(t),n.Tj())for(i=0;i0){for(f=n.g,l=n.i,e5(n),c=l<100?null:new F1(l),i=0;i>13|(n.m&15)<<9,r=n.m>>4&8191,c=n.m>>17|(n.h&255)<<5,s=(n.h&1048320)>>8,f=e.l&8191,h=e.l>>13|(e.m&15)<<9,l=e.m>>4&8191,a=e.m>>17|(e.h&255)<<5,d=(e.h&1048320)>>8,yn=t*f,kn=i*f,Fn=r*f,Rn=c*f,te=s*f,h!=0&&(kn+=t*h,Fn+=i*h,Rn+=r*h,te+=c*h),l!=0&&(Fn+=t*l,Rn+=i*l,te+=r*l),a!=0&&(Rn+=t*a,te+=i*a),d!=0&&(te+=t*d),p=yn&ro,m=(kn&511)<<13,g=p+m,j=yn>>22,S=kn>>9,I=(Fn&262143)<<4,O=(Rn&31)<<17,k=j+S+I+O,_=Fn>>18,X=Rn>>5,tn=(te&4095)<<8,N=_+X+tn,k+=g>>22,g&=ro,N+=k>>22,k&=ro,N&=Il,Yc(g,k,N)}function dGn(n){var e,t,i,r,c,s,f;if(f=u(sn(n.j,0),12),f.g.c.length!=0&&f.e.c.length!=0)throw M(new Or("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(f.g.c.length!=0){for(c=St,t=new C(f.g);t.a4)if(n.fk(e)){if(n.al()){if(r=u(e,54),i=r.Eh(),h=i==n.e&&(n.ml()?r.yh(r.Fh(),n.il())==n.jl():-1-r.Fh()==n.Lj()),n.nl()&&!h&&!i&&r.Jh()){for(c=0;c0&&b_n(n,f,d);for(r=new C(d);r.an.d[s.p]&&(t+=SJ(n.b,c)*u(h.b,17).a,W1(n.a,Y(c)));for(;!t6(n.a);)oQ(n.b,u(Sp(n.a),17).a)}return t}function qIe(n,e){var t,i,r,c,s,f,h,l,a,d;if(a=u(v(n,(W(),gc)),64),i=u(sn(n.j,0),12),a==(en(),Xn)?gi(i,ae):a==ae&&gi(i,Xn),u(v(e,(cn(),xd)),181).Hc((go(),Gd))){if(h=$(R(v(n,Av))),l=$(R(v(n,Sv))),s=$(R(v(n,qw))),f=u(v(e,_w),21),f.Hc((zu(),Fl)))for(t=l,d=n.o.a/2-i.n.a,c=new C(i.f);c.a0&&(l=n.n.a/c);break;case 2:case 4:r=n.i.o.b,r>0&&(l=n.n.b/r)}U(n,(W(),fb),l)}if(h=n.o,s=n.a,i)s.a=i.a,s.b=i.b,n.d=!0;else if(e!=Qf&&e!=Pa&&f!=sc)switch(f.g){case 1:s.a=h.a/2;break;case 2:s.a=h.a,s.b=h.b/2;break;case 3:s.a=h.a/2,s.b=h.b;break;case 4:s.b=h.b/2}else s.a=h.a/2,s.b=h.b/2}function X5(n){var e,t,i,r,c,s,f,h,l,a;if(n.Pj())if(a=n.Ej(),h=n.Qj(),a>0)if(e=new KQ(n.pj()),t=a,c=t<100?null:new F1(t),S7(n,t,e.g),r=t==1?n.Ij(4,L(e,0),null,0,h):n.Ij(6,e,null,-1,h),n.Mj()){for(i=new ne(e);i.e!=i.i.gc();)c=n.Oj(ue(i),c);c?(c.nj(r),c.oj()):n.Jj(r)}else c?(c.nj(r),c.oj()):n.Jj(r);else S7(n,n.Ej(),n.Fj()),n.Jj(n.Ij(6,(Dn(),sr),null,-1,h));else if(n.Mj())if(a=n.Ej(),a>0){for(f=n.Fj(),l=a,S7(n,a,f),c=l<100?null:new F1(l),i=0;i1&&Su(s)*ao(s)/2>f[0]){for(c=0;cf[c];)++c;m=new Jl(k,0,c+1),d=new hT(m),a=Su(s)/ao(s),h=QF(d,e,new up,t,i,r,a),tt(ff(d.e),h),Mp(ym(g,d),_m),p=new Jl(k,c+1,k.c.length),CZ(g,p),k.c.length=0,l=0,bPn(f,f.length,0)}else j=g.b.c.length==0?null:sn(g.b,0),j!=null&&M$(g,0),l>0&&(f[l]=f[l-1]),f[l]+=Su(s)*ao(s),++l,Kn(k.c,s);return k}function WIe(n,e){var t,i,r,c;t=e.b,c=new _u(t.j),r=0,i=t.j,i.c.length=0,g0(u(od(n.b,(en(),Xn),(D0(),ub)),15),t),r=_k(c,r,new bpn,i),g0(u(od(n.b,Xn,va),15),t),r=_k(c,r,new opn,i),g0(u(od(n.b,Xn,cb),15),t),g0(u(od(n.b,Zn,ub),15),t),g0(u(od(n.b,Zn,va),15),t),r=_k(c,r,new wpn,i),g0(u(od(n.b,Zn,cb),15),t),g0(u(od(n.b,ae,ub),15),t),r=_k(c,r,new gpn,i),g0(u(od(n.b,ae,va),15),t),r=_k(c,r,new ppn,i),g0(u(od(n.b,ae,cb),15),t),g0(u(od(n.b,Wn,ub),15),t),r=_k(c,r,new hpn,i),g0(u(od(n.b,Wn,va),15),t),g0(u(od(n.b,Wn,cb),15),t)}function JIe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;for(f=new C(e);f.a.5?S-=s*2*(m-.5):m<.5&&(S+=c*2*(.5-m)),r=f.d.b,Sj.a-k-a&&(S=j.a-k-a),f.n.a=e+S}}function nOe(n){var e,t,i,r,c;if(i=u(v(n,(cn(),ou)),171),i==(Yo(),ya)){for(t=new ie(ce(ji(n).a.Kc(),new En));pe(t);)if(e=u(fe(t),18),!SLn(e))throw M(new _l(oR+qk(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(i==xw){for(c=new ie(ce(Qt(n).a.Kc(),new En));pe(c);)if(r=u(fe(c),18),!SLn(r))throw M(new _l(oR+qk(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}}function gy(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(n.e&&n.c.c>19&&(e=tm(e),h=!h),s=BMe(e),c=!1,r=!1,i=!1,n.h==Ty&&n.m==0&&n.l==0)if(r=!0,c=!0,s==-1)n=nTn((R4(),hun)),i=!0,h=!h;else return f=Xnn(n,s),h&&H$(f),t&&(wa=Yc(0,0,0)),f;else n.h>>19&&(c=!0,n=tm(n),i=!0,h=!h);return s!=-1?d6e(n,s,h,c,t):DZ(n,e)<0?(t&&(c?wa=tm(n):wa=Yc(n.l,n.m,n.h)),Yc(0,0,0)):xSe(i?n:Yc(n.l,n.m,n.h),e,h,c,r,t)}function zF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;if(s=n.e,h=e.e,s==0)return e;if(h==0)return n;if(c=n.d,f=e.d,c+f==2)return t=vi(n.a[0],mr),i=vi(e.a[0],mr),s==h?(a=nr(t,i),m=Ae(a),p=Ae(U1(a,32)),p==0?new gl(s,m):new Ya(s,2,A(T(ye,1),_e,28,15,[m,p]))):(dh(),AC(s<0?bs(i,t):bs(t,i),0)?ia(s<0?bs(i,t):bs(t,i)):U6(ia(n1(s<0?bs(i,t):bs(t,i)))));if(s==h)g=s,d=c>=f?e$(n.a,c,e.a,f):e$(e.a,f,n.a,c);else{if(r=c!=f?c>f?1:-1:hY(n.a,e.a,c),r==0)return dh(),S8;r==1?(g=s,d=ZN(n.a,c,e.a,f)):(g=h,d=ZN(e.a,f,n.a,c))}return l=new Ya(g,d.length,d),J6(l),l}function tOe(n,e){var t,i,r,c,s,f,h;if(!(n.g>e.f||e.g>n.f)){for(t=0,i=0,s=n.w.a.ec().Kc();s.Ob();)r=u(s.Pb(),12),nx(cc(A(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&++t;for(f=n.r.a.ec().Kc();f.Ob();)r=u(f.Pb(),12),nx(cc(A(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,e.g,e.f)&&--t;for(h=e.w.a.ec().Kc();h.Ob();)r=u(h.Pb(),12),nx(cc(A(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=e.r.a.ec().Kc();c.Ob();)r=u(c.Pb(),12),nx(cc(A(T(Ei,1),J,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;t=0)return t;switch(y0(Lr(n,t))){case 2:{if(An("",r1(n,t.qk()).xe())){if(h=q7(Lr(n,t)),f=P4(Lr(n,t)),a=Qnn(n,e,h,f),a)return a;for(r=Aen(n,e),s=0,d=r.gc();s1)throw M(new Gn(Zy));for(a=ru(n.e.Dh(),e),i=u(n.g,124),s=0;s1,l=new Df(g.b);tc(l.a)||tc(l.b);)h=u(tc(l.a)?E(l.a):E(l.b),18),d=h.c==g?h.d:h.c,y.Math.abs(cc(A(T(Ei,1),J,8,0,[d.i.n,d.n,d.a])).b-s.b)>1&&qTe(n,h,s,c,g)}}function sOe(n){var e,t,i,r,c,s;if(r=new xi(n.e,0),i=new xi(n.a,0),n.d)for(t=0;t_R;){for(c=e,s=0;y.Math.abs(e-c)<_R;)++s,e=$((oe(r.b0),r.a.Xb(r.c=--r.b),EPe(n,n.b-s,c,i,r),oe(r.b0),i.a.Xb(i.c=--i.b)}if(!n.d)for(t=0;t0?(n.f[a.p]=p/(a.e.c.length+a.g.c.length),n.c=y.Math.min(n.c,n.f[a.p]),n.b=y.Math.max(n.b,n.f[a.p])):f&&(n.f[a.p]=p)}}function hOe(n){n.b=null,n.bb=null,n.fb=null,n.qb=null,n.a=null,n.c=null,n.d=null,n.e=null,n.f=null,n.n=null,n.M=null,n.L=null,n.Q=null,n.R=null,n.K=null,n.db=null,n.eb=null,n.g=null,n.i=null,n.j=null,n.k=null,n.gb=null,n.o=null,n.p=null,n.q=null,n.r=null,n.$=null,n.ib=null,n.S=null,n.T=null,n.t=null,n.s=null,n.u=null,n.v=null,n.w=null,n.B=null,n.A=null,n.C=null,n.D=null,n.F=null,n.G=null,n.H=null,n.I=null,n.J=null,n.P=null,n.Z=null,n.U=null,n.V=null,n.W=null,n.X=null,n.Y=null,n._=null,n.ab=null,n.cb=null,n.hb=null,n.nb=null,n.lb=null,n.mb=null,n.ob=null,n.pb=null,n.jb=null,n.kb=null,n.N=!1,n.O=!1}function lOe(n,e,t){var i,r,c,s;for(t.Ug("Graph transformation ("+n.a+")",1),s=T0(e.a),c=new C(e.b);c.a=f.b.c)&&(f.b=e),(!f.c||e.c<=f.c.c)&&(f.d=f.c,f.c=e),(!f.e||e.d>=f.e.d)&&(f.e=e),(!f.f||e.d<=f.f.d)&&(f.f=e);return i=new eA((nm(),rb)),Q7(n,IZn,new Ku(A(T(aj,1),Bn,382,0,[i]))),s=new eA(Iw),Q7(n,PZn,new Ku(A(T(aj,1),Bn,382,0,[s]))),r=new eA(Pw),Q7(n,SZn,new Ku(A(T(aj,1),Bn,382,0,[r]))),c=new eA(d2),Q7(n,AZn,new Ku(A(T(aj,1),Bn,382,0,[c]))),pF(i.c,rb),pF(r.c,Pw),pF(c.c,d2),pF(s.c,Iw),f.a.c.length=0,hi(f.a,i.c),hi(f.a,Qo(r.c)),hi(f.a,c.c),hi(f.a,Qo(s.c)),f}function bOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m;for(e.Ug(SVn,1),p=$(R(z(n,(_h(),Xw)))),s=$(R(z(n,(Rf(),l9)))),f=u(z(n,h9),107),NQ((!n.a&&(n.a=new q(Ye,n,10,11)),n.a)),a=fGn((!n.a&&(n.a=new q(Ye,n,10,11)),n.a),p,s),!n.a&&(n.a=new q(Ye,n,10,11)),l=new C(a);l.a0&&(n.a=h+(p-1)*c,e.c.b+=n.a,e.f.b+=n.a)),m.a.gc()!=0&&(g=new lN(1,c),p=ntn(g,e,m,k,e.f.b+h-e.c.b),p>0&&(e.f.b+=h+(p-1)*c))}function gGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;for(a=$(R(v(n,(cn(),wb)))),i=$(R(v(n,vhn))),g=new _O,U(g,wb,a+i),l=e,S=l.d,k=l.c.i,I=l.d.i,j=EX(k.c),O=EX(I.c),r=new Z,d=j;d<=O;d++)f=new Tl(n),Ha(f,(Vn(),Mi)),U(f,(W(),st),l),U(f,Kt,(Oi(),qc)),U(f,yI,g),p=u(sn(n.b,d),30),d==j?uw(f,p.a.c.length-t,p):$i(f,p),N=$(R(v(l,m1))),N<0&&(N=0,U(l,m1,N)),f.o.b=N,m=y.Math.floor(N/2),s=new Pc,gi(s,(en(),Wn)),ic(s,f),s.n.b=m,h=new Pc,gi(h,Zn),ic(h,f),h.n.b=m,Ii(l,s),c=new E0,Ur(c,l),U(c,Fr,null),Zi(c,h),Ii(c,S),ike(f,l,c),Kn(r.c,c),l=c;return r}function XF(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O;for(h=u(h1(n,(en(),Wn)).Kc().Pb(),12).e,p=u(h1(n,Zn).Kc().Pb(),12).g,f=h.c.length,O=If(u(sn(n.j,0),12));f-- >0;){for(k=(Ln(0,h.c.length),u(h.c[0],18)),r=(Ln(0,p.c.length),u(p.c[0],18)),I=r.d.e,c=qr(I,r,0),Bpe(k,r.d,c),Zi(r,null),Ii(r,null),m=k.a,e&&Fe(m,new rr(O)),i=ge(r.a,0);i.b!=i.d.c;)t=u(be(i),8),Fe(m,new rr(t));for(S=k.b,g=new C(r.b);g.as)&&fi(n.b,u(j.b,18));++f}c=s}}}function Qen(n,e){var t;if(e==null||An(e,gu)||e.length==0&&n.k!=(l1(),L3))return null;switch(n.k.g){case 1:return JT(e,nv)?(_n(),ov):JT(e,cK)?(_n(),ga):null;case 2:try{return Y(Ao(e,Wi,et))}catch(i){if(i=It(i),D(i,130))return null;throw M(i)}case 4:try{return sw(e)}catch(i){if(i=It(i),D(i,130))return null;throw M(i)}case 3:return e;case 5:return FFn(n),J_n(n,e);case 6:return FFn(n),wMe(n,n.a,e);case 7:try{return t=TCe(n),t.cg(e),t}catch(i){if(i=It(i),D(i,33))return null;throw M(i)}default:throw M(new Or("Invalid type set for this layout option."))}}function Yen(n){var e;switch(n.d){case 1:{if(n.Sj())return n.o!=-2;break}case 2:{if(n.Sj())return n.o==-2;break}case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(e=n.Rj(),n.p){case 0:return e!=null&&on(un(e))!=C6(n.k,0);case 1:return e!=null&&u(e,222).a!=Ae(n.k)<<24>>24;case 2:return e!=null&&u(e,180).a!=(Ae(n.k)&ui);case 6:return e!=null&&C6(u(e,168).a,n.k);case 5:return e!=null&&u(e,17).a!=Ae(n.k);case 7:return e!=null&&u(e,191).a!=Ae(n.k)<<16>>16;case 3:return e!=null&&$(R(e))!=n.j;case 4:return e!=null&&u(e,161).a!=n.j;default:return e==null?n.n!=null:!rt(e,n.n)}}function py(n,e,t){var i,r,c,s;return n.ol()&&n.nl()&&(s=cN(n,u(t,58)),x(s)!==x(t))?(n.xj(e),n.Dj(e,kNn(n,e,s)),n.al()&&(c=(r=u(t,54),n.ml()?n.kl()?r.Th(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),null):r.Th(n.b,Ot(r.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,null):r.Th(n.b,-1-n.Lj(),null,null)),!u(s,54).Ph()&&(c=(i=u(s,54),n.ml()?n.kl()?i.Rh(n.b,br(u($n(au(n.b),n.Lj()),19)).n,u($n(au(n.b),n.Lj()).Hk(),29).kk(),c):i.Rh(n.b,Ot(i.Dh(),br(u($n(au(n.b),n.Lj()),19))),null,c):i.Rh(n.b,-1-n.Lj(),null,c))),c&&c.oj()),fo(n.b)&&n.Jj(n.Ij(9,t,s,e,!1)),s):t}function pGn(n){var e,t,i,r,c,s,f,h,l,a;for(i=new Z,s=new C(n.e.a);s.a0&&(s=y.Math.max(s,jxn(n.C.b+i.d.b,r))),a=i,d=r,g=c;n.C&&n.C.c>0&&(p=g+n.C.c,l&&(p+=a.d.c),s=y.Math.max(s,(Tf(),Ks(_f),y.Math.abs(d-1)<=_f||d==1||isNaN(d)&&isNaN(1)?0:p/(1-d)))),t.n.b=0,t.a.a=s}function vGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p;if(t=u(Cr(n.b,e),127),h=u(u(ot(n.r,e),21),87),h.dc()){t.n.d=0,t.n.a=0;return}for(l=n.u.Hc((zu(),Fl)),s=0,n.A.Hc((go(),Gd))&&Vqn(n,e),f=h.Kc(),a=null,g=0,d=0;f.Ob();)i=u(f.Pb(),117),c=$(R(i.b.of((KC(),bP)))),r=i.b.Mf().b,a?(p=d+a.d.a+n.w+i.d.d,s=y.Math.max(s,(Tf(),Ks(_f),y.Math.abs(g-c)<=_f||g==c||isNaN(g)&&isNaN(c)?0:p/(c-g)))):n.C&&n.C.d>0&&(s=y.Math.max(s,jxn(n.C.d+i.d.d,c))),a=i,g=c,d=r;n.C&&n.C.a>0&&(p=d+n.C.a,l&&(p+=a.d.a),s=y.Math.max(s,(Tf(),Ks(_f),y.Math.abs(g-1)<=_f||g==1||isNaN(g)&&isNaN(1)?0:p/(1-g)))),t.n.d=0,t.a.b=s}function pOe(n,e,t,i,r,c,s,f){var h,l,a,d,g,p,m,k,j,S;if(m=!1,l=cen(t.q,e.f+e.b-t.q.f),p=i.f>e.b&&f,S=r-(t.q.e+l-s),d=(h=G5(i,S,!1),h.a),p&&d>i.f)return!1;if(p){for(g=0,j=new C(e.d);j.a=(Ln(c,n.c.length),u(n.c[c],186)).e,!p&&d>e.b&&!a)?!1:((a||p||d<=e.b)&&(a&&d>e.b?(t.d=d,uk(t,c_n(t,d))):(EKn(t.q,l),t.c=!0),uk(i,r-(t.s+t.r)),Hk(i,t.q.e+t.q.d,e.f),wT(e,i),n.c.length>c&&(Gk((Ln(c,n.c.length),u(n.c[c],186)),i),(Ln(c,n.c.length),u(n.c[c],186)).a.c.length==0&&Yl(n,c)),m=!0),m)}function kGn(n,e,t){var i,r,c,s,f,h;for(this.g=n,f=e.d.length,h=t.d.length,this.d=K(Qh,b1,10,f+h,0,1),s=0;s0?m$(this,this.f/this.a):Af(e.g,e.d[0]).a!=null&&Af(t.g,t.d[0]).a!=null?m$(this,($(Af(e.g,e.d[0]).a)+$(Af(t.g,t.d[0]).a))/2):Af(e.g,e.d[0]).a!=null?m$(this,Af(e.g,e.d[0]).a):Af(t.g,t.d[0]).a!=null&&m$(this,Af(t.g,t.d[0]).a)}function mOe(n,e){var t,i,r,c,s,f,h,l,a,d;for(n.a=new ZPn(n6e(y9)),i=new C(e.a);i.a=1&&(j-s>0&&d>=0?(h.n.a+=k,h.n.b+=c*s):j-s<0&&a>=0&&(h.n.a+=k*j,h.n.b+=c));n.o.a=e.a,n.o.b=e.b,U(n,(cn(),xd),(go(),i=u(of(S9),9),new _o(i,u(xs(i,i.length),9),0)))}function yOe(n,e,t,i,r,c){var s;if(!(e==null||!lx(e,Kdn,_dn)))throw M(new Gn("invalid scheme: "+e));if(!n&&!(t!=null&&ih(t,wu(35))==-1&&t.length>0&&(zn(0,t.length),t.charCodeAt(0)!=47)))throw M(new Gn("invalid opaquePart: "+t));if(n&&!(e!=null&&t7(jO,e.toLowerCase()))&&!(t==null||!lx(t,D9,L9)))throw M(new Gn(tJn+t));if(n&&e!=null&&t7(jO,e.toLowerCase())&&!nye(t))throw M(new Gn(tJn+t));if(!u8e(i))throw M(new Gn("invalid device: "+i));if(!U6e(r))throw s=r==null?"invalid segments: null":"invalid segment: "+K6e(r),M(new Gn(s));if(!(c==null||ih(c,wu(35))==-1))throw M(new Gn("invalid query: "+c))}function jOe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S;if(t.Ug("Network simplex layering",1),n.b=e,S=u(v(e,(cn(),V8)),17).a*4,j=n.b.a,j.c.length<1){t.Vg();return}for(c=kSe(n,j),k=null,r=ge(c,0);r.b!=r.d.c;){for(i=u(be(r),15),f=S*wi(y.Math.sqrt(i.gc())),s=$Se(i),PF(mz(jhe(vz(BL(s),f),k),!0),t.eh(1)),g=n.b.b,m=new C(s.a);m.a1)for(k=K(ye,_e,28,n.b.b.c.length,15,1),d=0,l=new C(n.b.b);l.a0){QT(n,t,0),t.a+=String.fromCharCode(i),r=U8e(e,c),QT(n,t,r),c+=r-1;continue}i==39?c+10&&m.a<=0){h.c.length=0,Kn(h.c,m);break}p=m.i-m.d,p>=f&&(p>f&&(h.c.length=0,f=p),Kn(h.c,m))}h.c.length!=0&&(s=u(sn(h,cA(r,h.c.length)),118),O.a.Bc(s)!=null,s.g=a++,Ken(s,e,t,i),h.c.length=0)}for(j=n.c.length+1,g=new C(n);g.ali||e.o==Rd&&a=f&&r<=h)f<=r&&c<=h?(t[a++]=r,t[a++]=c,i+=2):f<=r?(t[a++]=r,t[a++]=h,n.b[i]=h+1,s+=2):c<=h?(t[a++]=f,t[a++]=c,i+=2):(t[a++]=f,t[a++]=h,n.b[i]=h+1);else if(hfa)&&f<10);yz(n.c,new Ybn),CGn(n),pwe(n.c),aOe(n.f)}function OOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(t=u(v(n,(cn(),Kt)),101),s=n.f,c=n.d,f=s.a+c.b+c.c,h=0-c.d-n.c.b,a=s.b+c.d+c.a-n.c.b,l=new Z,d=new Z,r=new C(e);r.a=2){for(h=ge(t,0),s=u(be(h),8),f=u(be(h),8);f.a0&&Tk(l,!0,(ci(),Xr)),f.k==(Vn(),Zt)&&sIn(l),Ve(n.f,f,e)}}function NOe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;for(r=u(v(n,(pt(),u9)),27),l=et,a=et,f=Wi,h=Wi,O=ge(n.b,0);O.b!=O.d.c;)S=u(be(O),40),p=S.e,m=S.f,l=y.Math.min(l,p.a-m.a/2),a=y.Math.min(a,p.b-m.b/2),f=y.Math.max(f,p.a+m.a/2),h=y.Math.max(h,p.b+m.b/2);for(g=u(z(r,(lc(),Iln)),107),I=ge(n.b,0);I.b!=I.d.c;)S=u(be(I),40),d=v(S,u9),D(d,207)&&(c=u(d,27),Ro(c,S.e.a,S.e.b),uy(c,S));for(j=ge(n.a,0);j.b!=j.d.c;)k=u(be(j),65),i=u(v(k,u9),74),i&&(e=k.a,t=Xg(i,!0,!0),dy(e,t));N=f-l+(g.b+g.c),s=h-a+(g.d+g.a),on(un(z(r,(He(),Vw))))||G0(r,N,s,!1,!1),ht(r,B2,N-(g.b+g.c)),ht(r,F2,s-(g.d+g.a))}function TGn(n,e){var t,i,r,c,s,f,h,l,a,d;for(h=!0,r=0,l=n.g[e.p],a=e.o.b+n.o,t=n.d[e.p][2],Go(n.b,l,Y(u(sn(n.b,l),17).a-1+t)),Go(n.c,l,$(R(sn(n.c,l)))-a+t*n.f),++l,l>=n.j?(++n.j,nn(n.b,Y(1)),nn(n.c,a)):(i=n.d[e.p][1],Go(n.b,l,Y(u(sn(n.b,l),17).a+1-i)),Go(n.c,l,$(R(sn(n.c,l)))+a-i*n.f)),(n.r==(ps(),Sj)&&(u(sn(n.b,l),17).a>n.k||u(sn(n.b,l-1),17).a>n.k)||n.r==Pj&&($(R(sn(n.c,l)))>n.n||$(R(sn(n.c,l-1)))>n.n))&&(h=!1),s=new ie(ce(ji(e).a.Kc(),new En));pe(s);)c=u(fe(s),18),f=c.c.i,n.g[f.p]==l&&(d=TGn(n,f),r=r+u(d.a,17).a,h=h&&on(un(d.b)));return n.g[e.p]=l,r=r+n.d[e.p][0],new bi(Y(r),(_n(),!!h))}function AGn(n,e){var t,i,r,c,s;t=$(R(v(e,(cn(),Ws)))),t<2&&U(e,Ws,2),i=u(v(e,Do),88),i==(ci(),Jf)&&U(e,Do,KT(e)),r=u(v(e,Ute),17),r.a==0?U(e,(W(),S3),new dx):U(e,(W(),S3),new qM(r.a)),c=un(v(e,G8)),c==null&&U(e,G8,(_n(),x(v(e,$l))===x((El(),Rv)))),qt(new Tn(null,new In(e.a,16)),new OG(n)),qt(rc(new Tn(null,new In(e.b,16)),new HU),new DG(n)),s=new yGn(e),U(e,(W(),E2),s),H7(n.a),hf(n.a,(Vi(),Vs),u(v(e,Ld),188)),hf(n.a,Jh,u(v(e,$d),188)),hf(n.a,Oc,u(v(e,U8),188)),hf(n.a,Kc,u(v(e,vI),188)),hf(n.a,zr,Nve(u(v(e,$l),223))),MX(n.a,PLe(e)),U(e,wH,gy(n.a,e))}function ntn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,S;for(d=new de,s=new Z,T_n(n,t,n.d.Ag(),s,d),T_n(n,i,n.d.Bg(),s,d),n.b=.2*(k=OHn(rc(new Tn(null,new In(s,16)),new F3n)),j=OHn(rc(new Tn(null,new In(s,16)),new B3n)),y.Math.min(k,j)),c=0,f=0;f=2&&(S=JHn(s,!0,g),!n.e&&(n.e=new okn(n)),K8e(n.e,S,s,n.b)),LKn(s,g),KOe(s),p=-1,a=new C(s);a.af)}function SGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;for(l=St,a=St,f=li,h=li,g=new C(e.i);g.a-1){for(r=ge(f,0);r.b!=r.d.c;)i=u(be(r),131),i.v=s;for(;f.b!=0;)for(i=u(Ux(f,0),131),t=new C(i.i);t.a-1){for(c=new C(f);c.a0)&&(pG(h,y.Math.min(h.o,r.o-1)),SE(h,h.i-1),h.i==0&&Kn(f.c,h))}}function IGn(n,e,t,i,r){var c,s,f,h;return h=St,s=!1,f=Gen(n,mi(new V(e.a,e.b),n),tt(new V(t.a,t.b),r),mi(new V(i.a,i.b),t)),c=!!f&&!(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0||y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0),f=Gen(n,mi(new V(e.a,e.b),n),t,r),f&&((y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c?h=y.Math.min(h,z6(mi(f,t))):s=!0),f=Gen(n,mi(new V(e.a,e.b),n),i,r),f&&(s||(y.Math.abs(f.a-n.a)<=Y0&&y.Math.abs(f.b-n.b)<=Y0)==(y.Math.abs(f.a-e.a)<=Y0&&y.Math.abs(f.b-e.b)<=Y0)||c)&&(h=y.Math.min(h,z6(mi(f,i)))),h}function OGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ka,la),SXn),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new Xbn),cu))),Q(n,la,i8,rn(Ton)),Q(n,la,oS,(_n(),!0)),Q(n,la,r2,rn(dZn)),Q(n,la,d3,rn(bZn)),Q(n,la,a3,rn(wZn)),Q(n,la,Xm,rn(aZn)),Q(n,la,r8,rn(Son)),Q(n,la,Vm,rn(gZn)),Q(n,la,Qtn,rn(Mon)),Q(n,la,Ztn,rn(Eon)),Q(n,la,nin,rn(Con)),Q(n,la,ein,rn(Aon)),Q(n,la,Ytn,rn(EP))}function _Oe(n){var e,t,i,r,c,s,f,h;for(e=null,i=new C(n);i.a0&&t.c==0&&(!e&&(e=new Z),Kn(e.c,t));if(e)for(;e.c.length!=0;){if(t=u(Yl(e,0),239),t.b&&t.b.c.length>0){for(c=(!t.b&&(t.b=new Z),new C(t.b));c.aqr(n,t,0))return new bi(r,t)}else if($(Af(r.g,r.d[0]).a)>$(Af(t.g,t.d[0]).a))return new bi(r,t)}for(f=(!t.e&&(t.e=new Z),t.e).Kc();f.Ob();)s=u(f.Pb(),239),h=(!s.b&&(s.b=new Z),s.b),zb(0,h.c.length),d6(h.c,0,t),s.c==h.c.length&&Kn(e.c,s)}return null}function HOe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S;for(e.Ug("Interactive crossing minimization",1),s=0,c=new C(n.b);c.a0&&(t+=h.n.a+h.o.a/2,++d),m=new C(h.j);m.a0&&(t/=d),S=K(Pi,Tr,28,i.a.c.length,15,1),f=0,l=new C(i.a);l.a=f&&r<=h)f<=r&&c<=h?i+=2:f<=r?(n.b[i]=h+1,s+=2):c<=h?(t[a++]=r,t[a++]=f-1,i+=2):(t[a++]=r,t[a++]=f-1,n.b[i]=h+1,s+=2);else if(h2?(a=new Z,hi(a,new Jl(S,1,S.b)),c=mzn(a,O+n.a),I=new bF(c),Ur(I,e),Kn(t.c,I)):i?I=u(ee(n.b,Kh(e)),272):I=u(ee(n.b,ra(e)),272),h=Kh(e),i&&(h=ra(e)),s=_je(j,h),l=O+n.a,s.a?(l+=y.Math.abs(j.b-d.b),k=new V(d.a,(d.b+j.b)/2)):(l+=y.Math.abs(j.a-d.a),k=new V((d.a+j.a)/2,d.b)),i?Ve(n.d,e,new mZ(I,s,k,l)):Ve(n.c,e,new mZ(I,s,k,l)),Ve(n.b,e,I),m=(!e.n&&(e.n=new q(Ar,e,1,7)),e.n),p=new ne(m);p.e!=p.i.gc();)g=u(ue(p),135),r=fy(n,g,!0,0,0),Kn(t.c,r)}function qOe(n){var e,t,i,r,c,s,f;if(!n.A.dc()){if(n.A.Hc((go(),rE))&&(u(Cr(n.b,(en(),Xn)),127).k=!0,u(Cr(n.b,ae),127).k=!0,e=n.q!=(Oi(),tl)&&n.q!=qc,bG(u(Cr(n.b,Zn),127),e),bG(u(Cr(n.b,Wn),127),e),bG(n.g,e),n.A.Hc(Gd)&&(u(Cr(n.b,Xn),127).j=!0,u(Cr(n.b,ae),127).j=!0,u(Cr(n.b,Zn),127).k=!0,u(Cr(n.b,Wn),127).k=!0,n.g.k=!0)),n.A.Hc(iE))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,f=n.B.Hc((io(),P9)),r=jx(),c=0,s=r.length;c0),u(a.a.Xb(a.c=--a.b),18));c!=i&&a.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,c=(oe(a.b>0),u(a.a.Xb(a.c=--a.b),18));a.b>0&&bo(a)}}function LGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p;if(!n.b)return!1;for(s=null,g=null,h=new r$(null,null),r=1,h.a[1]=n.b,d=h;d.a[r];)l=r,f=g,g=d,d=d.a[r],i=n.a.Ne(e,d.d),r=i<0?0:1,i==0&&(!t.c||mc(d.e,t.d))&&(s=d),!(d&&d.b)&&!Ib(d.a[r])&&(Ib(d.a[1-r])?g=g.a[l]=jT(d,r):Ib(d.a[1-r])||(p=g.a[1-l],p&&(!Ib(p.a[1-l])&&!Ib(p.a[l])?(g.b=!1,p.b=!0,d.b=!0):(c=f.a[1]==g?1:0,Ib(p.a[l])?f.a[c]=fDn(g,l):Ib(p.a[1-l])&&(f.a[c]=jT(g,l)),d.b=f.a[c].b=!0,f.a[c].a[0].b=!1,f.a[c].a[1].b=!1))));return s&&(t.b=!0,t.d=s.e,d!=s&&(a=new r$(d.d,d.e),zye(n,h,s,a),g==s&&(g=a)),g.a[g.a[1]==d?1:0]=d.a[d.a[0]?0:1],--n.c),n.b=h.a[1],n.b&&(n.b.b=!1),t.b}function zOe(n){var e,t,i,r,c,s,f,h,l,a,d,g;for(r=new C(n.a.a.b);r.a0?r-=864e5:r+=864e5,h=new fV(nr(vc(e.q.getTime()),r))),a=new fg,l=n.a.length,c=0;c=97&&i<=122||i>=65&&i<=90){for(s=c+1;s=l)throw M(new Gn("Missing trailing '"));s+1=14&&a<=16))?e.a._b(i)?(t.a?Re(t.a,t.b):t.a=new mo(t.d),T6(t.a,"[...]")):(f=cd(i),l=new F6(e),pl(t,$Gn(f,l))):D(i,183)?pl(t,CEe(u(i,183))):D(i,195)?pl(t,fye(u(i,195))):D(i,201)?pl(t,vje(u(i,201))):D(i,2111)?pl(t,hye(u(i,2111))):D(i,53)?pl(t,EEe(u(i,53))):D(i,376)?pl(t,_Ee(u(i,376))):D(i,846)?pl(t,jEe(u(i,846))):D(i,109)&&pl(t,yEe(u(i,109))):pl(t,i==null?gu:Jr(i));return t.a?t.e.length==0?t.a.a:t.a.a+(""+t.e):t.c}function Lm(n,e){var t,i,r,c;c=n.F,e==null?(n.F=null,um(n,null)):(n.F=(Jn(e),e),i=ih(e,wu(60)),i!=-1?(r=(Fi(0,i,e.length),e.substr(0,i)),ih(e,wu(46))==-1&&!An(r,i3)&&!An(r,m8)&&!An(r,GS)&&!An(r,v8)&&!An(r,k8)&&!An(r,y8)&&!An(r,j8)&&!An(r,E8)&&(r=wJn),t=FC(e,wu(62)),t!=-1&&(r+=""+(zn(t+1,e.length+1),e.substr(t+1))),um(n,r)):(r=e,ih(e,wu(46))==-1&&(i=ih(e,wu(91)),i!=-1&&(r=(Fi(0,i,e.length),e.substr(0,i))),!An(r,i3)&&!An(r,m8)&&!An(r,GS)&&!An(r,v8)&&!An(r,k8)&&!An(r,y8)&&!An(r,j8)&&!An(r,E8)?(r=wJn,i!=-1&&(r+=""+(zn(i,e.length+1),e.substr(i)))):r=e),um(n,r),r==e&&(n.F=n.D))),n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,5,c,e))}function xGn(n,e){var t,i,r,c,s,f,h,l,a,d;if(h=e.length-1,f=(zn(h,e.length),e.charCodeAt(h)),f==93){if(s=ih(e,wu(91)),s>=0)return r=Q5e(n,(Fi(1,s,e.length),e.substr(1,s-1))),a=(Fi(s+1,h,e.length),e.substr(s+1,h-(s+1))),ELe(n,a,r)}else{if(t=-1,wun==null&&(wun=new RegExp("\\d")),wun.test(String.fromCharCode(f))&&(t=AV(e,wu(46),h-1),t>=0)){i=u(YN(n,C$n(n,(Fi(1,t,e.length),e.substr(1,t-1))),!1),61),l=0;try{l=Ao((zn(t+1,e.length+1),e.substr(t+1)),Wi,et)}catch(g){throw g=It(g),D(g,130)?(c=g,M(new eT(c))):M(g)}if(l>16==-10?t=u(n.Cb,292).Yk(e,t):n.Db>>16==-15&&(!e&&(e=(On(),Zf)),!l&&(l=(On(),Zf)),n.Cb.Yh()&&(h=new ml(n.Cb,1,13,l,e,f1(no(u(n.Cb,62)),n),!1),t?t.nj(h):t=h));else if(D(n.Cb,90))n.Db>>16==-23&&(D(e,90)||(e=(On(),Is)),D(l,90)||(l=(On(),Is)),n.Cb.Yh()&&(h=new ml(n.Cb,1,10,l,e,f1(Sc(u(n.Cb,29)),n),!1),t?t.nj(h):t=h));else if(D(n.Cb,457))for(f=u(n.Cb,850),s=(!f.b&&(f.b=new NE(new aD)),f.b),c=(i=new sd(new Ua(s.a).a),new $E(i));c.a.b;)r=u(L0(c.a).ld(),89),t=Nm(r,MA(r,f),t)}return t}function QOe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(s=on(un(z(n,(cn(),Rw)))),g=u(z(n,_w),21),h=!1,l=!1,d=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));d.e!=d.i.gc()&&(!h||!l);){for(c=u(ue(d),123),f=0,r=$h(Eo(A(T(Oo,1),Bn,20,0,[(!c.d&&(c.d=new Nn(Vt,c,8,5)),c.d),(!c.e&&(c.e=new Nn(Vt,c,7,4)),c.e)])));pe(r)&&(i=u(fe(r),74),a=s&&_0(i)&&on(un(z(i,Nd))),t=bGn((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),c)?n==At(Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))):n==At(Gr(u(L((!i.b&&(i.b=new Nn(he,i,4,7)),i.b),0),84))),!((a||t)&&(++f,f>1))););(f>0||g.Hc((zu(),Fl))&&(!c.n&&(c.n=new q(Ar,c,1,7)),c.n).i>0)&&(h=!0),f>1&&(l=!0)}h&&e.Fc((pr(),cs)),l&&e.Fc((pr(),F8))}function FGn(n){var e,t,i,r,c,s,f,h,l,a,d,g;if(g=u(z(n,(He(),Hd)),21),g.dc())return null;if(f=0,s=0,g.Hc((go(),rE))){for(a=u(z(n,v9),101),i=2,t=2,r=2,c=2,e=At(n)?u(z(At(n),_d),88):u(z(n,_d),88),l=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));l.e!=l.i.gc();)if(h=u(ue(l),123),d=u(z(h,H2),64),d==(en(),sc)&&(d=Ren(h,e),ht(h,H2,d)),a==(Oi(),qc))switch(d.g){case 1:i=y.Math.max(i,h.i+h.g);break;case 2:t=y.Math.max(t,h.j+h.f);break;case 3:r=y.Math.max(r,h.i+h.g);break;case 4:c=y.Math.max(c,h.j+h.f)}else switch(d.g){case 1:i+=h.g+2;break;case 2:t+=h.f+2;break;case 3:r+=h.g+2;break;case 4:c+=h.f+2}f=y.Math.max(i,r),s=y.Math.max(t,c)}return G0(n,f,s,!0,!0)}function VF(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;for(I=u(Wr(fT(ut(new Tn(null,new In(e.d,16)),new A7n(t)),new S7n(t)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),d=et,a=Wi,h=new C(e.b.j);h.a0,l?l&&(g=S.p,s?++g:--g,d=u(sn(S.c.a,g),10),i=oFn(d),p=!(mF(i,X,t[0])||OPn(i,X,t[0]))):p=!0),m=!1,_=e.D.i,_&&_.c&&f.e&&(a=s&&_.p>0||!s&&_.p<_.c.a.c.length-1,a?(g=_.p,s?--g:++g,d=u(sn(_.c.a,g),10),i=oFn(d),m=!(mF(i,t[0],yn)||OPn(i,t[0],yn))):m=!0),p&&m&&Fe(n.a,tn),p||r5(n.a,A(T(Ei,1),J,8,0,[k,j])),m||r5(n.a,A(T(Ei,1),J,8,0,[N,O]))}function eDe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;for(p=e.c.length,g=0,d=new C(n.b);d.a=0){for(h=null,f=new xi(a.a,l+1);f.bs?1:s0(isNaN(0),isNaN(s)))<0&&(Ks(jh),(y.Math.abs(s-1)<=jh||s==1||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:s0(isNaN(s),isNaN(1)))<0)&&(Ks(jh),(y.Math.abs(0-f)<=jh||f==0||isNaN(0)&&isNaN(f)?0:0f?1:s0(isNaN(0),isNaN(f)))<0)&&(Ks(jh),(y.Math.abs(f-1)<=jh||f==1||isNaN(f)&&isNaN(1)?0:f<1?-1:f>1?1:s0(isNaN(f),isNaN(1)))<0)),c)}function iDe(n){var e,t,i,r;if(t=n.D!=null?n.D:n.B,e=ih(t,wu(91)),e!=-1){i=(Fi(0,e,t.length),t.substr(0,e)),r=new Hl;do r.a+="[";while((e=w4(t,91,++e))!=-1);An(i,i3)?r.a+="Z":An(i,m8)?r.a+="B":An(i,GS)?r.a+="C":An(i,v8)?r.a+="D":An(i,k8)?r.a+="F":An(i,y8)?r.a+="I":An(i,j8)?r.a+="J":An(i,E8)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";");try{return null}catch(c){if(c=It(c),!D(c,63))throw M(c)}}else if(ih(t,wu(46))==-1){if(An(t,i3))return so;if(An(t,m8))return Fu;if(An(t,GS))return fs;if(An(t,v8))return Pi;if(An(t,k8))return cg;if(An(t,y8))return ye;if(An(t,j8))return Fa;if(An(t,E8))return V2}return null}function rDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn;for(n.e=e,f=rCe(e),X=new Z,i=new C(f);i.a=0&&k=l.c.c.length?a=MJ((Vn(),zt),Mi):a=MJ((Vn(),Mi),Mi),a*=2,c=t.a.g,t.a.g=y.Math.max(c,c+(a-c)),s=t.b.g,t.b.g=y.Math.max(s,s+(a-s)),r=e}}function sDe(n){var e,t,i,r;for(qt(ut(new Tn(null,new In(n.a.b,16)),new X2n),new V2n),qke(n),qt(ut(new Tn(null,new In(n.a.b,16)),new W2n),new J2n),n.c==(El(),F3)&&(qt(ut(rc(new Tn(null,new In(new qa(n.f),1)),new Q2n),new Y2n),new k7n(n)),qt(ut(_r(rc(rc(new Tn(null,new In(n.d.b,16)),new Z2n),new npn),new epn),new tpn),new j7n(n))),r=new V(St,St),e=new V(li,li),i=new C(n.a.b);i.a0&&(e.a+=ur),GA(u(ue(f),167),e);for(e.a+=iR,h=new kp((!i.c&&(i.c=new Nn(he,i,5,8)),i.c));h.e!=h.i.gc();)h.e>0&&(e.a+=ur),GA(u(ue(h),167),e);e.a+=")"}}function fDe(n,e,t){var i,r,c,s,f,h,l,a;for(h=new ne((!n.a&&(n.a=new q(Ye,n,10,11)),n.a));h.e!=h.i.gc();)for(f=u(ue(h),27),r=new ie(ce(Al(f).a.Kc(),new En));pe(r);){if(i=u(fe(r),74),!i.b&&(i.b=new Nn(he,i,4,7)),!(i.b.i<=1&&(!i.c&&(i.c=new Nn(he,i,5,8)),i.c.i<=1)))throw M(new hp("Graph must not contain hyperedges."));if(!N5(i)&&f!=Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84)))for(l=new RAn,Ur(l,i),U(l,(Q1(),y3),i),Jse(l,u(Kr(wr(t.f,f)),153)),Zse(l,u(ee(t,Gr(u(L((!i.c&&(i.c=new Nn(he,i,5,8)),i.c),0),84))),153)),nn(e.c,l),s=new ne((!i.n&&(i.n=new q(Ar,i,1,7)),i.n));s.e!=s.i.gc();)c=u(ue(s),135),a=new _Dn(l,c.a),Ur(a,c),U(a,y3,c),a.e.a=y.Math.max(c.g,1),a.e.b=y.Math.max(c.f,1),Uen(a),nn(e.d,a)}}function hDe(n,e,t){var i,r,c,s,f,h,l,a,d,g;switch(t.Ug("Node promotion heuristic",1),n.i=e,n.r=u(v(e,(cn(),ja)),243),n.r!=(ps(),pb)&&n.r!=Uw?FDe(n):fAe(n),a=u(v(n.i,chn),17).a,c=new Bgn,n.r.g){case 2:case 1:Dm(n,c);break;case 3:for(n.r=SI,Dm(n,c),h=0,f=new C(n.b);f.an.k&&(n.r=Sj,Dm(n,c));break;case 4:for(n.r=SI,Dm(n,c),l=0,r=new C(n.c);r.an.n&&(n.r=Pj,Dm(n,c));break;case 6:g=wi(y.Math.ceil(n.g.length*a/100)),Dm(n,new s7n(g));break;case 5:d=wi(y.Math.ceil(n.e*a/100)),Dm(n,new f7n(d));break;case 8:yzn(n,!0);break;case 9:yzn(n,!1);break;default:Dm(n,c)}n.r!=pb&&n.r!=Uw?LTe(n,e):ZAe(n,e),t.Vg()}function lDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O;for(d=n.b,a=new xi(d,0),Rb(a,new Lc(n)),I=!1,s=1;a.b0&&(g.d+=a.n.d,g.d+=a.d),g.a>0&&(g.a+=a.n.a,g.a+=a.d),g.b>0&&(g.b+=a.n.b,g.b+=a.d),g.c>0&&(g.c+=a.n.c,g.c+=a.d),g}function RGn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m;for(g=t.d,d=t.c,c=new V(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),s=c.b,l=new C(n.a);l.a0&&(n.c[e.c.p][e.p].d+=to(n.i,24)*Iy*.07000000029802322-.03500000014901161,n.c[e.c.p][e.p].a=n.c[e.c.p][e.p].d/n.c[e.c.p][e.p].b)}}function bDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(m=new C(n);m.ai.d,i.d=y.Math.max(i.d,e),f&&t&&(i.d=y.Math.max(i.d,i.a),i.a=i.d+r);break;case 3:t=e>i.a,i.a=y.Math.max(i.a,e),f&&t&&(i.a=y.Math.max(i.a,i.d),i.d=i.a+r);break;case 2:t=e>i.c,i.c=y.Math.max(i.c,e),f&&t&&(i.c=y.Math.max(i.b,i.c),i.b=i.c+r);break;case 4:t=e>i.b,i.b=y.Math.max(i.b,e),f&&t&&(i.b=y.Math.max(i.b,i.c),i.c=i.b+r)}}}function _Gn(n,e){var t,i,r,c,s,f,h,l,a;return l="",e.length==0?n.ne(ktn,uB,-1,-1):(a=fw(e),An(a.substr(0,3),"at ")&&(a=(zn(3,a.length+1),a.substr(3))),a=a.replace(/\[.*?\]/g,""),s=a.indexOf("("),s==-1?(s=a.indexOf("@"),s==-1?(l=a,a=""):(l=fw((zn(s+1,a.length+1),a.substr(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s))))):(t=a.indexOf(")",s),l=(Fi(s+1,t,a.length),a.substr(s+1,t-(s+1))),a=fw((Fi(0,s,a.length),a.substr(0,s)))),s=ih(a,wu(46)),s!=-1&&(a=(zn(s+1,a.length+1),a.substr(s+1))),(a.length==0||An(a,"Anonymous function"))&&(a=uB),f=FC(l,wu(58)),r=AV(l,wu(58),f-1),h=-1,i=-1,c=ktn,f!=-1&&r!=-1&&(c=(Fi(0,r,l.length),l.substr(0,r)),h=rAn((Fi(r+1,f,l.length),l.substr(r+1,f-(r+1)))),i=rAn((zn(f+1,l.length+1),l.substr(f+1)))),n.ne(c,a,h,i))}function pDe(n){var e,t,i,r,c,s,f,h,l,a,d;for(l=new C(n);l.a0||a.j==Wn&&a.e.c.length-a.g.c.length<0)){e=!1;break}for(r=new C(a.g);r.a=l&&_>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f));if(t)for(s=new C(I.e);s.a=l&&_>=j&&(g+=m.n.b+k.n.b+k.a.b-N,++f))}f>0&&(X+=g/f,++p)}p>0?(e.a=r*X/p,e.g=p):(e.a=0,e.g=0)}function vDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn;for(c=n.f.b,g=c.a,a=c.b,m=n.e.g,p=n.e.f,kg(n.e,c.a,c.b),X=g/m,tn=a/p,l=new ne(jM(n.e));l.e!=l.i.gc();)h=u(ue(l),135),eu(h,h.i*X),tu(h,h.j*tn);for(I=new ne(mN(n.e));I.e!=I.i.gc();)S=u(ue(I),123),N=S.i,_=S.j,N>0&&eu(S,N*X),_>0&&tu(S,_*tn);for(f5(n.b,new Ubn),e=new Z,f=new sd(new Ua(n.c).a);f.b;)s=L0(f),i=u(s.ld(),74),t=u(s.md(),407).a,r=Xg(i,!1,!1),d=NKn(Kh(i),Qk(r),t),dy(d,r),O=XKn(i),O&&qr(e,O,0)==-1&&(Kn(e.c,O),jIn(O,(oe(d.b!=0),u(d.a.a.c,8)),t));for(j=new sd(new Ua(n.d).a);j.b;)k=L0(j),i=u(k.ld(),74),t=u(k.md(),407).a,r=Xg(i,!1,!1),d=NKn(ra(i),Sk(Qk(r)),t),d=Sk(d),dy(d,r),O=VKn(i),O&&qr(e,O,0)==-1&&(Kn(e.c,O),jIn(O,(oe(d.b!=0),u(d.c.b.c,8)),t))}function HGn(n,e,t,i){var r,c,s,f,h;return f=new itn(e),hTe(f,i),r=!0,n&&n.pf((He(),_d))&&(c=u(n.of((He(),_d)),88),r=c==(ci(),Jf)||c==Br||c==Xr),_qn(f,!1),nu(f.e.Rf(),new NV(f,!1,r)),ON(f,f.f,(wf(),bc),(en(),Xn)),ON(f,f.f,wc,ae),ON(f,f.g,bc,Wn),ON(f,f.g,wc,Zn),gRn(f,Xn),gRn(f,ae),vIn(f,Zn),vIn(f,Wn),Bb(),s=f.A.Hc((go(),Qw))&&f.B.Hc((io(),uE))?NBn(f):null,s&&vhe(f.a,s),gDe(f),p7e(f),m7e(f),qOe(f),pSe(f),U7e(f),kx(f,Xn),kx(f,ae),VAe(f),pIe(f),t&&(Y5e(f),G7e(f),kx(f,Zn),kx(f,Wn),h=f.B.Hc((io(),P9)),L_n(f,h,Xn),L_n(f,h,ae),N_n(f,h,Zn),N_n(f,h,Wn),qt(new Tn(null,new In(new ol(f.i),0)),new dbn),qt(ut(new Tn(null,DW(f.r).a.oc()),new bbn),new wbn),cye(f),f.e.Pf(f.o),qt(new Tn(null,DW(f.r).a.oc()),new gbn)),f.o}function kDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(l=St,i=new C(n.a.b);i.a1)for(p=new Ven(m,O,i),qi(O,new YCn(n,p)),Kn(s.c,p),d=O.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b);if(f.a.gc()>1)for(p=new Ven(m,f,i),qi(f,new ZCn(n,p)),Kn(s.c,p),d=f.a.ec().Kc();d.Ob();)a=u(d.Pb(),42),du(c,a.b)}}function CDe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S;if(k=n.n,j=n.o,g=n.d,d=$(R(rw(n,(cn(),PH)))),e){for(a=d*(e.gc()-1),p=0,h=e.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(S=k.a-(a-j.a)/2,c=k.b-g.d+p,i=j.a/(e.gc()+1),r=i,f=e.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=S,s.n.b=c-s.o.b,S+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=s.o.b,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=0,ic(m,n)),r+=i}if(t){for(a=d*(t.gc()-1),p=0,h=t.Kc();h.Ob();)s=u(h.Pb(),10),a+=s.o.a,p=y.Math.max(p,s.o.b);for(S=k.a-(a-j.a)/2,c=k.b+j.b+g.a-p,i=j.a/(t.gc()+1),r=i,f=t.Kc();f.Ob();)s=u(f.Pb(),10),s.n.a=S,s.n.b=c,S+=s.o.a+d,l=QHn(s),l.n.a=s.o.a/2-l.a.a,l.n.b=0,m=u(v(s,(W(),tI)),12),m.e.c.length+m.g.c.length==1&&(m.n.a=r-m.a.a,m.n.b=j.b,ic(m,n)),r+=i}}function MDe(n,e){var t,i,r,c,s,f;if(u(v(e,(W(),Hc)),21).Hc((pr(),cs))){for(f=new C(e.a);f.a=0&&s0&&(u(Cr(n.b,e),127).a.b=t)}function IDe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k;if(g=$(R(v(n,(cn(),Av)))),p=$(R(v(n,Sv))),d=$(R(v(n,qw))),f=n.o,c=u(sn(n.j,0),12),s=c.n,k=Xje(c,d),!!k){if(e.Hc((zu(),Fl)))switch(u(v(n,(W(),gc)),64).g){case 1:k.c=(f.a-k.b)/2-s.a,k.d=p;break;case 3:k.c=(f.a-k.b)/2-s.a,k.d=-p-k.a;break;case 2:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=-g-k.b;break;case 4:t&&c.e.c.length==0&&c.g.c.length==0?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=f.b+p-s.b,k.c=g}else if(e.Hc(Ia))switch(u(v(n,(W(),gc)),64).g){case 1:case 3:k.c=s.a+g;break;case 2:case 4:t&&!c.c?(a=i?k.a:u(sn(c.f,0),72).o.b,k.d=(f.b-a)/2-s.b):k.d=s.b+p}for(r=k.d,l=new C(c.f);l.a=e.length)return{done:!0};var r=e[i++];return{value:[r,t.get(r)],done:!1}}}},AAe()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(e){return this.obj[":"+e]},n.prototype.set=function(e,t){this.obj[":"+e]=t},n.prototype[DB]=function(e){delete this.obj[":"+e]},n.prototype.keys=function(){var e=[];for(var t in this.obj)t.charCodeAt(0)==58&&e.push(t.substring(1));return e}),n}function pt(){pt=F,u9=new lt(Jtn),new Dt("DEPTH",Y(0)),iq=new Dt("FAN",Y(0)),mln=new Dt(bVn,Y(0)),Ma=new Dt("ROOT",(_n(),!1)),uq=new Dt("LEFTNEIGHBOR",null),dre=new Dt("RIGHTNEIGHBOR",null),$I=new Dt("LEFTSIBLING",null),oq=new Dt("RIGHTSIBLING",null),tq=new Dt("DUMMY",!1),new Dt("LEVEL",Y(0)),yln=new Dt("REMOVABLE_EDGES",new Ct),$j=new Dt("XCOOR",Y(0)),xj=new Dt("YCOOR",Y(0)),xI=new Dt("LEVELHEIGHT",0),jf=new Dt("LEVELMIN",0),Js=new Dt("LEVELMAX",0),rq=new Dt("GRAPH_XMIN",0),cq=new Dt("GRAPH_YMIN",0),vln=new Dt("GRAPH_XMAX",0),kln=new Dt("GRAPH_YMAX",0),pln=new Dt("COMPACT_LEVEL_ASCENSION",!1),eq=new Dt("COMPACT_CONSTRAINTS",new Z),c9=new Dt("ID",""),o9=new Dt("POSITION",Y(0)),j1=new Dt("PRELIM",0),Lv=new Dt("MODIFIER",0),Dv=new lt(TXn),Nj=new lt(AXn)}function NDe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null)return null;if(d=n.length*8,d==0)return"";for(f=d%24,p=d/24|0,g=f!=0?p+1:p,c=null,c=K(fs,gh,28,g*4,15,1),l=0,a=0,e=0,t=0,i=0,s=0,r=0,h=0;h>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,j=i&-128?(i>>6^252)<<24>>24:i>>6<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2|j],c[s++]=O1[i&63];return f==8?(e=n[r],l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,c[s++]=O1[m],c[s++]=O1[l<<4],c[s++]=61,c[s++]=61):f==16&&(e=n[r],t=n[r+1],a=(t&15)<<24>>24,l=(e&3)<<24>>24,m=e&-128?(e>>2^192)<<24>>24:e>>2<<24>>24,k=t&-128?(t>>4^240)<<24>>24:t>>4<<24>>24,c[s++]=O1[m],c[s++]=O1[k|l<<4],c[s++]=O1[a<<2],c[s++]=61),ws(c,0,c.length)}function $De(n,e){var t,i,r,c,s,f,h;if(n.e==0&&n.p>0&&(n.p=-(n.p-1)),n.p>Wi&&CJ(e,n.p-ha),s=e.q.getDate(),W7(e,1),n.k>=0&&E2e(e,n.k),n.c>=0?W7(e,n.c):n.k>=0?(h=new nY(e.q.getFullYear()-ha,e.q.getMonth(),35),i=35-h.q.getDate(),W7(e,y.Math.min(i,s))):W7(e,s),n.f<0&&(n.f=e.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),b1e(e,n.f==24&&n.g?0:n.f),n.j>=0&&c4e(e,n.j),n.n>=0&&p4e(e,n.n),n.i>=0&&QMn(e,nr(er(Xk(vc(e.q.getTime()),d1),d1),n.i)),n.a&&(r=new JE,CJ(r,r.q.getFullYear()-ha-80),ND(vc(e.q.getTime()),vc(r.q.getTime()))&&CJ(e,r.q.getFullYear()-ha+100)),n.d>=0){if(n.c==-1)t=(7+n.d-e.q.getDay())%7,t>3&&(t-=7),f=e.q.getMonth(),W7(e,e.q.getDate()+t),e.q.getMonth()!=f&&W7(e,e.q.getDate()+(t>0?-7:7));else if(e.q.getDay()!=n.d)return!1}return n.o>Wi&&(c=e.q.getTimezoneOffset(),QMn(e,nr(vc(e.q.getTime()),(n.o-c)*60*d1))),!0}function XGn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;if(r=v(e,(W(),st)),!!D(r,207)){for(m=u(r,27),k=e.e,g=new rr(e.c),c=e.d,g.a+=c.b,g.b+=c.d,N=u(z(m,(cn(),kI)),181),Au(N,(io(),sO))&&(p=u(z(m,hhn),107),Use(p,c.a),Yse(p,c.d),Gse(p,c.b),Qse(p,c.c)),t=new Z,a=new C(e.a);a.ai.c.length-1;)nn(i,new bi(i2,Arn));t=u(v(r,Sh),17).a,hl(u(v(n,vb),88))?(r.e.a<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a),r.e.a+r.f.a>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.a+r.f.a)):(r.e.b<$(R((Ln(t,i.c.length),u(i.c[t],42)).a))&&QO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b),r.e.b+r.f.b>$(R((Ln(t,i.c.length),u(i.c[t],42)).b))&&YO((Ln(t,i.c.length),u(i.c[t],42)),r.e.b+r.f.b))}for(c=ge(n.b,0);c.b!=c.d.c;)r=u(be(c),40),t=u(v(r,(lc(),Sh)),17).a,U(r,(pt(),jf),R((Ln(t,i.c.length),u(i.c[t],42)).a)),U(r,Js,R((Ln(t,i.c.length),u(i.c[t],42)).b));e.Vg()}function FDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k;for(n.o=$(R(v(n.i,(cn(),gb)))),n.f=$(R(v(n.i,Bd))),n.j=n.i.b.c.length,f=n.j-1,g=0,n.k=0,n.n=0,n.b=Of(K(Gi,J,17,n.j,0,1)),n.c=Of(K(si,J,345,n.j,7,1)),s=new C(n.i.b);s.a0&&nn(n.q,a),nn(n.p,a);e-=i,p=h+e,l+=e*n.f,Go(n.b,f,Y(p)),Go(n.c,f,l),n.k=y.Math.max(n.k,p),n.n=y.Math.max(n.n,l),n.e+=e,e+=k}}function en(){en=F;var n;sc=new v7(n8,0),Xn=new v7(eS,1),Zn=new v7(HB,2),ae=new v7(qB,3),Wn=new v7(UB,4),Yf=(Dn(),new r4((n=u(of(lr),9),new _o(n,u(xs(n,n.length),9),0)))),ef=i1(yt(Xn,A(T(lr,1),Mc,64,0,[]))),os=i1(yt(Zn,A(T(lr,1),Mc,64,0,[]))),No=i1(yt(ae,A(T(lr,1),Mc,64,0,[]))),Ts=i1(yt(Wn,A(T(lr,1),Mc,64,0,[]))),mu=i1(yt(Xn,A(T(lr,1),Mc,64,0,[ae]))),su=i1(yt(Zn,A(T(lr,1),Mc,64,0,[Wn]))),tf=i1(yt(Xn,A(T(lr,1),Mc,64,0,[Wn]))),Wu=i1(yt(Xn,A(T(lr,1),Mc,64,0,[Zn]))),$o=i1(yt(ae,A(T(lr,1),Mc,64,0,[Wn]))),ss=i1(yt(Zn,A(T(lr,1),Mc,64,0,[ae]))),Ju=i1(yt(Xn,A(T(lr,1),Mc,64,0,[Zn,Wn]))),pu=i1(yt(Zn,A(T(lr,1),Mc,64,0,[ae,Wn]))),vu=i1(yt(Xn,A(T(lr,1),Mc,64,0,[ae,Wn]))),xu=i1(yt(Xn,A(T(lr,1),Mc,64,0,[Zn,ae]))),Uc=i1(yt(Xn,A(T(lr,1),Mc,64,0,[Zn,ae,Wn])))}function BDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn;for(e.Ug(XXn,1),k=new Z,X=new Z,l=new C(n.b);l.a0&&(O-=p),Wen(s,O),a=0,g=new C(s.a);g.a0),f.a.Xb(f.c=--f.b)),h=.4*i*a,!c&&f.b0&&(h=(zn(0,e.length),e.charCodeAt(0)),h!=64)){if(h==37&&(d=e.lastIndexOf("%"),l=!1,d!=0&&(d==g-1||(l=(zn(d+1,e.length),e.charCodeAt(d+1)==46))))){if(s=(Fi(1,d,e.length),e.substr(1,d-1)),O=An("%",s)?null:utn(s),i=0,l)try{i=Ao((zn(d+2,e.length+1),e.substr(d+2)),Wi,et)}catch(N){throw N=It(N),D(N,130)?(f=N,M(new eT(f))):M(N)}for(j=LQ(n.Gh());j.Ob();)if(m=PT(j),D(m,519)&&(r=u(m,598),I=r.d,(O==null?I==null:An(O,I))&&i--==0))return r;return null}if(a=e.lastIndexOf("."),p=a==-1?e:(Fi(0,a,e.length),e.substr(0,a)),t=0,a!=-1)try{t=Ao((zn(a+1,e.length+1),e.substr(a+1)),Wi,et)}catch(N){if(N=It(N),D(N,130))p=e;else throw M(N)}for(p=An("%",p)?null:utn(p),k=LQ(n.Gh());k.Ob();)if(m=PT(k),D(m,197)&&(c=u(m,197),S=c.xe(),(p==null?S==null:An(p,S))&&t--==0))return c;return null}return xGn(n,e)}function zDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;for(a=new de,h=new C0,i=new C(n.a.a.b);i.ae.d.c){if(p=n.c[e.a.d],j=n.c[d.a.d],p==j)continue;qs(Ls(Ds(Ns(Os(new hs,1),100),p),j))}}}}}function XDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X;if(g=u(u(ot(n.r,e),21),87),e==(en(),Zn)||e==Wn){UGn(n,e);return}for(c=e==Xn?(N0(),ij):(N0(),rj),N=e==Xn?(bu(),kf):(bu(),Xs),t=u(Cr(n.b,e),127),i=t.i,r=i.c+Dg(A(T(Pi,1),Tr,28,15,[t.n.b,n.C.b,n.k])),S=i.c+i.b-Dg(A(T(Pi,1),Tr,28,15,[t.n.c,n.C.c,n.k])),s=kz(xV(c),n.t),I=e==Xn?li:St,d=g.Kc();d.Ob();)l=u(d.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(j=l.b.Mf(),k=l.e,p=l.c,m=p.i,m.b=(h=p.n,p.e.a+h.b+h.c),m.a=(f=p.n,p.e.b+f.d+f.a),G7(N,xtn),p.f=N,df(p,(Uu(),zs)),m.c=k.a-(m.b-j.a)/2,_=y.Math.min(r,k.a),X=y.Math.max(S,k.a+j.a),m.c<_?m.c=_:m.c+m.b>X&&(m.c=X-m.b),nn(s.d,new ZL(m,AY(s,m))),I=e==Xn?y.Math.max(I,k.b+l.b.Mf().b):y.Math.min(I,k.b));for(I+=e==Xn?n.t:-n.t,O=zY((s.e=I,s)),O>0&&(u(Cr(n.b,e),127).a.b=O),a=g.Kc();a.Ob();)l=u(a.Pb(),117),!(!l.c||l.c.d.c.length<=0)&&(m=l.c.i,m.c-=l.e.a,m.d-=l.e.b)}function VDe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;for(e=new de,h=new ne(n);h.e!=h.i.gc();){for(f=u(ue(h),27),t=new ni,Ve(m_,f,t),p=new Rbn,r=u(Wr(new Tn(null,new p0(new ie(ce(cy(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)])))),85),X$n(t,u(r.xc((_n(),!0)),16),new Kbn),i=u(Wr(ut(u(r.xc(!1),15).Lc(),new _bn),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),15),s=i.Kc();s.Ob();)c=u(s.Pb(),74),g=XKn(c),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l));for(r=u(Wr(new Tn(null,new p0(new ie(ce(Al(f).a.Kc(),new En)))),dPn(p,qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr])))),85),X$n(t,u(r.xc(!0),16),new Hbn),i=u(Wr(ut(u(r.xc(!1),15).Lc(),new qbn),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),15),d=i.Kc();d.Ob();)a=u(d.Pb(),74),g=VKn(a),g&&(l=u(Kr(wr(e.f,g)),21),l||(l=gqn(g),Vc(e.f,g,l)),Bi(t,l))}}function WDe(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k;if(h=Ec(n,0)<0,h&&(n=n1(n)),Ec(n,0)==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return p=new x1,e<0?p.a+="0E+":p.a+="0E",p.a+=e==Wi?"2147483648":""+-e,p.a}a=18,d=K(fs,gh,28,a+1,15,1),t=a,k=n;do l=k,k=Xk(k,10),d[--t]=Ae(nr(48,bs(l,er(k,10))))&ui;while(Ec(k,0)!=0);if(r=bs(bs(bs(a,t),e),1),e==0)return h&&(d[--t]=45),ws(d,t,a-t);if(e>0&&Ec(r,-6)>=0){if(Ec(r,0)>=0){for(c=t+Ae(r),f=a-1;f>=c;f--)d[f+1]=d[f];return d[++c]=46,h&&(d[--t]=45),ws(d,t,a-t+1)}for(s=2;ND(s,nr(n1(r),1));s++)d[--t]=48;return d[--t]=46,d[--t]=48,h&&(d[--t]=45),ws(d,t,a-t)}return m=t+1,i=a,g=new fg,h&&(g.a+="-"),i-m>=1?(z1(g,d[t]),g.a+=".",g.a+=ws(d,t+1,a-t-1)):g.a+=ws(d,t,a-t),g.a+="E",Ec(r,0)>0&&(g.a+="+"),g.a+=""+_6(r),g.a}function G0(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X;if(j=new V(n.g,n.f),k=jnn(n),k.a=y.Math.max(k.a,e),k.b=y.Math.max(k.b,t),X=k.a/j.a,a=k.b/j.b,N=k.a-j.a,h=k.b-j.b,i)for(s=At(n)?u(z(At(n),(He(),_d)),88):u(z(n,(He(),_d)),88),f=x(z(n,(He(),v9)))===x((Oi(),qc)),I=new ne((!n.c&&(n.c=new q(Qu,n,9,9)),n.c));I.e!=I.i.gc();)switch(S=u(ue(I),123),O=u(z(S,H2),64),O==(en(),sc)&&(O=Ren(S,s),ht(S,H2,O)),O.g){case 1:f||eu(S,S.i*X);break;case 2:eu(S,S.i+N),f||tu(S,S.j*a);break;case 3:f||eu(S,S.i*X),tu(S,S.j+h);break;case 4:f||tu(S,S.j*a)}if(kg(n,k.a,k.b),r)for(g=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));g.e!=g.i.gc();)d=u(ue(g),135),p=d.i+d.g/2,m=d.j+d.f/2,_=p/j.a,l=m/j.b,_+l>=1&&(_-l>0&&m>=0?(eu(d,d.i+N),tu(d,d.j+h*l)):_-l<0&&p>=0&&(eu(d,d.i+N*_),tu(d,d.j+h)));return ht(n,(He(),Hd),(go(),c=u(of(S9),9),new _o(c,u(xs(c,c.length),9),0))),new V(X,a)}function QGn(n){r0(n,new gd(UE(e0(Yd(n0(Zd(new Ka,es),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new V4n),es))),Q(n,es,TS,rn(fce)),Q(n,es,yw,rn(hce)),Q(n,es,r2,rn(cce)),Q(n,es,d3,rn(uce)),Q(n,es,a3,rn(oce)),Q(n,es,Xm,rn(rce)),Q(n,es,r8,rn(Jln)),Q(n,es,Vm,rn(sce)),Q(n,es,XR,rn(kq)),Q(n,es,zR,rn(yq)),Q(n,es,LS,rn(Yln)),Q(n,es,VR,rn(jq)),Q(n,es,WR,rn(Zln)),Q(n,es,zrn,rn(n1n)),Q(n,es,Grn,rn(Qln)),Q(n,es,_rn,rn(_I)),Q(n,es,Hrn,rn(HI)),Q(n,es,qrn,rn(Fj)),Q(n,es,Urn,rn(e1n)),Q(n,es,Krn,rn(Wln))}function zA(n){var e,t,i,r,c,s,f,h,l,a,d;if(n==null)throw M(new th(gu));if(l=n,c=n.length,h=!1,c>0&&(e=(zn(0,n.length),n.charCodeAt(0)),(e==45||e==43)&&(n=(zn(1,n.length+1),n.substr(1)),--c,h=e==45)),c==0)throw M(new th(V0+l+'"'));for(;n.length>0&&(zn(0,n.length),n.charCodeAt(0)==48);)n=(zn(1,n.length+1),n.substr(1)),--c;if(c>(SUn(),gQn)[10])throw M(new th(V0+l+'"'));for(r=0;r0&&(d=-parseInt((Fi(0,i,n.length),n.substr(0,i)),10),n=(zn(i,n.length+1),n.substr(i)),c-=i,t=!1);c>=s;){if(i=parseInt((Fi(0,s,n.length),n.substr(0,s)),10),n=(zn(s,n.length+1),n.substr(s)),c-=s,t)t=!1;else{if(Ec(d,f)<0)throw M(new th(V0+l+'"'));d=er(d,a)}d=bs(d,i)}if(Ec(d,0)>0)throw M(new th(V0+l+'"'));if(!h&&(d=n1(d),Ec(d,0)<0))throw M(new th(V0+l+'"'));return d}function utn(n){UF();var e,t,i,r,c,s,f,h;if(n==null)return null;if(r=ih(n,wu(37)),r<0)return n;for(h=new mo((Fi(0,r,n.length),n.substr(0,r))),e=K(Fu,s2,28,4,15,1),f=0,i=0,s=n.length;rr+2&&R$((zn(r+1,n.length),n.charCodeAt(r+1)),Bdn,Rdn)&&R$((zn(r+2,n.length),n.charCodeAt(r+2)),Bdn,Rdn))if(t=gbe((zn(r+1,n.length),n.charCodeAt(r+1)),(zn(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?(t&192)==128?e[f++]=t<<24>>24:i=0:t>=128&&((t&224)==192?(e[f++]=t<<24>>24,i=2):(t&240)==224?(e[f++]=t<<24>>24,i=3):(t&248)==240&&(e[f++]=t<<24>>24,i=4)),i>0){if(f==i){switch(f){case 2:{z1(h,((e[0]&31)<<6|e[1]&63)&ui);break}case 3:{z1(h,((e[0]&15)<<12|(e[1]&63)<<6|e[2]&63)&ui);break}}f=0,i=0}}else{for(c=0;c=2){if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i==0)t=(B1(),r=new jE,r),ve((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),t);else if((!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i>1)for(g=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));g.e!=g.i.gc();)O5(g);dy(e,u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166))}if(d)for(i=new ne((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));i.e!=i.i.gc();)for(t=u(ue(i),166),l=new ne((!t.a&&(t.a=new ti(xo,t,5)),t.a));l.e!=l.i.gc();)h=u(ue(l),377),f.a=y.Math.max(f.a,h.a),f.b=y.Math.max(f.b,h.b);for(s=new ne((!n.n&&(n.n=new q(Ar,n,1,7)),n.n));s.e!=s.i.gc();)c=u(ue(s),135),a=u(z(c,j9),8),a&&Ro(c,a.a,a.b),d&&(f.a=y.Math.max(f.a,c.i+c.g),f.b=y.Math.max(f.b,c.j+c.f));return f}function ZGn(n,e,t,i,r){var c,s,f;if(n$n(n,e),s=e[0],c=Xi(t.c,0),f=-1,iY(t))if(i>0){if(s+i>n.length)return!1;f=yA((Fi(0,s+i,n.length),n.substr(0,s+i)),e)}else f=yA(n,e);switch(c){case 71:return f=Ug(n,s,A(T(fn,1),J,2,6,[Bzn,Rzn]),e),r.e=f,!0;case 77:return lAe(n,e,r,f,s);case 76:return aAe(n,e,r,f,s);case 69:return iEe(n,e,s,r);case 99:return rEe(n,e,s,r);case 97:return f=Ug(n,s,A(T(fn,1),J,2,6,["AM","PM"]),e),r.b=f,!0;case 121:return dAe(n,e,s,f,t,r);case 100:return f<=0?!1:(r.c=f,!0);case 83:return f<0?!1:v8e(f,s,e[0],r);case 104:f==12&&(f=0);case 75:case 72:return f<0?!1:(r.f=f,r.g=!1,!0);case 107:return f<0?!1:(r.f=f,r.g=!0,!0);case 109:return f<0?!1:(r.j=f,!0);case 115:return f<0?!1:(r.n=f,!0);case 90:if(syn[h]&&(j=h),d=new C(n.a.b);d.a1;){if(r=rTe(e),d=c.g,m=u(z(e,h9),107),k=$(R(z(e,zI))),(!e.a&&(e.a=new q(Ye,e,10,11)),e.a).i>1&&$(R(z(e,(_h(),Iq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))1&&$(R(z(e,(_h(),Pq))))!=St&&(c.c+(m.b+m.c))/(c.b+(m.d+m.a))>k&&ht(r,(_h(),Xw),y.Math.max($(R(z(e,f9))),$(R(z(r,Xw)))-$(R(z(e,Pq))))),p=new dX(i,a),h=vzn(p,r,g),l=h.g,l>=d&&l==l){for(s=0;s<(!r.a&&(r.a=new q(Ye,r,10,11)),r.a).i;s++)z_n(n,u(L((!r.a&&(r.a=new q(Ye,r,10,11)),r.a),s),27),u(L((!e.a&&(e.a=new q(Ye,e,10,11)),e.a),s),27));T$n(e,p),s2e(c,h.c),o2e(c,h.b)}--f}ht(e,(_h(),Nv),c.b),ht(e,O3,c.c),t.Vg()}function ZDe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;for(e.Ug("Interactive node layering",1),t=new Z,g=new C(n.a);g.a=f){oe(I.b>0),I.a.Xb(I.c=--I.b);break}else j.a>h&&(i?(hi(i.b,j.b),i.a=y.Math.max(i.a,j.a),bo(I)):(nn(j.b,a),j.c=y.Math.min(j.c,h),j.a=y.Math.max(j.a,f),i=j));i||(i=new Vyn,i.c=h,i.a=f,Rb(I,i),nn(i.b,a))}for(s=n.b,l=0,S=new C(t);S.ap&&(c&&(ir(X,g),ir(yn,Y(l.b-1))),xe=t.b,Lt+=g+e,g=0,a=y.Math.max(a,t.b+t.c+te)),eu(f,xe),tu(f,Lt),a=y.Math.max(a,xe+te+t.c),g=y.Math.max(g,d),xe+=te+e;if(a=y.Math.max(a,i),Rn=Lt+g+t.a,Rnvh,kn=y.Math.abs(g.b-m.b)>vh,(!t&&yn&&kn||t&&(yn||kn))&&Fe(j.a,N)),Bi(j.a,i),i.b==0?g=N:g=(oe(i.b!=0),u(i.c.b.c,8)),Rve(p,d,k),Mxn(r)==tn&&(Hi(tn.i)!=r.a&&(k=new Li,mnn(k,Hi(tn.i),I)),U(j,pH,k)),yje(p,j,I),a.a.zc(p,a);Zi(j,_),Ii(j,tn)}for(l=a.a.ec().Kc();l.Ob();)h=u(l.Pb(),18),Zi(h,null),Ii(h,null);e.Vg()}function tLe(n,e){var t,i,r,c,s,f,h,l,a,d,g;for(r=u(v(n,(lc(),vb)),88),a=r==(ci(),Br)||r==Xr?Wf:Xr,t=u(Wr(ut(new Tn(null,new In(n.b,16)),new n4n),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),h=u(Wr(_r(t.Oc(),new wkn(e)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),15),h.Gc(u(Wr(_r(t.Oc(),new gkn(e)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),16)),h.jd(new pkn(a)),g=new Ul(new mkn(r)),i=new de,f=h.Kc();f.Ob();)s=u(f.Pb(),240),l=u(s.a,40),on(un(s.c))?(g.a.zc(l,(_n(),ga))==null,new Y3(g.a.Zc(l,!1)).a.gc()>0&&Ve(i,l,u(new Y3(g.a.Zc(l,!1)).a.Vc(),40)),new Y3(g.a.ad(l,!0)).a.gc()>1&&Ve(i,PBn(g,l),l)):(new Y3(g.a.Zc(l,!1)).a.gc()>0&&(c=u(new Y3(g.a.Zc(l,!1)).a.Vc(),40),x(c)===x(Kr(wr(i.f,l)))&&u(v(l,(pt(),eq)),15).Fc(c)),new Y3(g.a.ad(l,!0)).a.gc()>1&&(d=PBn(g,l),x(Kr(wr(i.f,d)))===x(l)&&u(v(d,(pt(),eq)),15).Fc(l)),g.a.Bc(l)!=null)}function nzn(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;if(n.gc()==1)return u(n.Xb(0),235);if(n.gc()<=0)return new zM;for(r=n.Kc();r.Ob();){for(t=u(r.Pb(),235),m=0,a=et,d=et,h=Wi,l=Wi,p=new C(t.e);p.af&&(O=0,N+=s+S,s=0),PSe(k,t,O,N),e=y.Math.max(e,O+j.a),s=y.Math.max(s,j.b),O+=j.a+S;return k}function iLe(n){Ben();var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(n==null||(c=iT(n),m=O5e(c),m%4!=0))return null;if(k=m/4|0,k==0)return K(Fu,s2,28,0,15,1);for(d=null,e=0,t=0,i=0,r=0,s=0,f=0,h=0,l=0,p=0,g=0,a=0,d=K(Fu,s2,28,k*3,15,1);p>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24}return!n7(s=c[a++])||!n7(f=c[a++])?null:(e=nh[s],t=nh[f],h=c[a++],l=c[a++],nh[h]==-1||nh[l]==-1?h==61&&l==61?t&15?null:(j=K(Fu,s2,28,p*3+1,15,1),Ic(d,0,j,0,p*3),j[g]=(e<<2|t>>4)<<24>>24,j):h!=61&&l==61?(i=nh[h],i&3?null:(j=K(Fu,s2,28,p*3+2,15,1),Ic(d,0,j,0,p*3),j[g++]=(e<<2|t>>4)<<24>>24,j[g]=((t&15)<<4|i>>2&15)<<24>>24,j)):null:(i=nh[h],r=nh[l],d[g++]=(e<<2|t>>4)<<24>>24,d[g++]=((t&15)<<4|i>>2&15)<<24>>24,d[g++]=(i<<6|r)<<24>>24,d))}function rLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_;for(e.Ug(XXn,1),m=u(v(n,(cn(),$l)),223),r=new C(n.b);r.a=2){for(k=!0,g=new C(c.j),t=u(E(g),12),p=null;g.a0)if(i=d.gc(),l=wi(y.Math.floor((i+1)/2))-1,r=wi(y.Math.ceil((i+1)/2))-1,e.o==Xf)for(a=r;a>=l;a--)e.a[N.p]==N&&(k=u(d.Xb(a),42),m=u(k.a,10),!sf(t,k.b)&&p>n.b.e[m.p]&&(e.a[m.p]=N,e.g[N.p]=e.g[m.p],e.a[N.p]=e.g[N.p],e.f[e.g[N.p].p]=(_n(),!!(on(e.f[e.g[N.p].p])&N.k==(Vn(),Mi))),p=n.b.e[m.p]));else for(a=l;a<=r;a++)e.a[N.p]==N&&(S=u(d.Xb(a),42),j=u(S.a,10),!sf(t,S.b)&&p0&&(r=u(sn(j.c.a,X-1),10),s=n.i[r.p],yn=y.Math.ceil(jg(n.n,r,j)),c=_.a.e-j.d.d-(s.a.e+r.o.b+r.d.a)-yn),l=St,X0&&tn.a.e.e-tn.a.a-(tn.b.e.e-tn.b.a)<0,m=O.a.e.e-O.a.a-(O.b.e.e-O.b.a)<0&&tn.a.e.e-tn.a.a-(tn.b.e.e-tn.b.a)>0,p=O.a.e.e+O.b.atn.b.e.e+tn.a.a,N=0,!k&&!m&&(g?c+d>0?N=d:l-i>0&&(N=i):p&&(c+f>0?N=f:l-I>0&&(N=I))),_.a.e+=N,_.b&&(_.d.e+=N),!1))}function tzn(n,e,t){var i,r,c,s,f,h,l,a,d,g;if(i=new Ho(e.Lf().a,e.Lf().b,e.Mf().a,e.Mf().b),r=new mp,n.c)for(s=new C(e.Rf());s.al&&(i.a+=ITn(K(fs,gh,28,-l,15,1))),i.a+="Is",ih(h,wu(32))>=0)for(r=0;r=i.o.b/2}else I=!d;I?(S=u(v(i,(W(),P3)),15),S?g?c=S:(r=u(v(i,C3),15),r?S.gc()<=r.gc()?c=S:c=r:(c=new Z,U(i,C3,c))):(c=new Z,U(i,P3,c))):(r=u(v(i,(W(),C3)),15),r?d?c=r:(S=u(v(i,P3),15),S?r.gc()<=S.gc()?c=r:c=S:(c=new Z,U(i,P3,c))):(c=new Z,U(i,C3,c))),c.Fc(n),U(n,(W(),tI),t),e.d==t?(Ii(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null),j6e(t)):(Zi(e,null),t.e.c.length+t.g.c.length==0&&ic(t,null)),vo(e.a)}function sLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe,Lt;for(t.Ug("MinWidth layering",1),p=e.b,tn=e.a,Lt=u(v(e,(cn(),ihn)),17).a,f=u(v(e,rhn),17).a,n.b=$(R(v(e,Ws))),n.d=St,N=new C(tn);N.a0?(l=0,j&&(l+=f),l+=(kn-1)*s,O&&(l+=f),yn&&O&&(l=y.Math.max(l,STe(O,s,I,tn))),l=n.a&&(i=UPe(n,I),a=y.Math.max(a,i.b),N=y.Math.max(N,i.d),nn(f,new bi(I,i)));for(yn=new Z,l=0;l0),j.a.Xb(j.c=--j.b),kn=new Lc(n.b),Rb(j,kn),oe(j.b0){for(g=a<100?null:new F1(a),l=new KQ(e),m=l.g,S=K(ye,_e,28,a,15,1),i=0,N=new S0(a),r=0;r=0;)if(p!=null?rt(p,m[h]):x(p)===x(m[h])){S.length<=i&&(j=S,S=K(ye,_e,28,2*S.length,15,1),Ic(j,0,S,0,i)),S[i++]=r,ve(N,m[h]);break n}if(p=p,x(p)===x(f))break}}if(l=N,m=N.g,a=i,i>S.length&&(j=S,S=K(ye,_e,28,i,15,1),Ic(j,0,S,0,i)),i>0){for(O=!0,c=0;c=0;)Jp(n,S[s]);if(i!=a){for(r=a;--r>=i;)Jp(l,r);j=S,S=K(ye,_e,28,i,15,1),Ic(j,0,S,0,i)}e=l}}}else for(e=M7e(n,e),r=n.i;--r>=0;)e.Hc(n.g[r])&&(Jp(n,r),O=!0);if(O){if(S!=null){for(t=e.gc(),d=t==1?W6(n,4,e.Kc().Pb(),null,S[0],k):W6(n,6,e,S,S[0],k),g=t<100?null:new F1(t),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g?(g.nj(d),g.oj()):it(n.e,d)}else{for(g=Oae(e.gc()),r=e.Kc();r.Ob();)p=r.Pb(),g=PV(n,u(p,76),g);g&&g.oj()}return!0}else return!1}function lLe(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O;for(t=new yRn(e),t.a||KSe(e),l=FAe(e),h=new C0,j=new Eqn,k=new C(e.a);k.a0||t.o==Xf&&r=t}function dLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te;for(O=e,I=new C0,N=new C0,a=A0(O,Scn),i=new IIn(n,t,I,N),Lje(i.a,i.b,i.c,i.d,a),h=(tn=I.i,tn||(I.i=new Mg(I,I.c))),kn=h.Kc();kn.Ob();)for(yn=u(kn.Pb(),166),r=u(ot(I,yn),21),k=r.Kc();k.Ob();)if(m=k.Pb(),_=u(Lg(n.d,m),166),_)f=(!yn.e&&(yn.e=new Nn(Mt,yn,10,9)),yn.e),ve(f,_);else throw s=bl(O,Eh),g=kWn+m+yWn+s,p=g+iv,M(new eh(p));for(l=(X=N.i,X||(N.i=new Mg(N,N.c))),Rn=l.Kc();Rn.Ob();)for(Fn=u(Rn.Pb(),166),c=u(ot(N,Fn),21),S=c.Kc();S.Ob();)if(j=S.Pb(),_=u(Lg(n.d,j),166),_)d=(!Fn.g&&(Fn.g=new Nn(Mt,Fn,9,10)),Fn.g),ve(d,_);else throw s=bl(O,Eh),g=kWn+j+yWn+s,p=g+iv,M(new eh(p));!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i!=0&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i!=0)&&(!t.b&&(t.b=new Nn(he,t,4,7)),t.b.i<=1&&(!t.c&&(t.c=new Nn(he,t,5,8)),t.c.i<=1))&&(!t.a&&(t.a=new q(Mt,t,6,6)),t.a).i==1&&(te=u(L((!t.a&&(t.a=new q(Mt,t,6,6)),t.a),0),166),!Sx(te)&&!Px(te)&&(mT(te,u(L((!t.b&&(t.b=new Nn(he,t,4,7)),t.b),0),84)),vT(te,u(L((!t.c&&(t.c=new Nn(he,t,5,8)),t.c),0),84))))}function bLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn;for(O=n.a,N=0,_=O.length;N<_;++N){for(I=O[N],l=et,a=et,m=new C(I.e);m.a0?(d=u(sn(g.c.a,s-1),10),yn=jg(n.b,g,d),j=g.n.b-g.d.d-(d.n.b+d.o.b+d.d.a+yn)):j=g.n.b-g.d.d,l=y.Math.min(j,l),s1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,1),8).b-a.b)))));else for(k=new C(e.j);k.ar&&(c=g.a-r,s=et,i.c.length=0,r=g.a),g.a>=r&&(Kn(i.c,f),f.a.b>1&&(s=y.Math.min(s,y.Math.abs(u(Zo(f.a,f.a.b-2),8).b-g.b)))));if(i.c.length!=0&&c>e.o.a/2&&s>e.o.b/2){for(p=new Pc,ic(p,e),gi(p,(en(),Xn)),p.n.a=e.o.a/2,S=new Pc,ic(S,e),gi(S,ae),S.n.a=e.o.a/2,S.n.b=e.o.b,h=new C(i);h.a=l.b?Zi(f,S):Zi(f,p)):(l=u(cbe(f.a),8),j=f.a.b==0?If(f.c):u($s(f.a),8),j.b>=l.b?Ii(f,S):Ii(f,p)),d=u(v(f,(cn(),Fr)),75),d&&iw(d,l,!0);e.n.a=r-e.o.a/2}}function gLe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(f=ge(n.b,0);f.b!=f.d.c;)if(s=u(be(f),40),!An(s.c,IS))for(l=_Ce(s,n),e==(ci(),Br)||e==Xr?Yt(l,new M4n):Yt(l,new T4n),h=l.c.length,i=0;i=0?p=zp(f):p=xk(zp(f)),n.qf(Mv,p)),l=new Li,g=!1,n.pf(bb)?(ZX(l,u(n.of(bb),8)),g=!0):T1e(l,s.a/2,s.b/2),p.g){case 4:U(a,ou,(Yo(),ya)),U(a,rI,(hd(),m2)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(en(),Zn)),g||(l.a=s.a),l.a-=s.a;break;case 2:U(a,ou,(Yo(),xw)),U(a,rI,(hd(),mv)),a.o.b=s.b,k<0&&(a.o.a=-k),gi(d,(en(),Wn)),g||(l.a=0);break;case 1:U(a,Od,(vl(),k2)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(en(),ae)),g||(l.b=s.b),l.b-=s.b;break;case 3:U(a,Od,(vl(),E3)),a.o.a=s.a,k<0&&(a.o.b=-k),gi(d,(en(),Xn)),g||(l.b=0)}if(ZX(d.n,l),U(a,bb,l),e==Ud||e==tl||e==qc){if(m=0,e==Ud&&n.pf(v1))switch(p.g){case 1:case 2:m=u(n.of(v1),17).a;break;case 3:case 4:m=-u(n.of(v1),17).a}else switch(p.g){case 4:case 2:m=c.b,e==tl&&(m/=r.b);break;case 1:case 3:m=c.a,e==tl&&(m/=r.a)}U(a,fb,m)}return U(a,gc,p),a}function pLe(){Cz();function n(i){var r=this;this.dispatch=function(c){var s=c.data;switch(s.cmd){case"algorithms":var f=GY((Dn(),new Q3(new ol(Da.b))));i.postMessage({id:s.id,data:f});break;case"categories":var h=GY((Dn(),new Q3(new ol(Da.c))));i.postMessage({id:s.id,data:h});break;case"options":var l=GY((Dn(),new Q3(new ol(Da.d))));i.postMessage({id:s.id,data:l});break;case"register":kOe(s.algorithms),i.postMessage({id:s.id});break;case"layout":WPe(s.graph,s.layoutOptions||{},s.options||{}),i.postMessage({id:s.id,data:s.graph});break}},this.saveDispatch=function(c){try{r.dispatch(c)}catch(s){i.postMessage({id:c.data.id,error:s})}}}function e(i){var r=this;this.dispatcher=new n({postMessage:function(c){r.onmessage({data:c})}}),this.postMessage=function(c){setTimeout(function(){r.dispatcher.saveDispatch({data:c})},0)}}if(typeof document===xB&&typeof self!==xB){var t=new n(self);self.onmessage=t.saveDispatch}else typeof gt!==xB&>.exports&&(Object.defineProperty(Sr,"__esModule",{value:!0}),gt.exports={default:e,Worker:e})}function szn(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(a=new Tl(t),Ur(a,e),U(a,(W(),st),e),a.o.a=e.g,a.o.b=e.f,a.n.a=e.i,a.n.b=e.j,nn(t.a,a),Ve(n.a,e,a),((!e.a&&(e.a=new q(Ye,e,10,11)),e.a).i!=0||on(un(z(e,(cn(),Rw)))))&&U(a,Zsn,(_n(),!0)),l=u(v(t,Hc),21),d=u(v(a,(cn(),Kt)),101),d==(Oi(),Pa)?U(a,Kt,Qf):d!=Qf&&l.Fc((pr(),yv)),g=0,i=u(v(t,Do),88),h=new ne((!e.c&&(e.c=new q(Qu,e,9,9)),e.c));h.e!=h.i.gc();)f=u(ue(h),123),r=At(e),(x(z(r,Yh))!==x((lh(),k1))||x(z(r,Ld))===x((o1(),pv))||x(z(r,Ld))===x((o1(),gv))||on(un(z(r,lb)))||x(z(r,Fw))!==x((dd(),Ow))||x(z(r,ja))===x((ps(),pb))||x(z(r,ja))===x((ps(),Uw))||x(z(r,$d))===x((a1(),Pv))||x(z(r,$d))===x((a1(),Iv)))&&!on(un(z(e,lI)))&&ht(f,dt,Y(g++)),on(un(z(f,Fd)))||ADe(n,f,a,l,i,d);for(s=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));s.e!=s.i.gc();)c=u(ue(s),135),!on(un(z(c,Fd)))&&c.a&&nn(a.b,ex(c));return on(un(v(a,q8)))&&l.Fc((pr(),ZP)),on(un(v(a,wI)))&&(l.Fc((pr(),nI)),l.Fc(F8),U(a,Kt,Qf)),a}function QF(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe,Lt;for(k=0,Fn=0,l=new C(n.b);l.ak&&(c&&(ir(X,p),ir(yn,Y(a.b-1)),nn(n.d,m),f.c.length=0),xe=t.b,Lt+=p+e,p=0,d=y.Math.max(d,t.b+t.c+te)),Kn(f.c,h),dRn(h,xe,Lt),d=y.Math.max(d,xe+te+t.c),p=y.Math.max(p,g),xe+=te+e,m=h;if(hi(n.a,f),nn(n.d,u(sn(f,f.c.length-1),163)),d=y.Math.max(d,i),Rn=Lt+p+t.a,Rnr.d.d+r.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))),i.b!=i.d.c&&(e=t);a&&(c=u(ee(n.f,s.d.i),60),e.bc.d.d+c.d.a?a.f.d=!0:(a.f.d=!0,a.f.a=!0))}for(f=new ie(ce(ji(p).a.Kc(),new En));pe(f);)s=u(fe(f),18),s.a.b!=0&&(e=u($s(s.a),8),s.d.j==(en(),Xn)&&(j=new q5(e,new V(e.a,r.d.d),r,s),j.f.a=!0,j.a=s.d,Kn(k.c,j)),s.d.j==ae&&(j=new q5(e,new V(e.a,r.d.d+r.d.a),r,s),j.f.d=!0,j.a=s.d,Kn(k.c,j)))}return k}function ELe(n,e,t){var i,r,c,s,f,h,l,a,d,g;for(h=new Z,d=e.length,s=tY(t),l=0;l=m&&(I>m&&(p.c.length=0,m=I),Kn(p.c,s));p.c.length!=0&&(g=u(sn(p,cA(e,p.c.length)),131),Rn.a.Bc(g)!=null,g.s=k++,nen(g,kn,X),p.c.length=0)}for(N=n.c.length+1,f=new C(n);f.aFn.s&&(bo(t),du(Fn.i,i),i.c>0&&(i.a=Fn,nn(Fn.t,i),i.b=tn,nn(tn.i,i)))}function fzn(n,e,t,i,r){var c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn;for(k=new Gc(e.b),N=new Gc(e.b),g=new Gc(e.b),yn=new Gc(e.b),j=new Gc(e.b),tn=ge(e,0);tn.b!=tn.d.c;)for(_=u(be(tn),12),f=new C(_.g);f.a0,S=_.g.c.length>0,l&&S?Kn(g.c,_):l?Kn(k.c,_):S&&Kn(N.c,_);for(m=new C(k);m.aI.nh()-l.b&&(g=I.nh()-l.b),p>I.oh()-l.d&&(p=I.oh()-l.d),a0){for(O=ge(n.f,0);O.b!=O.d.c;)I=u(be(O),10),I.p+=g-n.e;vnn(n),vo(n.f),ben(n,i,p)}else{for(Fe(n.f,p),p.p=i,n.e=y.Math.max(n.e,i),c=new ie(ce(ji(p).a.Kc(),new En));pe(c);)r=u(fe(c),18),!r.c.i.c&&r.c.i.k==(Vn(),Ac)&&(Fe(n.f,r.c.i),r.c.i.p=i-1);n.c=i}else vnn(n),vo(n.f),i=0,pe(new ie(ce(ji(p).a.Kc(),new En)))?(g=0,g=mRn(g,p),i=g+2,ben(n,i,p)):(Fe(n.f,p),p.p=0,n.e=y.Math.max(n.e,0),n.b=u(sn(n.d.b,0),30),n.c=0);for(n.f.b==0||vnn(n),n.d.a.c.length=0,S=new Z,l=new C(n.d.b);l.a=48&&e<=57){for(i=e-48;r=48&&e<=57;)if(i=i*10+e-48,i<0)throw M(new Le($e((Ie(),_cn))))}else throw M(new Le($e((Ie(),XWn))));if(t=i,e==44){if(r>=n.j)throw M(new Le($e((Ie(),WWn))));if((e=Xi(n.i,r++))>=48&&e<=57){for(t=e-48;r=48&&e<=57;)if(t=t*10+e-48,t<0)throw M(new Le($e((Ie(),_cn))));if(i>t)throw M(new Le($e((Ie(),JWn))))}else t=-1}if(e!=125)throw M(new Le($e((Ie(),VWn))));n.bm(r)?(c=(nt(),nt(),new Xb(9,c)),n.d=r+1):(c=(nt(),nt(),new Xb(3,c)),n.d=r),c.Om(i),c.Nm(t),Ze(n)}}return c}function PLe(n){var e,t,i,r,c;switch(t=u(v(n,(W(),Hc)),21),e=DC(mZn),r=u(v(n,(cn(),Bw)),346),r==(jl(),M1)&&Mo(e,vZn),on(un(v(n,TH)))?Ke(e,(Vi(),Vs),(tr(),$_)):Ke(e,(Vi(),Oc),(tr(),$_)),v(n,(JM(),b9))!=null&&Mo(e,kZn),(on(un(v(n,nhn)))||on(un(v(n,Jfn))))&&Pu(e,(Vi(),zr),(tr(),Won)),u(v(n,Do),88).g){case 2:case 3:case 4:Pu(Ke(e,(Vi(),Vs),(tr(),Qon)),zr,Jon)}switch(t.Hc((pr(),ZP))&&Pu(Ke(Ke(e,(Vi(),Vs),(tr(),Von)),Kc,zon),zr,Xon),x(v(n,ja))!==x((ps(),AI))&&Ke(e,(Vi(),Oc),(tr(),asn)),t.Hc(eI)&&(Ke(e,(Vi(),Vs),(tr(),gsn)),Ke(e,Jh,bsn),Ke(e,Oc,wsn)),x(v(n,fI))!==x((jm(),x8))&&x(v(n,$l))!==x((El(),Yj))&&Pu(e,(Vi(),zr),(tr(),usn)),on(un(v(n,Yfn)))&&Ke(e,(Vi(),Oc),(tr(),csn)),on(un(v(n,jH)))&&Ke(e,(Vi(),Oc),(tr(),psn)),HMe(n)&&(x(v(n,Bw))===x(M1)?i=u(v(n,Cj),299):i=u(v(n,yH),299),c=i==(Z4(),uH)?(tr(),dsn):(tr(),ksn),Ke(e,(Vi(),Kc),c)),u(v(n,Thn),388).g){case 1:Ke(e,(Vi(),Kc),(tr(),msn));break;case 2:Pu(Ke(Ke(e,(Vi(),Oc),(tr(),Hon)),Kc,qon),zr,Uon)}return x(v(n,Yh))!==x((lh(),k1))&&Ke(e,(Vi(),Oc),(tr(),vsn)),e}function dzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O;if(Zc(n.a,e)){if(sf(u(ee(n.a,e),49),t))return 1}else Ve(n.a,e,new ni);if(Zc(n.a,t)){if(sf(u(ee(n.a,t),49),e))return-1}else Ve(n.a,t,new ni);if(Zc(n.e,e)){if(sf(u(ee(n.e,e),49),t))return-1}else Ve(n.e,e,new ni);if(Zc(n.e,t)){if(sf(u(ee(n.a,t),49),e))return 1}else Ve(n.e,t,new ni);if(n.c==(lh(),HH)||!kt(e,(W(),dt))||!kt(t,(W(),dt))){for(d=null,l=new C(e.j);l.as?Pm(n,e,t):Pm(n,t,e),rs?1:0}return i=u(v(e,(W(),dt)),17).a,c=u(v(t,dt),17).a,i>c?Pm(n,e,t):Pm(n,t,e),ic?1:0}function z0(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t==null)return null;if(n.a!=e.jk())throw M(new Gn(ev+e.xe()+nb));if(D(e,469)){if(j=kAe(u(e,685),t),!j)throw M(new Gn(fK+t+"' is not a valid enumerator of '"+e.xe()+"'"));return j}switch(r1((Du(),zi),e).Nl()){case 2:{t=Fc(t,!1);break}case 3:{t=Fc(t,!0);break}}if(i=r1(zi,e).Jl(),i)return i.jk().wi().ti(i,t);if(g=r1(zi,e).Ll(),g){for(j=new Z,l=z$(t),a=0,d=l.length;a1)for(m=new kp((!n.a&&(n.a=new q(Mt,n,6,6)),n.a));m.e!=m.i.gc();)O5(m);for(s=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),j=xe,xe>_+N?j=_+N:xe<_-N&&(j=_-N),S=Lt,Lt>X+k?S=X+k:Lt_-N&&j<_+N&&S>X-k&&Sxe+te?yn=xe+te:_Lt+tn?kn=Lt+tn:Xxe-te&&ynLt-tn&&knt&&(g=t-1),p=D1+to(e,24)*Iy*d-d/2,p<0?p=1:p>i&&(p=i-1),r=(B1(),h=new yE,h),aT(r,g),lT(r,p),ve((!s.a&&(s.a=new ti(xo,s,5)),s.a),r)}function bzn(n){r0(n,new gd(e0(Yd(n0(Zd(new Ka,co),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new rmn))),Q(n,co,l3,1.3),Q(n,co,zm,(_n(),!1)),Q(n,co,W0,k1n),Q(n,co,yw,15),Q(n,co,MS,rn(Oce)),Q(n,co,r2,rn(Nce)),Q(n,co,d3,rn(xce)),Q(n,co,a3,rn(Fce)),Q(n,co,Xm,rn(Lce)),Q(n,co,r8,rn(Dq)),Q(n,co,Vm,rn(Bce)),Q(n,co,ecn,rn(C1n)),Q(n,co,tcn,rn(E1n)),Q(n,co,ncn,rn(Nq)),Q(n,co,Zrn,rn(M1n)),Q(n,co,icn,rn(v1n)),Q(n,co,rcn,rn(Lq)),Q(n,co,ccn,rn(m1n)),Q(n,co,ucn,rn(j1n)),Q(n,co,i8,rn(p1n)),Q(n,co,AS,rn(Dce)),Q(n,co,Qrn,rn(Rj)),Q(n,co,Jrn,rn(g1n)),Q(n,co,Yrn,rn(Kj)),Q(n,co,Wrn,rn(y1n))}function ZF(n,e){BF();var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe;if(yn=n.e,m=n.d,r=n.a,yn==0)switch(e){case 0:return"0";case 1:return Km;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return X=new x1,e<0?X.a+="0E+":X.a+="0E",X.a+=-e,X.a}if(O=m*10+1+7,N=K(fs,gh,28,O+1,15,1),t=O,m==1)if(f=r[0],f<0){xe=vi(f,mr);do k=xe,xe=Xk(xe,10),N[--t]=48+Ae(bs(k,er(xe,10)))&ui;while(Ec(xe,0)!=0)}else{xe=f;do k=xe,xe=xe/10|0,N[--t]=48+(k-xe*10)&ui;while(xe!=0)}else{Fn=K(ye,_e,28,m,15,1),te=m,Ic(r,0,Fn,0,te);n:for(;;){for(tn=0,l=te-1;l>=0;l--)Rn=nr(Bs(tn,32),vi(Fn[l],mr)),S=mye(Rn),Fn[l]=Ae(S),tn=Ae(w0(S,32));I=Ae(tn),j=t;do N[--t]=48+I%10&ui;while((I=I/10|0)!=0&&t!=0);for(i=9-j+t,h=0;h0;h++)N[--t]=48;for(d=te-1;Fn[d]==0;d--)if(d==0)break n;te=d+1}for(;N[t]==48;)++t}if(p=yn<0,s=O-t-e-1,e==0)return p&&(N[--t]=45),ws(N,t,O-t);if(e>0&&s>=-6){if(s>=0){for(a=t+s,g=O-1;g>=a;g--)N[g+1]=N[g];return N[++a]=46,p&&(N[--t]=45),ws(N,t,O-t+1)}for(d=2;d<-s+1;d++)N[--t]=48;return N[--t]=46,N[--t]=48,p&&(N[--t]=45),ws(N,t,O-t)}return kn=t+1,c=O,_=new fg,p&&(_.a+="-"),c-kn>=1?(z1(_,N[t]),_.a+=".",_.a+=ws(N,t+1,O-t-1)):_.a+=ws(N,t,O-t),_.a+="E",s>0&&(_.a+="+"),_.a+=""+s,_.a}function wzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X;switch(n.c=e,n.g=new de,t=(c0(),new Qd(n.c)),i=new IE(t),HY(i),O=Oe(z(n.c,(Wk(),U1n))),h=u(z(n.c,Uq),324),_=u(z(n.c,Gq),437),s=u(z(n.c,_1n),490),N=u(z(n.c,qq),438),n.j=$(R(z(n.c,Yce))),f=n.a,h.g){case 0:f=n.a;break;case 1:f=n.b;break;case 2:f=n.i;break;case 3:f=n.e;break;case 4:f=n.f;break;default:throw M(new Gn(xS+(h.f!=null?h.f:""+h.g)))}if(n.d=new sOn(f,_,s),U(n.d,(J4(),O8),un(z(n.c,Jce))),n.d.c=on(un(z(n.c,H1n))),AM(n.c).i==0)return n.d;for(d=new ne(AM(n.c));d.e!=d.i.gc();){for(a=u(ue(d),27),p=a.g/2,g=a.f/2,X=new V(a.i+p,a.j+g);Zc(n.g,X);)a0(X,(y.Math.random()-.5)*vh,(y.Math.random()-.5)*vh);k=u(z(a,(He(),xv)),140),j=new jOn(X,new Ho(X.a-p-n.j/2-k.b,X.b-g-n.j/2-k.d,a.g+n.j+(k.b+k.c),a.f+n.j+(k.d+k.a))),nn(n.d.i,j),Ve(n.g,X,new bi(j,a))}switch(N.g){case 0:if(O==null)n.d.d=u(sn(n.d.i,0),68);else for(I=new C(n.d.i);I.a0?te+1:1);for(s=new C(X.g);s.a0?te+1:1)}n.c[l]==0?Fe(n.e,k):n.a[l]==0&&Fe(n.f,k),++l}for(m=-1,p=1,d=new Z,n.d=u(v(e,(W(),S3)),234);Fo>0;){for(;n.e.b!=0;)Lt=u(UL(n.e),10),n.b[Lt.p]=m--,Oen(n,Lt),--Fo;for(;n.f.b!=0;)Yu=u(UL(n.f),10),n.b[Yu.p]=p++,Oen(n,Yu),--Fo;if(Fo>0){for(g=Wi,I=new C(O);I.a=g&&(N>g&&(d.c.length=0,g=N),Kn(d.c,k)));a=n.sg(d),n.b[a.p]=p++,Oen(n,a),--Fo}}for(xe=O.c.length+1,l=0;ln.b[Rr]&&(U0(i,!0),U(e,kj,(_n(),!0)));n.a=null,n.c=null,n.b=null,vo(n.f),vo(n.e),t.Vg()}function gzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X;for(_=u(L((!n.a&&(n.a=new q(Mt,n,6,6)),n.a),0),166),a=new Mu,N=new de,X=MUn(_),Vc(N.f,_,X),g=new de,i=new Ct,m=$h(Eo(A(T(Oo,1),Bn,20,0,[(!e.d&&(e.d=new Nn(Vt,e,8,5)),e.d),(!e.e&&(e.e=new Nn(Vt,e,7,4)),e.e)])));pe(m);){if(p=u(fe(m),74),(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i!=1)throw M(new Gn(tWn+(!n.a&&(n.a=new q(Mt,n,6,6)),n.a).i));p!=n&&(j=u(L((!p.a&&(p.a=new q(Mt,p,6,6)),p.a),0),166),xt(i,j,i.c.b,i.c),k=u(Kr(wr(N.f,j)),13),k||(k=MUn(j),Vc(N.f,j,k)),d=t?mi(new rr(u(sn(X,X.c.length-1),8)),u(sn(k,k.c.length-1),8)):mi(new rr((Ln(0,X.c.length),u(X.c[0],8))),(Ln(0,k.c.length),u(k.c[0],8))),Vc(g.f,j,d))}if(i.b!=0)for(S=u(sn(X,t?X.c.length-1:0),8),l=1;l1&&xt(a,S,a.c.b,a.c),p$(r)));S=I}return a}function pzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn;for(t.Ug(pVn,1),Fn=u(Wr(ut(new Tn(null,new In(e,16)),new L4n),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),a=u(Wr(ut(new Tn(null,new In(e,16)),new kkn(e)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),15),m=u(Wr(ut(new Tn(null,new In(e,16)),new vkn(e)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[Yr]))),15),k=K(NI,OS,40,e.gc(),0,1),s=0;s=0&&kn=0&&!k[p]){k[p]=r,a.gd(f),--f;break}if(p=kn-g,p=0&&!k[p]){k[p]=r,a.gd(f),--f;break}}for(m.jd(new N4n),h=k.length-1;h>=0;h--)!k[h]&&!m.dc()&&(k[h]=u(m.Xb(0),40),m.gd(0));for(l=0;l=0;h--)Fe(t,(Ln(h,s.c.length),u(s.c[h],8)));return t}function vzn(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;for(O=$(R(z(e,(_h(),Xw)))),p=$(R(z(e,f9))),g=$(R(z(e,UI))),NQ((!e.a&&(e.a=new q(Ye,e,10,11)),e.a)),S=fGn((!e.a&&(e.a=new q(Ye,e,10,11)),e.a),O,n.b),j=0;jg&&Gk((Ln(g,e.c.length),u(e.c[g],186)),a),a=null;e.c.length>g&&(Ln(g,e.c.length),u(e.c[g],186)).a.c.length==0;)du(e,(Ln(g,e.c.length),e.c[g]));if(!a){--s;continue}if(!on(un(u(sn(a.b,0),27).of((Rf(),Kj))))&&ZSe(e,m,c,a,j,t,g,i)){k=!0;continue}if(j){if(p=m.b,d=a.f,!on(un(u(sn(a.b,0),27).of(Kj)))&&pOe(e,m,c,a,t,g,i,r)){if(k=!0,p=n.j){n.a=-1,n.c=1;return}if(e=Xi(n.i,n.d++),n.a=e,n.b==1){switch(e){case 92:if(i=10,n.d>=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;case 45:(n.e&512)==512&&n.d=n.j||Xi(n.i,n.d)!=63)break;if(++n.d>=n.j)throw M(new Le($e((Ie(),jK))));switch(e=Xi(n.i,n.d++),e){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw M(new Le($e((Ie(),jK))));if(e=Xi(n.i,n.d++),e==61)i=16;else if(e==33)i=17;else throw M(new Le($e((Ie(),PWn))));break;case 35:for(;n.d=n.j)throw M(new Le($e((Ie(),qS))));n.a=Xi(n.i,n.d++);break;default:i=0}n.c=i}function RLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j;if(t.Ug("Process compaction",1),!!on(un(v(e,(lc(),Mln))))){for(r=u(v(e,vb),88),p=$(R(v(e,fq))),aIe(n,e,r),tLe(e,p/2/2),m=e.b,ud(m,new akn(r)),l=ge(m,0);l.b!=l.d.c;)if(h=u(be(l),40),!on(un(v(h,(pt(),Ma))))){if(i=BAe(h,r),k=LPe(h,e),d=0,g=0,i)switch(j=i.e,r.g){case 2:d=j.a-p-h.f.a,k.e.a-p-h.f.ad&&(d=k.e.a+k.f.a+p),g=d+h.f.a;break;case 4:d=j.b-p-h.f.b,k.e.b-p-h.f.bd&&(d=k.e.b+k.f.b+p),g=d+h.f.b}else if(k)switch(r.g){case 2:d=k.e.a-p-h.f.a,g=d+h.f.a;break;case 1:d=k.e.a+k.f.a+p,g=d+h.f.a;break;case 4:d=k.e.b-p-h.f.b,g=d+h.f.b;break;case 3:d=k.e.b+k.f.b+p,g=d+h.f.b}x(v(e,sq))===x((d5(),Lj))?(c=d,s=g,f=im(ut(new Tn(null,new In(n.a,16)),new eMn(c,s))),f.a!=null?r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d:(r==(ci(),Br)||r==us?f=im(ut(O$n(new Tn(null,new In(n.a,16))),new dkn(c))):f=im(ut(O$n(new Tn(null,new In(n.a,16))),new bkn(c))),f.a!=null&&(r==Br||r==Xr?h.e.a=$(R((oe(f.a!=null),u(f.a,42)).a)):h.e.b=$(R((oe(f.a!=null),u(f.a,42)).a)))),f.a!=null&&(a=qr(n.a,(oe(f.a!=null),f.a),0),a>0&&a!=u(v(h,Sh),17).a&&(U(h,pln,(_n(),!0)),U(h,Sh,Y(a))))):r==(ci(),Br)||r==Xr?h.e.a=d:h.e.b=d}t.Vg()}}function kzn(n){var e,t,i,r,c,s,f,h,l;for(n.b=1,Ze(n),e=null,n.c==0&&n.a==94?(Ze(n),e=(nt(),nt(),new yo(4)),xc(e,0,cv),f=new yo(4)):f=(nt(),nt(),new yo(4)),r=!0;(l=n.c)!=1;){if(l==0&&n.a==93&&!r){e&&(V5(e,f),f=e);break}if(t=n.a,i=!1,l==10)switch(t){case 100:case 68:case 119:case 87:case 115:case 83:gw(f,Im(t)),i=!0;break;case 105:case 73:case 99:case 67:t=(gw(f,Im(t)),-1),t<0&&(i=!0);break;case 112:case 80:if(h=$nn(n,t),!h)throw M(new Le($e((Ie(),EK))));gw(f,h),i=!0;break;default:t=gen(n)}else if(l==24&&!r){if(e&&(V5(e,f),f=e),c=kzn(n),V5(f,c),n.c!=0||n.a!=93)throw M(new Le($e((Ie(),RWn))));break}if(Ze(n),!i){if(l==0){if(t==91)throw M(new Le($e((Ie(),Rcn))));if(t==93)throw M(new Le($e((Ie(),Kcn))));if(t==45&&!r&&n.a!=93)throw M(new Le($e((Ie(),CK))))}if(n.c!=0||n.a!=45||t==45&&r)xc(f,t,t);else{if(Ze(n),(l=n.c)==1)throw M(new Le($e((Ie(),US))));if(l==0&&n.a==93)xc(f,t,t),xc(f,45,45);else{if(l==0&&n.a==93||l==24)throw M(new Le($e((Ie(),CK))));if(s=n.a,l==0){if(s==91)throw M(new Le($e((Ie(),Rcn))));if(s==93)throw M(new Le($e((Ie(),Kcn))));if(s==45)throw M(new Le($e((Ie(),CK))))}else l==10&&(s=gen(n));if(Ze(n),t>s)throw M(new Le($e((Ie(),HWn))));xc(f,t,s)}}}r=!1}if(n.c==1)throw M(new Le($e((Ie(),US))));return Gg(f),z5(f),n.b=0,Ze(n),f}function KLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_;if(t.Ug("Coffman-Graham Layering",1),e.a.c.length==0){t.Vg();return}for(_=u(v(e,(cn(),thn)),17).a,h=0,s=0,g=new C(e.a);g.a=_||!N8e(S,i))&&(i=mIn(e,a)),$i(S,i),c=new ie(ce(ji(S).a.Kc(),new En));pe(c);)r=u(fe(c),18),!n.a[r.p]&&(k=r.c.i,--n.e[k.p],n.e[k.p]==0&&Mp(ym(p,k),_m));for(l=a.c.length-1;l>=0;--l)nn(e.b,(Ln(l,a.c.length),u(a.c[l],30)));e.a.c.length=0,t.Vg()}function yzn(n,e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N;N=!1;do for(N=!1,c=e?new qa(n.a.b).a.gc()-2:1;e?c>=0:cu(v(j,dt),17).a)&&(O=!1);if(O){for(h=e?c+1:c-1,f=yJ(n.a,Y(h)),s=!1,I=!0,i=!1,a=ge(f,0);a.b!=a.d.c;)l=u(be(a),10),kt(l,dt)?l.p!=d.p&&(s=s|(e?u(v(l,dt),17).au(v(d,dt),17).a),I=!1):!s&&I&&l.k==(Vn(),Ac)&&(i=!0,e?g=u(fe(new ie(ce(ji(l).a.Kc(),new En))),18).c.i:g=u(fe(new ie(ce(Qt(l).a.Kc(),new En))),18).d.i,g==d&&(e?t=u(fe(new ie(ce(Qt(l).a.Kc(),new En))),18).d.i:t=u(fe(new ie(ce(ji(l).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,g),17).a:u(xb(n.a,g),17).a-u(xb(n.a,t),17).a)<=2&&(I=!1)));if(i&&I&&(e?t=u(fe(new ie(ce(Qt(d).a.Kc(),new En))),18).d.i:t=u(fe(new ie(ce(ji(d).a.Kc(),new En))),18).c.i,(e?u(xb(n.a,t),17).a-u(xb(n.a,d),17).a:u(xb(n.a,d),17).a-u(xb(n.a,t),17).a)<=2&&t.k==(Vn(),zt)&&(I=!1)),s||I){for(k=YHn(n,d,e);k.a.gc()!=0;)m=u(k.a.ec().Kc().Pb(),10),k.a.Bc(m)!=null,Bi(k,YHn(n,m,e));--p,N=!0}}}while(N)}function _Le(n){Me(n.c,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#decimal"])),Me(n.d,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#integer"])),Me(n.e,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#boolean"])),Me(n.f,Be,A(T(fn,1),J,2,6,[Ji,"EBoolean",Qe,"EBoolean:Object"])),Me(n.i,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#byte"])),Me(n.g,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#hexBinary"])),Me(n.j,Be,A(T(fn,1),J,2,6,[Ji,"EByte",Qe,"EByte:Object"])),Me(n.n,Be,A(T(fn,1),J,2,6,[Ji,"EChar",Qe,"EChar:Object"])),Me(n.t,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#double"])),Me(n.u,Be,A(T(fn,1),J,2,6,[Ji,"EDouble",Qe,"EDouble:Object"])),Me(n.F,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#float"])),Me(n.G,Be,A(T(fn,1),J,2,6,[Ji,"EFloat",Qe,"EFloat:Object"])),Me(n.I,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#int"])),Me(n.J,Be,A(T(fn,1),J,2,6,[Ji,"EInt",Qe,"EInt:Object"])),Me(n.N,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#long"])),Me(n.O,Be,A(T(fn,1),J,2,6,[Ji,"ELong",Qe,"ELong:Object"])),Me(n.Z,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#short"])),Me(n.$,Be,A(T(fn,1),J,2,6,[Ji,"EShort",Qe,"EShort:Object"])),Me(n._,Be,A(T(fn,1),J,2,6,[Ji,"http://www.w3.org/2001/XMLSchema#string"]))}function HLe(n,e,t,i,r,c,s){var f,h,l,a,d,g,p,m;return g=u(i.a,17).a,p=u(i.b,17).a,d=n.b,m=n.c,f=0,a=0,e==(ci(),Br)||e==Xr?(a=a7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new x4n),new m4n))),d.e.b+d.f.b/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new rMn(r,l)),new v4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new cMn(r,h)),new k4n)))))):(a=a7(lBn(Ub(_r(new Tn(null,new In(t.b,16)),new C4n),new p4n))),d.e.a+d.f.a/2>a?(l=++p,f=$(R(ho(_b(_r(new Tn(null,new In(t.b,16)),new tMn(r,l)),new y4n))))):(h=++g,f=$(R(ho(Ap(_r(new Tn(null,new In(t.b,16)),new iMn(r,h)),new j4n)))))),e==Br?(ir(n.a,new V($(R(v(d,(pt(),jf))))-r,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,f)),ir(n.a,new V(m.e.a+m.f.a+r+c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a+m.f.a,m.e.b+m.f.b/2))):e==Xr?(ir(n.a,new V($(R(v(d,(pt(),Js))))+r,d.e.b+d.f.b/2)),ir(n.a,new V(d.e.a+d.f.a+r,f)),ir(n.a,new V(m.e.a-r-c,f)),ir(n.a,new V(m.e.a-r-c,m.e.b+m.f.b/2)),ir(n.a,new V(m.e.a,m.e.b+m.f.b/2))):e==us?(ir(n.a,new V(f,$(R(v(d,(pt(),jf))))-r)),ir(n.a,new V(f,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r+c)),ir(n.a,new V(m.e.a+m.f.a/2,m.e.b+m.f.b+r))):(n.a.b==0||(u($s(n.a),8).b=$(R(v(d,(pt(),Js))))+r*u(s.b,17).a),ir(n.a,new V(f,$(R(v(d,(pt(),Js))))+r*u(s.b,17).a)),ir(n.a,new V(f,m.e.b-r*u(s.a,17).a-c))),new bi(Y(g),Y(p))}function qLe(n){var e,t,i,r,c,s,f,h,l,a,d,g,p;if(s=!0,d=null,i=null,r=null,e=!1,p=$oe,l=null,c=null,f=0,h=yx(n,f,Kdn,_dn),h=0&&An(n.substr(f,2),"//")?(f+=2,h=yx(n,f,D9,L9),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h):d!=null&&(f==n.length||(zn(f,n.length),n.charCodeAt(f)!=47))&&(s=!1,h=GX(n,wu(35),f),h==-1&&(h=n.length),i=(Fi(f,h,n.length),n.substr(f,h-f)),f=h);if(!t&&f0&&Xi(a,a.length-1)==58&&(r=a,f=h)),fgF(c))&&(d=c);for(!d&&(d=(Ln(0,j.c.length),u(j.c[0],185))),k=new C(e.b);k.ad&&(Rn=0,te+=a+tn,a=0),lUn(_,s,Rn,te),e=y.Math.max(e,Rn+X.a),a=y.Math.max(a,X.b),Rn+=X.a+tn;for(N=new de,t=new de,kn=new C(n);kn.a=-1900?1:0,t>=4?Re(n,A(T(fn,1),J,2,6,[Bzn,Rzn])[f]):Re(n,A(T(fn,1),J,2,6,["BC","AD"])[f]);break;case 121:f9e(n,t,i);break;case 77:SSe(n,t,i);break;case 107:h=r.q.getHours(),h==0?Bh(n,24,t):Bh(n,h,t);break;case 83:_Me(n,t,r);break;case 69:a=i.q.getDay(),t==5?Re(n,A(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[a]):t==4?Re(n,A(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[a]):Re(n,A(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[a]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?Re(n,A(T(fn,1),J,2,6,["AM","PM"])[1]):Re(n,A(T(fn,1),J,2,6,["AM","PM"])[0]);break;case 104:d=r.q.getHours()%12,d==0?Bh(n,12,t):Bh(n,d,t);break;case 75:g=r.q.getHours()%12,Bh(n,g,t);break;case 72:p=r.q.getHours(),Bh(n,p,t);break;case 99:m=i.q.getDay(),t==5?Re(n,A(T(fn,1),J,2,6,["S","M","T","W","T","F","S"])[m]):t==4?Re(n,A(T(fn,1),J,2,6,[vB,kB,yB,jB,EB,CB,MB])[m]):t==3?Re(n,A(T(fn,1),J,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[m]):Bh(n,m,1);break;case 76:k=i.q.getMonth(),t==5?Re(n,A(T(fn,1),J,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[k]):t==4?Re(n,A(T(fn,1),J,2,6,[sB,fB,hB,lB,c3,aB,dB,bB,wB,gB,pB,mB])[k]):t==3?Re(n,A(T(fn,1),J,2,6,["Jan","Feb","Mar","Apr",c3,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[k]):Bh(n,k+1,t);break;case 81:j=i.q.getMonth()/3|0,t<4?Re(n,A(T(fn,1),J,2,6,["Q1","Q2","Q3","Q4"])[j]):Re(n,A(T(fn,1),J,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[j]);break;case 100:S=i.q.getDate(),Bh(n,S,t);break;case 109:l=r.q.getMinutes(),Bh(n,l,t);break;case 115:s=r.q.getSeconds(),Bh(n,s,t);break;case 122:t<4?Re(n,c.c[0]):Re(n,c.c[1]);break;case 118:Re(n,c.b);break;case 90:t<3?Re(n,NEe(c)):t==3?Re(n,REe(c)):Re(n,KEe(c.a));break;default:return!1}return!0}function htn(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe;if(nUn(e),h=u(L((!e.b&&(e.b=new Nn(he,e,4,7)),e.b),0),84),a=u(L((!e.c&&(e.c=new Nn(he,e,5,8)),e.c),0),84),f=Gr(h),l=Gr(a),s=(!e.a&&(e.a=new q(Mt,e,6,6)),e.a).i==0?null:u(L((!e.a&&(e.a=new q(Mt,e,6,6)),e.a),0),166),tn=u(ee(n.a,f),10),Rn=u(ee(n.a,l),10),yn=null,te=null,D(h,193)&&(X=u(ee(n.a,h),305),D(X,12)?yn=u(X,12):D(X,10)&&(tn=u(X,10),yn=u(sn(tn.j,0),12))),D(a,193)&&(Fn=u(ee(n.a,a),305),D(Fn,12)?te=u(Fn,12):D(Fn,10)&&(Rn=u(Fn,10),te=u(sn(Rn.j,0),12))),!tn||!Rn)throw M(new hp("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(k=new E0,Ur(k,e),U(k,(W(),st),e),U(k,(cn(),Fr),null),p=u(v(i,Hc),21),tn==Rn&&p.Fc((pr(),B8)),yn||(_=(gr(),Jc),kn=null,s&&mg(u(v(tn,Kt),101))&&(kn=new V(s.j,s.k),UDn(kn,V7(e)),mLn(kn,t),Yb(l,f)&&(_=Vu,tt(kn,tn.n))),yn=eGn(tn,kn,_,i)),te||(_=(gr(),Vu),xe=null,s&&mg(u(v(Rn,Kt),101))&&(xe=new V(s.b,s.c),UDn(xe,V7(e)),mLn(xe,t)),te=eGn(Rn,xe,_,Hi(Rn))),Zi(k,yn),Ii(k,te),(yn.e.c.length>1||yn.g.c.length>1||te.e.c.length>1||te.g.c.length>1)&&p.Fc((pr(),F8)),g=new ne((!e.n&&(e.n=new q(Ar,e,1,7)),e.n));g.e!=g.i.gc();)if(d=u(ue(g),135),!on(un(z(d,Fd)))&&d.a)switch(j=ex(d),nn(k.b,j),u(v(j,Ah),278).g){case 1:case 2:p.Fc((pr(),kv));break;case 0:p.Fc((pr(),vv)),U(j,Ah,($f(),Fv))}if(c=u(v(i,U8),322),S=u(v(i,vI),323),r=c==(c5(),pj)||S==(M5(),KH),s&&(!s.a&&(s.a=new ti(xo,s,5)),s.a).i!=0&&r){for(I=Qk(s),m=new Mu,N=ge(I,0);N.b!=N.d.c;)O=u(be(N),8),Fe(m,new rr(O));U(k,rfn,m)}return k}function XLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe,Lt;for(kn=0,Fn=0,tn=new de,_=u(ho(_b(_r(new Tn(null,new In(n.b,16)),new E4n),new O4n)),17).a+1,yn=K(ye,_e,28,_,15,1),j=K(ye,_e,28,_,15,1),k=0;k<_;k++)yn[k]=0,j[k]=0;for(h=u(Wr(uJ(new Tn(null,new In(n.a,16))),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),a=h.Kc();a.Ob();)if(l=u(a.Pb(),65),te=u(v(l.b,(lc(),Sh)),17).a,Lt=u(v(l.c,Sh),17).a,N=Lt-te,N>1)for(f=te+1;fl.b.e.b*(1-S)+l.c.e.b*S));m++);if(X.gc()>0&&(xe=l.a.b==0?Ki(l.b.e):u($s(l.a),8),O=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&xe.b>O.b&&l.c.e.b>O.b||m<=0&&xe.bl.b.e.a*(1-S)+l.c.e.a*S));m++);if(X.gc()>0&&(xe=l.a.b==0?Ki(l.b.e):u($s(l.a),8),O=tt(Ki(u(X.Xb(X.gc()-1),40).e),u(X.Xb(X.gc()-1),40).f),g=tt(Ki(u(X.Xb(0),40).e),u(X.Xb(0),40).f),m>=X.gc()-1&&xe.a>O.a&&l.c.e.a>O.a||m<=0&&xe.a=$(R(v(n,(pt(),kln))))&&++Fn):(p.f&&p.d.e.a<=$(R(v(n,(pt(),rq))))&&++kn,p.g&&p.c.e.a+p.c.f.a>=$(R(v(n,(pt(),vln))))&&++Fn)}else N==0?Dnn(l):N<0&&(++yn[te],++j[Lt],Rn=HLe(l,e,n,new bi(Y(kn),Y(Fn)),t,i,new bi(Y(j[Lt]),Y(yn[te]))),kn=u(Rn.a,17).a,Fn=u(Rn.b,17).a)}function VLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;if(i=e,h=t,n.b&&i.j==(en(),Wn)&&h.j==(en(),Wn)&&(I=i,i=h,h=I),Zc(n.a,i)){if(sf(u(ee(n.a,i),49),h))return 1}else Ve(n.a,i,new ni);if(Zc(n.a,h)){if(sf(u(ee(n.a,h),49),i))return-1}else Ve(n.a,h,new ni);if(Zc(n.d,i)){if(sf(u(ee(n.d,i),49),h))return-1}else Ve(n.d,i,new ni);if(Zc(n.d,h)){if(sf(u(ee(n.a,h),49),i))return 1}else Ve(n.d,h,new ni);if(i.j!=h.j)return S=xle(i.j,h.j),S==-1?ns(n,h,i):ns(n,i,h),S;if(i.e.c.length!=0&&h.e.c.length!=0){if(n.b&&(S=RFn(i,h),S!=0))return S==-1?ns(n,h,i):S==1&&ns(n,i,h),S;if(c=u(sn(i.e,0),18).c.i,a=u(sn(h.e,0),18).c.i,c==a)return r=u(v(u(sn(i.e,0),18),(W(),dt)),17).a,l=u(v(u(sn(h.e,0),18),dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0;for(m=n.c,k=0,j=m.length;kl?ns(n,i,h):ns(n,h,i),rl?1:0):n.b&&(S=RFn(i,h),S!=0)?(S==-1?ns(n,h,i):S==1&&ns(n,i,h),S):(s=0,d=0,kt(u(sn(i.g,0),18),dt)&&(s=u(v(u(sn(i.g,0),18),dt),17).a),kt(u(sn(h.g,0),18),dt)&&(d=u(v(u(sn(i.g,0),18),dt),17).a),f&&f==g?on(un(v(u(sn(i.g,0),18),zf)))&&!on(un(v(u(sn(h.g,0),18),zf)))?(ns(n,i,h),1):!on(un(v(u(sn(i.g,0),18),zf)))&&on(un(v(u(sn(h.g,0),18),zf)))?(ns(n,h,i),-1):(s>d?ns(n,i,h):ns(n,h,i),sd?1:0):(n.f&&(n.f._b(f)&&(s=u(n.f.xc(f),17).a),n.f._b(g)&&(d=u(n.f.xc(g),17).a)),s>d?ns(n,i,h):ns(n,h,i),sd?1:0))):i.e.c.length!=0&&h.g.c.length!=0?(ns(n,i,h),1):i.g.c.length!=0&&h.e.c.length!=0?(ns(n,h,i),-1):kt(i,(W(),dt))&&kt(h,dt)?(r=u(v(i,dt),17).a,l=u(v(h,dt),17).a,r>l?ns(n,i,h):ns(n,h,i),rl?1:0):(ns(n,h,i),-1)}function WLe(n){n.gb||(n.gb=!0,n.b=hc(n,0),Ft(n.b,18),jt(n.b,19),n.a=hc(n,1),Ft(n.a,1),jt(n.a,2),jt(n.a,3),jt(n.a,4),jt(n.a,5),n.o=hc(n,2),Ft(n.o,8),Ft(n.o,9),jt(n.o,10),jt(n.o,11),jt(n.o,12),jt(n.o,13),jt(n.o,14),jt(n.o,15),jt(n.o,16),jt(n.o,17),jt(n.o,18),jt(n.o,19),jt(n.o,20),jt(n.o,21),jt(n.o,22),jt(n.o,23),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),Nr(n.o),n.p=hc(n,3),Ft(n.p,2),Ft(n.p,3),Ft(n.p,4),Ft(n.p,5),jt(n.p,6),jt(n.p,7),Nr(n.p),Nr(n.p),n.q=hc(n,4),Ft(n.q,8),n.v=hc(n,5),jt(n.v,9),Nr(n.v),Nr(n.v),Nr(n.v),n.w=hc(n,6),Ft(n.w,2),Ft(n.w,3),Ft(n.w,4),jt(n.w,5),n.B=hc(n,7),jt(n.B,1),Nr(n.B),Nr(n.B),Nr(n.B),n.Q=hc(n,8),jt(n.Q,0),Nr(n.Q),n.R=hc(n,9),Ft(n.R,1),n.S=hc(n,10),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),Nr(n.S),n.T=hc(n,11),jt(n.T,10),jt(n.T,11),jt(n.T,12),jt(n.T,13),jt(n.T,14),Nr(n.T),Nr(n.T),n.U=hc(n,12),Ft(n.U,2),Ft(n.U,3),jt(n.U,4),jt(n.U,5),jt(n.U,6),jt(n.U,7),Nr(n.U),n.V=hc(n,13),jt(n.V,10),n.W=hc(n,14),Ft(n.W,18),Ft(n.W,19),Ft(n.W,20),jt(n.W,21),jt(n.W,22),jt(n.W,23),n.bb=hc(n,15),Ft(n.bb,10),Ft(n.bb,11),Ft(n.bb,12),Ft(n.bb,13),Ft(n.bb,14),Ft(n.bb,15),Ft(n.bb,16),jt(n.bb,17),Nr(n.bb),Nr(n.bb),n.eb=hc(n,16),Ft(n.eb,2),Ft(n.eb,3),Ft(n.eb,4),Ft(n.eb,5),Ft(n.eb,6),Ft(n.eb,7),jt(n.eb,8),jt(n.eb,9),n.ab=hc(n,17),Ft(n.ab,0),Ft(n.ab,1),n.H=hc(n,18),jt(n.H,0),jt(n.H,1),jt(n.H,2),jt(n.H,3),jt(n.H,4),jt(n.H,5),Nr(n.H),n.db=hc(n,19),jt(n.db,2),n.c=Je(n,20),n.d=Je(n,21),n.e=Je(n,22),n.f=Je(n,23),n.i=Je(n,24),n.g=Je(n,25),n.j=Je(n,26),n.k=Je(n,27),n.n=Je(n,28),n.r=Je(n,29),n.s=Je(n,30),n.t=Je(n,31),n.u=Je(n,32),n.fb=Je(n,33),n.A=Je(n,34),n.C=Je(n,35),n.D=Je(n,36),n.F=Je(n,37),n.G=Je(n,38),n.I=Je(n,39),n.J=Je(n,40),n.L=Je(n,41),n.M=Je(n,42),n.N=Je(n,43),n.O=Je(n,44),n.P=Je(n,45),n.X=Je(n,46),n.Y=Je(n,47),n.Z=Je(n,48),n.$=Je(n,49),n._=Je(n,50),n.cb=Je(n,51),n.K=Je(n,52))}function JLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te;for(s=new Ct,X=u(v(t,(cn(),Do)),88),k=0,Bi(s,(!e.a&&(e.a=new q(Ye,e,10,11)),e.a));s.b!=0;)a=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),l=At(a),(x(z(l,Yh))!==x((lh(),k1))||x(z(l,Ld))===x((o1(),pv))||x(z(l,Ld))===x((o1(),gv))||on(un(z(l,lb)))||x(z(l,Fw))!==x((dd(),Ow))||x(z(l,ja))===x((ps(),pb))||x(z(l,ja))===x((ps(),Uw))||x(z(l,$d))===x((a1(),Pv))||x(z(l,$d))===x((a1(),Iv)))&&!on(un(z(a,lI)))&&ht(a,(W(),dt),Y(k++)),S=!on(un(z(a,Fd))),S&&(g=(!a.a&&(a.a=new q(Ye,a,10,11)),a.a).i!=0,m=Mye(a),p=x(z(a,Bw))===x((jl(),M1)),te=!Lf(a,(He(),$v))||TLn(Oe(z(a,$v))),N=null,te&&p&&(g||m)&&(N=$Un(a),U(N,Do,X),kt(N,Mj)&&xjn(new XY($(R(v(N,Mj)))),N),u(z(a,xd),181).gc()!=0&&(d=N,qt(new Tn(null,(!a.c&&(a.c=new q(Qu,a,9,9)),new In(a.c,16))),new q9n(d)),Aqn(a,N))),tn=t,yn=u(ee(n.a,At(a)),10),yn&&(tn=yn.e),O=szn(n,a,tn),N&&(O.e=N,N.e=O,Bi(s,(!a.a&&(a.a=new q(Ye,a,10,11)),a.a))));for(k=0,xt(s,e,s.c.b,s.c);s.b!=0;){for(c=u(s.b==0?null:(oe(s.b!=0),Xo(s,s.a.a)),27),h=new ne((!c.b&&(c.b=new q(Vt,c,12,3)),c.b));h.e!=h.i.gc();)f=u(ue(h),74),nUn(f),(x(z(e,Yh))!==x((lh(),k1))||x(z(e,Ld))===x((o1(),pv))||x(z(e,Ld))===x((o1(),gv))||on(un(z(e,lb)))||x(z(e,Fw))!==x((dd(),Ow))||x(z(e,ja))===x((ps(),pb))||x(z(e,ja))===x((ps(),Uw))||x(z(e,$d))===x((a1(),Pv))||x(z(e,$d))===x((a1(),Iv)))&&ht(f,(W(),dt),Y(k++)),Fn=Gr(u(L((!f.b&&(f.b=new Nn(he,f,4,7)),f.b),0),84)),Rn=Gr(u(L((!f.c&&(f.c=new Nn(he,f,5,8)),f.c),0),84)),!(on(un(z(f,Fd)))||on(un(z(Fn,Fd)))||on(un(z(Rn,Fd))))&&(j=_0(f)&&on(un(z(Fn,Rw)))&&on(un(z(f,Nd))),_=c,j||Yb(Rn,Fn)?_=Fn:Yb(Fn,Rn)&&(_=Rn),tn=t,yn=u(ee(n.a,_),10),yn&&(tn=yn.e),I=htn(n,f,_,tn),U(I,(W(),nfn),JTe(n,f,e,t)));if(p=x(z(c,Bw))===x((jl(),M1)),p)for(r=new ne((!c.a&&(c.a=new q(Ye,c,10,11)),c.a));r.e!=r.i.gc();)i=u(ue(r),27),te=!Lf(i,(He(),$v))||TLn(Oe(z(i,$v))),kn=x(z(i,Bw))===x(M1),te&&kn&&xt(s,i,s.c.b,s.c)}}function W(){W=F;var n,e;st=new lt(Jtn),nfn=new lt("coordinateOrigin"),wH=new lt("processors"),Zsn=new Dt("compoundNode",(_n(),!1)),yj=new Dt("insideConnections",!1),rfn=new lt("originalBendpoints"),cfn=new lt("originalDummyNodePosition"),ufn=new lt("originalLabelEdge"),K8=new lt("representedLabels"),R8=new lt("endLabels"),M3=new lt("endLabel.origin"),A3=new Dt("labelSide",(To(),nE)),y2=new Dt("maxEdgeThickness",0),zf=new Dt("reversed",!1),S3=new lt(MXn),yf=new Dt("longEdgeSource",null),Es=new Dt("longEdgeTarget",null),$w=new Dt("longEdgeHasLabelDummies",!1),jj=new Dt("longEdgeBeforeLabelDummy",!1),rI=new Dt("edgeConstraint",(hd(),Y_)),sb=new lt("inLayerLayoutUnit"),Od=new Dt("inLayerConstraint",(vl(),vj)),T3=new Dt("inLayerSuccessorConstraint",new Z),ifn=new Dt("inLayerSuccessorConstraintBetweenNonDummies",!1),Xu=new lt("portDummy"),iI=new Dt("crossingHint",Y(0)),Hc=new Dt("graphProperties",(e=u(of(cH),9),new _o(e,u(xs(e,e.length),9),0))),gc=new Dt("externalPortSide",(en(),sc)),tfn=new Dt("externalPortSize",new Li),hH=new lt("externalPortReplacedDummies"),cI=new lt("externalPortReplacedDummy"),Nl=new Dt("externalPortConnections",(n=u(of(lr),9),new _o(n,u(xs(n,n.length),9),0))),fb=new Dt(gXn,0),Ysn=new lt("barycenterAssociates"),P3=new lt("TopSideComments"),C3=new lt("BottomSideComments"),tI=new lt("CommentConnectionPort"),aH=new Dt("inputCollect",!1),bH=new Dt("outputCollect",!1),kj=new Dt("cyclic",!1),efn=new lt("crossHierarchyMap"),pH=new lt("targetOffset"),new Dt("splineLabelSize",new Li),E2=new lt("spacings"),uI=new Dt("partitionConstraint",!1),ob=new lt("breakingPoint.info"),ffn=new lt("splines.survivingEdge"),Dd=new lt("splines.route.start"),C2=new lt("splines.edgeChain"),sfn=new lt("originalPortConstraints"),hb=new lt("selfLoopHolder"),jv=new lt("splines.nsPortY"),dt=new lt("modelOrder"),dH=new lt("longEdgeTargetNode"),ka=new Dt(QXn,!1),j2=new Dt(QXn,!1),lH=new lt("layerConstraints.hiddenNodes"),ofn=new lt("layerConstraints.opposidePort"),gH=new lt("targetNode.modelOrder")}function QLe(n,e,t,i){var r,c,s,f,h,l,a,d,g,p,m;for(d=ge(n.b,0);d.b!=d.d.c;)if(a=u(be(d),40),!An(a.c,IS))for(c=u(Wr(new Tn(null,new In(uCe(a,n),16)),qu(new ju,new yu,new Eu,A(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),e==(ci(),Br)||e==Xr?c.jd(new A4n):c.jd(new S4n),m=c.gc(),r=0;r0&&(f=u($s(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u($s(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a+i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a,a.e.b+a.f.b*s))):e==Xr?(l=$(R(v(a,(pt(),jf)))),a.e.a-i>l?ir(u(c.Xb(r),65).a,new V(l-t,a.e.b+a.f.b*s)):u(c.Xb(r),65).a.b>0&&(f=u($s(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u($s(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(h-p)/(y.Math.abs(f-g)/40)>50&&(p>h?ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s-i/2)):ir(u(c.Xb(r),65).a,new V(a.e.a-i/5.3,a.e.b+a.f.b*s+i/2)))),ir(u(c.Xb(r),65).a,new V(a.e.a,a.e.b+a.f.b*s))):e==us?(l=$(R(v(a,(pt(),Js)))),a.e.b+a.f.b+i0&&(f=u($s(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u($s(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b+i/5.3+a.f.b)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b+i/5.3+a.f.b)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b+a.f.b))):(l=$(R(v(a,(pt(),jf)))),MFn(u(c.Xb(r),65),n)?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,u($s(u(c.Xb(r),65).a),8).b)):a.e.b-i>l?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,l-t)):u(c.Xb(r),65).a.b>0&&(f=u($s(u(c.Xb(r),65).a),8).a,g=a.e.a+a.f.a/2,h=u($s(u(c.Xb(r),65).a),8).b,p=a.e.b+a.f.b/2,i>0&&y.Math.abs(f-g)/(y.Math.abs(h-p)/40)>50&&(g>f?ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s-i/2,a.e.b-i/5.3)):ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s+i/2,a.e.b-i/5.3)))),ir(u(c.Xb(r),65).a,new V(a.e.a+a.f.a*s,a.e.b)))}function He(){He=F;var n,e;$v=new lt(xVn),q2=new lt(FVn),gan=(Rh(),Vq),Sue=new Mn(rrn,gan),x2=new Mn(l3,null),Pue=new lt(pcn),man=(wd(),yt(Qq,A(T(Yq,1),G,298,0,[Jq]))),Gj=new Mn(MS,man),zj=new Mn(Uy,(_n(),!1)),van=(ci(),Jf),_d=new Mn(xR,van),jan=(El(),lU),yan=new Mn(qy,jan),Due=new Mn(wcn,!1),Man=(jl(),uO),R2=new Mn(CS,Man),Nan=new f0(12),C1=new Mn(W0,Nan),Vj=new Mn(i8,!1),tU=new Mn(AS,!1),Wj=new Mn(r8,!1),Ran=(Oi(),Pa),v9=new Mn(tR,Ran),N3=new lt(TS),Jj=new lt(Ny),fU=new lt(uS),hU=new lt(t8),Tan=new Mu,kb=new Mn(wrn,Tan),Oue=new Mn(mrn,!1),Lue=new Mn(vrn,!1),Aan=new Qv,xv=new Mn(yrn,Aan),tO=new Mn(trn,!1),Fue=new Mn(BVn,1),B2=new lt(RVn),F2=new lt(KVn),k9=new Mn($y,!1),new Mn(_Vn,!0),Y(0),new Mn(HVn,Y(100)),new Mn(qVn,!1),Y(0),new Mn(UVn,Y(4e3)),Y(0),new Mn(GVn,Y(400)),new Mn(zVn,!1),new Mn(XVn,!1),new Mn(VVn,!0),new Mn(WVn,!1),pan=(qT(),wU),Iue=new Mn(gcn,pan),Bue=new Mn(Gin,10),Rue=new Mn(zin,10),qan=new Mn(WB,20),Kue=new Mn(Xin,10),Uan=new Mn(eR,2),Gan=new Mn($R,10),zan=new Mn(Vin,0),iO=new Mn(Qin,5),Xan=new Mn(Win,1),Van=new Mn(Jin,1),qd=new Mn(yw,20),_ue=new Mn(Yin,10),Qan=new Mn(Zin,10),$3=new lt(nrn),Jan=new tTn,Wan=new Mn(jrn,Jan),$ue=new lt(BR),$an=!1,Nue=new Mn(FR,$an),Pan=new f0(5),San=new Mn(orn,Pan),Ian=(lw(),e=u(of(yr),9),new _o(e,u(xs(e,e.length),9),0)),K2=new Mn(Xm,Ian),Fan=(Bg(),Sa),xan=new Mn(hrn,Fan),rU=new lt(lrn),cU=new lt(arn),uU=new lt(drn),iU=new lt(brn),Oan=(n=u(of(S9),9),new _o(n,u(xs(n,n.length),9),0)),Hd=new Mn(r2,Oan),Lan=jn((io(),_v)),Ta=new Mn(a3,Lan),Dan=new V(0,0),_2=new Mn(d3,Dan),Vw=new Mn(zm,!1),kan=($f(),Fv),nU=new Mn(grn,kan),Zq=new Mn(oS,!1),Y(1),new Mn(JVn,null),Ban=new lt(krn),oU=new lt(prn),Han=(en(),sc),H2=new Mn(irn,Han),oo=new lt(ern),Kan=(zu(),jn(Ia)),Ww=new Mn(Vm,Kan),sU=new Mn(srn,!1),_an=new Mn(frn,!0),cO=new Mn(xy,1),Yan=new Mn(mcn,null),Qj=new Mn(Fy,150),rO=new Mn(By,1.414),x3=new Mn(J0,null),Hue=new Mn(vcn,1),Xj=new Mn(crn,!1),eU=new Mn(urn,!1),Ean=new Mn(JB,1),Can=(pA(),dU),new Mn(QVn,Can),xue=!0,Uue=(Gp(),Yw),Gue=Yw,que=Yw}function tr(){tr=F,Qon=new ei("DIRECTION_PREPROCESSOR",0),Von=new ei("COMMENT_PREPROCESSOR",1),b2=new ei("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),N_=new ei("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),gsn=new ei("PARTITION_PREPROCESSOR",4),IP=new ei("LABEL_DUMMY_INSERTER",5),KP=new ei("SELF_LOOP_PREPROCESSOR",6),Lw=new ei("LAYER_CONSTRAINT_PREPROCESSOR",7),bsn=new ei("PARTITION_MIDPROCESSOR",8),csn=new ei("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),asn=new ei("NODE_PROMOTION",10),Dw=new ei("LAYER_CONSTRAINT_POSTPROCESSOR",11),wsn=new ei("PARTITION_POSTPROCESSOR",12),tsn=new ei("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),psn=new ei("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Hon=new ei("BREAKING_POINT_INSERTER",15),NP=new ei("LONG_EDGE_SPLITTER",16),$_=new ei("PORT_SIDE_PROCESSOR",17),SP=new ei("INVERTED_PORT_PROCESSOR",18),FP=new ei("PORT_LIST_SORTER",19),vsn=new ei("SORT_BY_INPUT_ORDER_OF_MODEL",20),xP=new ei("NORTH_SOUTH_PORT_PREPROCESSOR",21),qon=new ei("BREAKING_POINT_PROCESSOR",22),dsn=new ei(qXn,23),ksn=new ei(UXn,24),BP=new ei("SELF_LOOP_PORT_RESTORER",25),msn=new ei("SINGLE_EDGE_GRAPH_WRAPPER",26),PP=new ei("IN_LAYER_CONSTRAINT_PROCESSOR",27),Zon=new ei("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),hsn=new ei("LABEL_AND_NODE_SIZE_PROCESSOR",29),fsn=new ei("INNERMOST_NODE_MARGIN_CALCULATOR",30),_P=new ei("SELF_LOOP_ROUTER",31),zon=new ei("COMMENT_NODE_MARGIN_CALCULATOR",32),AP=new ei("END_LABEL_PREPROCESSOR",33),DP=new ei("LABEL_DUMMY_SWITCHER",34),Gon=new ei("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),hv=new ei("LABEL_SIDE_SELECTOR",36),osn=new ei("HYPEREDGE_DUMMY_MERGER",37),isn=new ei("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),lsn=new ei("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),L8=new ei("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),Won=new ei("CONSTRAINTS_POSTPROCESSOR",41),Xon=new ei("COMMENT_POSTPROCESSOR",42),ssn=new ei("HYPERNODE_PROCESSOR",43),rsn=new ei("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),LP=new ei("LONG_EDGE_JOINER",45),RP=new ei("SELF_LOOP_POSTPROCESSOR",46),Uon=new ei("BREAKING_POINT_REMOVER",47),$P=new ei("NORTH_SOUTH_PORT_POSTPROCESSOR",48),usn=new ei("HORIZONTAL_COMPACTOR",49),OP=new ei("LABEL_DUMMY_REMOVER",50),nsn=new ei("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),Yon=new ei("END_LABEL_SORTER",52),bj=new ei("REVERSED_EDGE_RESTORER",53),TP=new ei("END_LABEL_POSTPROCESSOR",54),esn=new ei("HIERARCHICAL_NODE_RESIZER",55),Jon=new ei("DIRECTION_POSTPROCESSOR",56)}function ltn(){ltn=F,kfn=(wk(),WP),iee=new Mn(uin,kfn),wee=new Mn(oin,(_n(),!1)),Tfn=(KM(),fH),kee=new Mn(lS,Tfn),$ee=new Mn(sin,!1),xee=new Mn(fin,!0),Pne=new Mn(hin,!1),Nfn=(dk(),UH),Qee=new Mn(lin,Nfn),Y(1),cte=new Mn(ain,Y(7)),ute=new Mn(din,!1),gee=new Mn(bin,!1),vfn=(o1(),J_),tee=new Mn(fR,vfn),Pfn=(a1(),xH),Nee=new Mn(Hy,Pfn),Afn=(Yo(),Ej),Tee=new Mn(win,Afn),Y(-1),Mee=new Mn(gin,null),Y(-1),Aee=new Mn(pin,Y(-1)),Y(-1),See=new Mn(hR,Y(4)),Y(-1),Iee=new Mn(lR,Y(2)),Sfn=(ps(),AI),Lee=new Mn(aR,Sfn),Y(0),Dee=new Mn(dR,Y(0)),Eee=new Mn(bR,Y(et)),mfn=(c5(),$8),eee=new Mn(o8,mfn),Kne=new Mn(min,!1),Xne=new Mn(wR,.1),Zne=new Mn(gR,!1),Wne=new Mn(vin,null),Jne=new Mn(kin,null),Y(-1),Qne=new Mn(yin,null),Y(-1),Yne=new Mn(jin,Y(-1)),Y(0),_ne=new Mn(Ein,Y(40)),pfn=(Z4(),oH),Gne=new Mn(pR,pfn),gfn=mj,Hne=new Mn(aS,gfn),Lfn=(M5(),W8),Jee=new Mn(c2,Lfn),_ee=new lt(dS),Ifn=(sk(),QP),Fee=new Mn(mR,Ifn),Ofn=(Vk(),YP),Ree=new Mn(vR,Ofn),Uee=new Mn(kR,.3),zee=new lt(yR),Dfn=(cw(),TI),Xee=new Mn(jR,Dfn),Efn=(ST(),zH),see=new Mn(Cin,Efn),Cfn=(a5(),VH),fee=new Mn(Min,Cfn),Mfn=(om(),Y8),hee=new Mn(bS,Mfn),aee=new Mn(wS,.2),uee=new Mn(ER,2),ete=new Mn(Tin,null),ite=new Mn(Ain,10),tte=new Mn(Sin,10),rte=new Mn(Pin,20),Y(0),Yee=new Mn(Iin,Y(0)),Y(0),Zee=new Mn(Oin,Y(0)),Y(0),nte=new Mn(Din,Y(0)),Ine=new Mn(CR,!1),afn=(jm(),x8),Dne=new Mn(Lin,afn),lfn=(QM(),V_),One=new Mn(Nin,lfn),mee=new Mn(gS,!1),Y(0),pee=new Mn(MR,Y(16)),Y(0),vee=new Mn(TR,Y(5)),Ffn=(DT(),QH),Tte=new Mn(Ol,Ffn),ote=new Mn(pS,10),hte=new Mn(mS,1),xfn=(bT(),VP),pte=new Mn(s8,xfn),dte=new lt(AR),$fn=Y(1),Y(0),wte=new Mn(SR,$fn),Bfn=(dT(),JH),Ite=new Mn(vS,Bfn),Ate=new lt(kS),jte=new Mn(yS,!0),kte=new Mn(jS,2),Cte=new Mn(PR,!0),jfn=(vA(),JP),cee=new Mn($in,jfn),yfn=(Yp(),bv),ree=new Mn(xin,yfn),wfn=(lh(),k1),Rne=new Mn(ES,wfn),Bne=new Mn(Fin,!1),Fne=new Mn(Bin,!1),dfn=(dd(),Ow),Lne=new Mn(IR,dfn),bfn=(w5(),FH),xne=new Mn(Rin,bfn),Nne=new Mn(OR,0),$ne=new Mn(DR,0),jee=Q_,yee=pj,Pee=CI,Oee=CI,Cee=$H,Vne=(jl(),M1),nee=$8,zne=$8,qne=$8,Une=M1,Hee=J8,qee=W8,Bee=W8,Kee=W8,Gee=_H,Wee=J8,Vee=J8,lee=(El(),F3),dee=F3,bee=Y8,oee=Yj,ste=Ov,fte=Gw,lte=Ov,ate=Gw,mte=Ov,vte=Gw,bte=W_,gte=VP,Ote=Ov,Dte=Gw,Ste=Ov,Pte=Gw,Ete=Gw,yte=Gw,Mte=Gw}function YLe(n,e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn,Rn,te,xe,Lt,Yu,Rr,Fo,W2,D1,rf,cf,Xd,q3,Ba,U3,Ih,cl,Mb,G3,J2,Oh,Vd,Rl,Dse,y0n,Tb,_9,DU,z3,H9,ug,q9,LU,Lse;for(y0n=0,xe=e,Rr=0,D1=xe.length;Rr0&&(n.a[Ih.p]=y0n++)}for(H9=0,Lt=t,Fo=0,rf=Lt.length;Fo0;){for(Ih=(oe(J2.b>0),u(J2.a.Xb(J2.c=--J2.b),12)),G3=0,f=new C(Ih.e);f.a0&&(Ih.j==(en(),Xn)?(n.a[Ih.p]=H9,++H9):(n.a[Ih.p]=H9+cf+q3,++q3))}H9+=q3}for(Mb=new de,m=new rh,te=e,Yu=0,W2=te.length;Yul.b&&(l.b=Oh)):Ih.i.c==Dse&&(Ohl.c&&(l.c=Oh));for(F4(k,0,k.length,null),z3=K(ye,_e,28,k.length,15,1),i=K(ye,_e,28,H9+1,15,1),S=0;S0;)tn%2>0&&(r+=LU[tn+1]),tn=(tn-1)/2|0,++LU[tn];for(kn=K(Iie,Bn,374,k.length*2,0,1),N=0;N0&&z7(Yu.f),z(S,Yan)!=null&&(f=u(z(S,Yan),347),Mb=f.Tg(S),kg(S,y.Math.max(S.g,Mb.a),y.Math.max(S.f,Mb.b)));if(rf=u(z(e,C1),107),p=e.g-(rf.b+rf.c),g=e.f-(rf.d+rf.a),Oh.bh("Available Child Area: ("+p+"|"+g+")"),ht(e,x2,p/g),cRn(e,r,i.eh(W2)),u(z(e,x3),280)==aO&&(otn(e),kg(e,rf.b+$(R(z(e,B2)))+rf.c,rf.d+$(R(z(e,F2)))+rf.a)),Oh.bh("Executed layout algorithm: "+Oe(z(e,$v))+" on node "+e.k),u(z(e,x3),280)==Yw){if(p<0||g<0)throw M(new _l("The size defined by the parent parallel node is too small for the space provided by the paddings of the child hierarchical node. "+e.k));for(Lf(e,B2)||Lf(e,F2)||otn(e),k=$(R(z(e,B2))),m=$(R(z(e,F2))),Oh.bh("Desired Child Area: ("+k+"|"+m+")"),Xd=p/k,q3=g/m,cf=y.Math.min(Xd,y.Math.min(q3,$(R(z(e,Hue))))),ht(e,cO,cf),Oh.bh(e.k+" -- Local Scale Factor (X|Y): ("+Xd+"|"+q3+")"),N=u(z(e,Gj),21),c=0,s=0,cf'?":An(PWn,n)?"'(?<' or '(? toIndex: ",Stn=", toIndex: ",Ptn="Index: ",Itn=", Size: ",Hm="org.eclipse.elk.alg.common",Ne={50:1},Yzn="org.eclipse.elk.alg.common.compaction",Zzn="Scanline/EventHandler",zh="org.eclipse.elk.alg.common.compaction.oned",nXn="CNode belongs to another CGroup.",eXn="ISpacingsHandler/1",FB="The ",BB=" instance has been finished already.",tXn="The direction ",iXn=" is not supported by the CGraph instance.",rXn="OneDimensionalCompactor",cXn="OneDimensionalCompactor/lambda$0$Type",uXn="Quadruplet",oXn="ScanlineConstraintCalculator",sXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",fXn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",hXn="ScanlineConstraintCalculator/Timestamp",lXn="ScanlineConstraintCalculator/lambda$0$Type",ph={178:1,46:1},RB="org.eclipse.elk.alg.common.compaction.options",oc="org.eclipse.elk.core.data",Otn="org.eclipse.elk.polyomino.traversalStrategy",Dtn="org.eclipse.elk.polyomino.lowLevelSort",Ltn="org.eclipse.elk.polyomino.highLevelSort",Ntn="org.eclipse.elk.polyomino.fill",ms={134:1},KB="polyomino",Z5="org.eclipse.elk.alg.common.networksimplex",Xh={183:1,3:1,4:1},aXn="org.eclipse.elk.alg.common.nodespacing",kd="org.eclipse.elk.alg.common.nodespacing.cellsystem",qm="CENTER",dXn={217:1,336:1},$tn={3:1,4:1,5:1,603:1},s3="LEFT",f3="RIGHT",xtn="Vertical alignment cannot be null",Ftn="BOTTOM",nS="org.eclipse.elk.alg.common.nodespacing.internal",n8="UNDEFINED",_f=.01,Oy="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",bXn="LabelPlacer/lambda$0$Type",wXn="LabelPlacer/lambda$1$Type",gXn="portRatioOrPosition",Um="org.eclipse.elk.alg.common.overlaps",_B="DOWN",mh="org.eclipse.elk.alg.common.polyomino",eS="NORTH",HB="EAST",qB="SOUTH",UB="WEST",tS="org.eclipse.elk.alg.common.polyomino.structures",Btn="Direction",GB="Grid is only of size ",zB=". Requested point (",XB=") is out of bounds.",iS=" Given center based coordinates were (",Dy="org.eclipse.elk.graph.properties",pXn="IPropertyHolder",Rtn={3:1,96:1,137:1},h3="org.eclipse.elk.alg.common.spore",mXn="org.eclipse.elk.alg.common.utils",yd={205:1},e2="org.eclipse.elk.core",vXn="Connected Components Compaction",kXn="org.eclipse.elk.alg.disco",rS="org.eclipse.elk.alg.disco.graph",VB="org.eclipse.elk.alg.disco.options",Ktn="CompactionStrategy",_tn="org.eclipse.elk.disco.componentCompaction.strategy",Htn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",qtn="org.eclipse.elk.disco.debug.discoGraph",Utn="org.eclipse.elk.disco.debug.discoPolys",yXn="componentCompaction",jd="org.eclipse.elk.disco",WB="org.eclipse.elk.spacing.componentComponent",JB="org.eclipse.elk.edge.thickness",l3="org.eclipse.elk.aspectRatio",W0="org.eclipse.elk.padding",t2="org.eclipse.elk.alg.disco.transform",QB=1.5707963267948966,i2=17976931348623157e292,kw={3:1,4:1,5:1,198:1},jXn={3:1,6:1,4:1,5:1,100:1,115:1},YB="org.eclipse.elk.alg.force",Gtn="ComponentsProcessor",EXn="ComponentsProcessor/1",ztn="ElkGraphImporter/lambda$0$Type",Ly="org.eclipse.elk.alg.force.graph",CXn="Component Layout",Xtn="org.eclipse.elk.alg.force.model",cS="org.eclipse.elk.force.model",Vtn="org.eclipse.elk.force.iterations",Wtn="org.eclipse.elk.force.repulsivePower",ZB="org.eclipse.elk.force.temperature",vh=.001,nR="org.eclipse.elk.force.repulsion",e8="org.eclipse.elk.alg.force.options",Gm=1.600000023841858,cu="org.eclipse.elk.force",Ny="org.eclipse.elk.priority",yw="org.eclipse.elk.spacing.nodeNode",eR="org.eclipse.elk.spacing.edgeLabel",uS="org.eclipse.elk.randomSeed",t8="org.eclipse.elk.separateConnectedComponents",i8="org.eclipse.elk.interactive",tR="org.eclipse.elk.portConstraints",oS="org.eclipse.elk.edgeLabels.inline",r8="org.eclipse.elk.omitNodeMicroLayout",zm="org.eclipse.elk.nodeSize.fixedGraphSize",a3="org.eclipse.elk.nodeSize.options",r2="org.eclipse.elk.nodeSize.constraints",Xm="org.eclipse.elk.nodeLabels.placement",Vm="org.eclipse.elk.portLabels.placement",$y="org.eclipse.elk.topdownLayout",xy="org.eclipse.elk.topdown.scaleFactor",Fy="org.eclipse.elk.topdown.hierarchicalNodeWidth",By="org.eclipse.elk.topdown.hierarchicalNodeAspectRatio",J0="org.eclipse.elk.topdown.nodeType",Jtn="origin",MXn="random",TXn="boundingBox.upLeft",AXn="boundingBox.lowRight",Qtn="org.eclipse.elk.stress.fixed",Ytn="org.eclipse.elk.stress.desiredEdgeLength",Ztn="org.eclipse.elk.stress.dimension",nin="org.eclipse.elk.stress.epsilon",ein="org.eclipse.elk.stress.iterationLimit",la="org.eclipse.elk.stress",SXn="ELK Stress",d3="org.eclipse.elk.nodeSize.minimum",sS="org.eclipse.elk.alg.force.stress",PXn="Layered layout",b3="org.eclipse.elk.alg.layered",Ry="org.eclipse.elk.alg.layered.compaction.components",c8="org.eclipse.elk.alg.layered.compaction.oned",fS="org.eclipse.elk.alg.layered.compaction.oned.algs",Ed="org.eclipse.elk.alg.layered.compaction.recthull",Hf="org.eclipse.elk.alg.layered.components",kh="NONE",tin="MODEL_ORDER",Mc={3:1,6:1,4:1,9:1,5:1,126:1},IXn={3:1,6:1,4:1,5:1,150:1,100:1,115:1},hS="org.eclipse.elk.alg.layered.compound",vt={47:1},Bc="org.eclipse.elk.alg.layered.graph",iR=" -> ",OXn="Not supported by LGraph",iin="Port side is undefined",rR={3:1,6:1,4:1,5:1,483:1,150:1,100:1,115:1},b1={3:1,6:1,4:1,5:1,150:1,199:1,210:1,100:1,115:1},DXn={3:1,6:1,4:1,5:1,150:1,2042:1,210:1,100:1,115:1},LXn=`([{"' \r +`,NXn=`)]}"' \r +`,$Xn="The given string contains parts that cannot be parsed as numbers.",Ky="org.eclipse.elk.core.math",xXn={3:1,4:1,140:1,214:1,423:1},FXn={3:1,4:1,107:1,214:1,423:1},w1="org.eclipse.elk.alg.layered.graph.transform",BXn="ElkGraphImporter",RXn="ElkGraphImporter/lambda$1$Type",KXn="ElkGraphImporter/lambda$2$Type",_Xn="ElkGraphImporter/lambda$4$Type",Qn="org.eclipse.elk.alg.layered.intermediate",HXn="Node margin calculation",qXn="ONE_SIDED_GREEDY_SWITCH",UXn="TWO_SIDED_GREEDY_SWITCH",cR="No implementation is available for the layout processor ",uR="IntermediateProcessorStrategy",oR="Node '",GXn="FIRST_SEPARATE",zXn="LAST_SEPARATE",XXn="Odd port side processing",di="org.eclipse.elk.alg.layered.intermediate.compaction",u8="org.eclipse.elk.alg.layered.intermediate.greedyswitch",Vh="org.eclipse.elk.alg.layered.p3order.counting",_y={230:1},w3="org.eclipse.elk.alg.layered.intermediate.loops",Io="org.eclipse.elk.alg.layered.intermediate.loops.ordering",aa="org.eclipse.elk.alg.layered.intermediate.loops.routing",rin="org.eclipse.elk.alg.layered.intermediate.preserveorder",yh="org.eclipse.elk.alg.layered.intermediate.wrapping",Tc="org.eclipse.elk.alg.layered.options",sR="INTERACTIVE",cin="GREEDY",VXn="DEPTH_FIRST",WXn="EDGE_LENGTH",JXn="SELF_LOOPS",QXn="firstTryWithInitialOrder",uin="org.eclipse.elk.layered.directionCongruency",oin="org.eclipse.elk.layered.feedbackEdges",lS="org.eclipse.elk.layered.interactiveReferencePoint",sin="org.eclipse.elk.layered.mergeEdges",fin="org.eclipse.elk.layered.mergeHierarchyEdges",hin="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",lin="org.eclipse.elk.layered.portSortingStrategy",ain="org.eclipse.elk.layered.thoroughness",din="org.eclipse.elk.layered.unnecessaryBendpoints",bin="org.eclipse.elk.layered.generatePositionAndLayerIds",fR="org.eclipse.elk.layered.cycleBreaking.strategy",Hy="org.eclipse.elk.layered.layering.strategy",win="org.eclipse.elk.layered.layering.layerConstraint",gin="org.eclipse.elk.layered.layering.layerChoiceConstraint",pin="org.eclipse.elk.layered.layering.layerId",hR="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",lR="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",aR="org.eclipse.elk.layered.layering.nodePromotion.strategy",dR="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",bR="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",o8="org.eclipse.elk.layered.crossingMinimization.strategy",min="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",wR="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",gR="org.eclipse.elk.layered.crossingMinimization.semiInteractive",vin="org.eclipse.elk.layered.crossingMinimization.inLayerPredOf",kin="org.eclipse.elk.layered.crossingMinimization.inLayerSuccOf",yin="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",jin="org.eclipse.elk.layered.crossingMinimization.positionId",Ein="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",pR="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",aS="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",c2="org.eclipse.elk.layered.nodePlacement.strategy",dS="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",mR="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",vR="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",kR="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",yR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",jR="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",Cin="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",Min="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",bS="org.eclipse.elk.layered.edgeRouting.splines.mode",wS="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",ER="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",Tin="org.eclipse.elk.layered.spacing.baseValue",Ain="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",Sin="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",Pin="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",Iin="org.eclipse.elk.layered.priority.direction",Oin="org.eclipse.elk.layered.priority.shortness",Din="org.eclipse.elk.layered.priority.straightness",CR="org.eclipse.elk.layered.compaction.connectedComponents",Lin="org.eclipse.elk.layered.compaction.postCompaction.strategy",Nin="org.eclipse.elk.layered.compaction.postCompaction.constraints",gS="org.eclipse.elk.layered.highDegreeNodes.treatment",MR="org.eclipse.elk.layered.highDegreeNodes.threshold",TR="org.eclipse.elk.layered.highDegreeNodes.treeHeight",Ol="org.eclipse.elk.layered.wrapping.strategy",pS="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",mS="org.eclipse.elk.layered.wrapping.correctionFactor",s8="org.eclipse.elk.layered.wrapping.cutting.strategy",AR="org.eclipse.elk.layered.wrapping.cutting.cuts",SR="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",vS="org.eclipse.elk.layered.wrapping.validify.strategy",kS="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",yS="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",jS="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",PR="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",$in="org.eclipse.elk.layered.edgeLabels.sideSelection",xin="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",ES="org.eclipse.elk.layered.considerModelOrder.strategy",Fin="org.eclipse.elk.layered.considerModelOrder.portModelOrder",Bin="org.eclipse.elk.layered.considerModelOrder.noModelOrder",IR="org.eclipse.elk.layered.considerModelOrder.components",Rin="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",OR="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",DR="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",LR="layering",YXn="layering.minWidth",ZXn="layering.nodePromotion",Wm="crossingMinimization",CS="org.eclipse.elk.hierarchyHandling",nVn="crossingMinimization.greedySwitch",eVn="nodePlacement",tVn="nodePlacement.bk",iVn="edgeRouting",qy="org.eclipse.elk.edgeRouting",qf="spacing",Kin="priority",_in="compaction",rVn="compaction.postCompaction",cVn="Specifies whether and how post-process compaction is applied.",Hin="highDegreeNodes",qin="wrapping",uVn="wrapping.cutting",oVn="wrapping.validify",Uin="wrapping.multiEdge",NR="edgeLabels",f8="considerModelOrder",Gin="org.eclipse.elk.spacing.commentComment",zin="org.eclipse.elk.spacing.commentNode",Xin="org.eclipse.elk.spacing.edgeEdge",$R="org.eclipse.elk.spacing.edgeNode",Vin="org.eclipse.elk.spacing.labelLabel",Win="org.eclipse.elk.spacing.labelPortHorizontal",Jin="org.eclipse.elk.spacing.labelPortVertical",Qin="org.eclipse.elk.spacing.labelNode",Yin="org.eclipse.elk.spacing.nodeSelfLoop",Zin="org.eclipse.elk.spacing.portPort",nrn="org.eclipse.elk.spacing.individual",ern="org.eclipse.elk.port.borderOffset",trn="org.eclipse.elk.noLayout",irn="org.eclipse.elk.port.side",Uy="org.eclipse.elk.debugMode",rrn="org.eclipse.elk.alignment",crn="org.eclipse.elk.insideSelfLoops.activate",urn="org.eclipse.elk.insideSelfLoops.yo",xR="org.eclipse.elk.direction",orn="org.eclipse.elk.nodeLabels.padding",srn="org.eclipse.elk.portLabels.nextToPortIfPossible",frn="org.eclipse.elk.portLabels.treatAsGroup",hrn="org.eclipse.elk.portAlignment.default",lrn="org.eclipse.elk.portAlignment.north",arn="org.eclipse.elk.portAlignment.south",drn="org.eclipse.elk.portAlignment.west",brn="org.eclipse.elk.portAlignment.east",MS="org.eclipse.elk.contentAlignment",wrn="org.eclipse.elk.junctionPoints",grn="org.eclipse.elk.edgeLabels.placement",prn="org.eclipse.elk.port.index",mrn="org.eclipse.elk.commentBox",vrn="org.eclipse.elk.hypernode",krn="org.eclipse.elk.port.anchor",FR="org.eclipse.elk.partitioning.activate",BR="org.eclipse.elk.partitioning.partition",TS="org.eclipse.elk.position",yrn="org.eclipse.elk.margins",jrn="org.eclipse.elk.spacing.portsSurrounding",AS="org.eclipse.elk.interactiveLayout",dc="org.eclipse.elk.core.util",Ern={3:1,4:1,5:1,601:1},sVn="NETWORK_SIMPLEX",Crn="SIMPLE",vr={106:1,47:1},SS="org.eclipse.elk.alg.layered.p1cycles",Dl="org.eclipse.elk.alg.layered.p2layers",Mrn={413:1,230:1},fVn={846:1,3:1,4:1},Nu="org.eclipse.elk.alg.layered.p3order",kr="org.eclipse.elk.alg.layered.p4nodes",hVn={3:1,4:1,5:1,854:1},jh=1e-5,da="org.eclipse.elk.alg.layered.p4nodes.bk",RR="org.eclipse.elk.alg.layered.p5edges",mf="org.eclipse.elk.alg.layered.p5edges.orthogonal",KR="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",_R=1e-6,jw="org.eclipse.elk.alg.layered.p5edges.splines",HR=.09999999999999998,PS=1e-8,lVn=4.71238898038469,Trn=3.141592653589793,Ll="org.eclipse.elk.alg.mrtree",qR=.10000000149011612,IS="SUPER_ROOT",h8="org.eclipse.elk.alg.mrtree.graph",Arn=-17976931348623157e292,Rc="org.eclipse.elk.alg.mrtree.intermediate",aVn="Processor compute fanout",OS={3:1,6:1,4:1,5:1,534:1,100:1,115:1},dVn="Set neighbors in level",Gy="org.eclipse.elk.alg.mrtree.options",bVn="DESCENDANTS",Srn="org.eclipse.elk.mrtree.compaction",Prn="org.eclipse.elk.mrtree.edgeEndTextureLength",Irn="org.eclipse.elk.mrtree.treeLevel",Orn="org.eclipse.elk.mrtree.positionConstraint",Drn="org.eclipse.elk.mrtree.weighting",Lrn="org.eclipse.elk.mrtree.edgeRoutingMode",Nrn="org.eclipse.elk.mrtree.searchOrder",wVn="Position Constraint",uu="org.eclipse.elk.mrtree",gVn="org.eclipse.elk.tree",pVn="Processor arrange level",Jm="org.eclipse.elk.alg.mrtree.p2order",po="org.eclipse.elk.alg.mrtree.p4route",$rn="org.eclipse.elk.alg.radial",Cd=6.283185307179586,xrn="Before",Frn=5e-324,DS="After",Brn="org.eclipse.elk.alg.radial.intermediate",mVn="COMPACTION",UR="org.eclipse.elk.alg.radial.intermediate.compaction",vVn={3:1,4:1,5:1,100:1},Rrn="org.eclipse.elk.alg.radial.intermediate.optimization",GR="No implementation is available for the layout option ",l8="org.eclipse.elk.alg.radial.options",Krn="org.eclipse.elk.radial.centerOnRoot",_rn="org.eclipse.elk.radial.orderId",Hrn="org.eclipse.elk.radial.radius",LS="org.eclipse.elk.radial.rotate",zR="org.eclipse.elk.radial.compactor",XR="org.eclipse.elk.radial.compactionStepSize",qrn="org.eclipse.elk.radial.sorter",Urn="org.eclipse.elk.radial.wedgeCriteria",Grn="org.eclipse.elk.radial.optimizationCriteria",VR="org.eclipse.elk.radial.rotation.targetAngle",WR="org.eclipse.elk.radial.rotation.computeAdditionalWedgeSpace",zrn="org.eclipse.elk.radial.rotation.outgoingEdgeAngles",kVn="Compaction",Xrn="rotation",es="org.eclipse.elk.radial",yVn="org.eclipse.elk.alg.radial.p1position.wedge",Vrn="org.eclipse.elk.alg.radial.sorting",jVn=5.497787143782138,EVn=3.9269908169872414,CVn=2.356194490192345,MVn="org.eclipse.elk.alg.rectpacking",NS="org.eclipse.elk.alg.rectpacking.intermediate",JR="org.eclipse.elk.alg.rectpacking.options",Wrn="org.eclipse.elk.rectpacking.trybox",Jrn="org.eclipse.elk.rectpacking.currentPosition",Qrn="org.eclipse.elk.rectpacking.desiredPosition",Yrn="org.eclipse.elk.rectpacking.inNewRow",Zrn="org.eclipse.elk.rectpacking.widthApproximation.strategy",ncn="org.eclipse.elk.rectpacking.widthApproximation.targetWidth",ecn="org.eclipse.elk.rectpacking.widthApproximation.optimizationGoal",tcn="org.eclipse.elk.rectpacking.widthApproximation.lastPlaceShift",icn="org.eclipse.elk.rectpacking.packing.strategy",rcn="org.eclipse.elk.rectpacking.packing.compaction.rowHeightReevaluation",ccn="org.eclipse.elk.rectpacking.packing.compaction.iterations",ucn="org.eclipse.elk.rectpacking.whiteSpaceElimination.strategy",QR="widthApproximation",TVn="Compaction Strategy",AVn="packing.compaction",co="org.eclipse.elk.rectpacking",Qm="org.eclipse.elk.alg.rectpacking.p1widthapproximation",$S="org.eclipse.elk.alg.rectpacking.p2packing",SVn="No Compaction",ocn="org.eclipse.elk.alg.rectpacking.p3whitespaceelimination",zy="org.eclipse.elk.alg.rectpacking.util",xS="No implementation available for ",Ew="org.eclipse.elk.alg.spore",Cw="org.eclipse.elk.alg.spore.options",Q0="org.eclipse.elk.sporeCompaction",YR="org.eclipse.elk.underlyingLayoutAlgorithm",scn="org.eclipse.elk.processingOrder.treeConstruction",fcn="org.eclipse.elk.processingOrder.spanningTreeCostFunction",ZR="org.eclipse.elk.processingOrder.preferredRoot",nK="org.eclipse.elk.processingOrder.rootSelection",eK="org.eclipse.elk.structure.structureExtractionStrategy",hcn="org.eclipse.elk.compaction.compactionStrategy",lcn="org.eclipse.elk.compaction.orthogonal",acn="org.eclipse.elk.overlapRemoval.maxIterations",dcn="org.eclipse.elk.overlapRemoval.runScanline",tK="processingOrder",PVn="overlapRemoval",Ym="org.eclipse.elk.sporeOverlap",IVn="org.eclipse.elk.alg.spore.p1structure",iK="org.eclipse.elk.alg.spore.p2processingorder",rK="org.eclipse.elk.alg.spore.p3execution",OVn="Topdown Layout",DVn="Invalid index: ",Zm="org.eclipse.elk.core.alg",u2={341:1},Mw={295:1},LVn="Make sure its type is registered with the ",bcn=" utility class.",nv="true",cK="false",NVn="Couldn't clone property '",Y0=.05,uo="org.eclipse.elk.core.options",$Vn=1.2999999523162842,Z0="org.eclipse.elk.box",wcn="org.eclipse.elk.expandNodes",gcn="org.eclipse.elk.box.packingMode",xVn="org.eclipse.elk.algorithm",FVn="org.eclipse.elk.resolvedAlgorithm",pcn="org.eclipse.elk.bendPoints",iNe="org.eclipse.elk.labelManager",BVn="org.eclipse.elk.scaleFactor",RVn="org.eclipse.elk.childAreaWidth",KVn="org.eclipse.elk.childAreaHeight",_Vn="org.eclipse.elk.animate",HVn="org.eclipse.elk.animTimeFactor",qVn="org.eclipse.elk.layoutAncestors",UVn="org.eclipse.elk.maxAnimTime",GVn="org.eclipse.elk.minAnimTime",zVn="org.eclipse.elk.progressBar",XVn="org.eclipse.elk.validateGraph",VVn="org.eclipse.elk.validateOptions",WVn="org.eclipse.elk.zoomToFit",rNe="org.eclipse.elk.font.name",JVn="org.eclipse.elk.font.size",mcn="org.eclipse.elk.topdown.sizeApproximator",vcn="org.eclipse.elk.topdown.scaleCap",QVn="org.eclipse.elk.edge.type",YVn="partitioning",ZVn="nodeLabels",FS="portAlignment",uK="nodeSize",oK="port",kcn="portLabels",Xy="topdown",nWn="insideSelfLoops",a8="org.eclipse.elk.fixed",BS="org.eclipse.elk.random",ycn={3:1,34:1,22:1,347:1},eWn="port must have a parent node to calculate the port side",tWn="The edge needs to have exactly one edge section. Found: ",d8="org.eclipse.elk.core.util.adapters",ts="org.eclipse.emf.ecore",o2="org.eclipse.elk.graph",iWn="EMapPropertyHolder",rWn="ElkBendPoint",cWn="ElkGraphElement",uWn="ElkConnectableShape",jcn="ElkEdge",oWn="ElkEdgeSection",sWn="EModelElement",fWn="ENamedElement",Ecn="ElkLabel",Ccn="ElkNode",Mcn="ElkPort",hWn={94:1,93:1},g3="org.eclipse.emf.common.notify.impl",ba="The feature '",b8="' is not a valid changeable feature",lWn="Expecting null",sK="' is not a valid feature",aWn="The feature ID",dWn=" is not a valid feature ID",kc=32768,bWn={110:1,94:1,93:1,58:1,54:1,99:1},qn="org.eclipse.emf.ecore.impl",Md="org.eclipse.elk.graph.impl",w8="Recursive containment not allowed for ",ev="The datatype '",nb="' is not a valid classifier",fK="The value '",s2={195:1,3:1,4:1},hK="The class '",tv="http://www.eclipse.org/elk/ElkGraph",Tcn="property",g8="value",lK="source",wWn="properties",gWn="identifier",aK="height",dK="width",bK="parent",wK="text",gK="children",pWn="hierarchical",Acn="sources",pK="targets",Scn="sections",RS="bendPoints",Pcn="outgoingShape",Icn="incomingShape",Ocn="outgoingSections",Dcn="incomingSections",or="org.eclipse.emf.common.util",Lcn="Severe implementation error in the Json to ElkGraph importer.",Eh="id",Ui="org.eclipse.elk.graph.json",Ncn="Unhandled parameter types: ",mWn="startPoint",vWn="An edge must have at least one source and one target (edge id: '",iv="').",kWn="Referenced edge section does not exist: ",yWn=" (edge id: '",$cn="target",jWn="sourcePoint",EWn="targetPoint",KS="group",Qe="name",CWn="connectableShape cannot be null",MWn="edge cannot be null",mK="Passed edge is not 'simple'.",_S="org.eclipse.elk.graph.util",Vy="The 'no duplicates' constraint is violated",vK="targetIndex=",Td=", size=",kK="sourceIndex=",Ch={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1},yK={3:1,4:1,20:1,31:1,56:1,16:1,51:1,15:1,59:1,70:1,66:1,61:1,596:1},HS="logging",TWn="measureExecutionTime",AWn="parser.parse.1",SWn="parser.parse.2",qS="parser.next.1",jK="parser.next.2",PWn="parser.next.3",IWn="parser.next.4",Ad="parser.factor.1",xcn="parser.factor.2",OWn="parser.factor.3",DWn="parser.factor.4",LWn="parser.factor.5",NWn="parser.factor.6",$Wn="parser.atom.1",xWn="parser.atom.2",FWn="parser.atom.3",Fcn="parser.atom.4",EK="parser.atom.5",Bcn="parser.cc.1",US="parser.cc.2",BWn="parser.cc.3",RWn="parser.cc.5",Rcn="parser.cc.6",Kcn="parser.cc.7",CK="parser.cc.8",KWn="parser.ope.1",_Wn="parser.ope.2",HWn="parser.ope.3",g1="parser.descape.1",qWn="parser.descape.2",UWn="parser.descape.3",GWn="parser.descape.4",zWn="parser.descape.5",is="parser.process.1",XWn="parser.quantifier.1",VWn="parser.quantifier.2",WWn="parser.quantifier.3",JWn="parser.quantifier.4",_cn="parser.quantifier.5",QWn="org.eclipse.emf.common.notify",Hcn={424:1,686:1},YWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1},Wy={378:1,152:1},p8="index=",MK={3:1,4:1,5:1,129:1},ZWn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,61:1},qcn={3:1,6:1,4:1,5:1,198:1},nJn={3:1,4:1,5:1,173:1,379:1},eJn=";/?:@&=+$,",tJn="invalid authority: ",iJn="EAnnotation",rJn="ETypedElement",cJn="EStructuralFeature",uJn="EAttribute",oJn="EClassifier",sJn="EEnumLiteral",fJn="EGenericType",hJn="EOperation",lJn="EParameter",aJn="EReference",dJn="ETypeParameter",Tt="org.eclipse.emf.ecore.util",TK={79:1},Ucn={3:1,20:1,16:1,15:1,61:1,597:1,79:1,71:1,97:1},bJn="org.eclipse.emf.ecore.util.FeatureMap$Entry",$u=8192,Tw=2048,m8="byte",GS="char",v8="double",k8="float",y8="int",j8="long",E8="short",wJn="java.lang.Object",f2={3:1,4:1,5:1,254:1},Gcn={3:1,4:1,5:1,688:1},gJn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,71:1},Qr={3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,71:1,97:1},Jy="mixed",Be="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",vs="kind",pJn={3:1,4:1,5:1,689:1},zcn={3:1,4:1,20:1,31:1,56:1,16:1,15:1,70:1,61:1,79:1,71:1,97:1},zS={20:1,31:1,56:1,16:1,15:1,61:1,71:1},XS={51:1,128:1,287:1},VS={76:1,343:1},WS="The value of type '",JS="' must be of type '",h2=1352,ks="http://www.eclipse.org/emf/2002/Ecore",QS=-32768,eb="constraints",Ji="baseType",mJn="getEStructuralFeature",vJn="getFeatureID",C8="feature",kJn="getOperationID",Xcn="operation",yJn="defaultValue",jJn="eTypeParameters",EJn="isInstance",CJn="getEEnumLiteral",MJn="eContainingClass",ze={57:1},TJn={3:1,4:1,5:1,124:1},AJn="org.eclipse.emf.ecore.resource",SJn={94:1,93:1,599:1,2034:1},AK="org.eclipse.emf.ecore.resource.impl",Vcn="unspecified",Qy="simple",YS="attribute",PJn="attributeWildcard",ZS="element",SK="elementWildcard",vf="collapse",PK="itemType",nP="namespace",Yy="##targetNamespace",ys="whiteSpace",Wcn="wildcards",Sd="http://www.eclipse.org/emf/2003/XMLType",IK="##any",rv="uninitialized",Zy="The multiplicity constraint is violated",eP="org.eclipse.emf.ecore.xml.type",IJn="ProcessingInstruction",OJn="SimpleAnyType",DJn="XMLTypeDocumentRoot",oi="org.eclipse.emf.ecore.xml.type.impl",nj="INF",LJn="processing",NJn="ENTITIES_._base",Jcn="minLength",Qcn="ENTITY",tP="NCName",$Jn="IDREFS_._base",Ycn="integer",OK="token",DK="pattern",xJn="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",Zcn="\\i\\c*",FJn="[\\i-[:]][\\c-[:]]*",BJn="nonPositiveInteger",ej="maxInclusive",nun="NMTOKEN",RJn="NMTOKENS_._base",eun="nonNegativeInteger",tj="minInclusive",KJn="normalizedString",_Jn="unsignedByte",HJn="unsignedInt",qJn="18446744073709551615",UJn="unsignedShort",GJn="processingInstruction",p1="org.eclipse.emf.ecore.xml.type.internal",cv=1114111,zJn="Internal Error: shorthands: \\u",M8="xml:isDigit",LK="xml:isWord",NK="xml:isSpace",$K="xml:isNameChar",xK="xml:isInitialNameChar",XJn="09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩",VJn="AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣",WJn="Private Use",FK="ASSIGNED",BK="\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯",tun="UNASSIGNED",uv={3:1,122:1},JJn="org.eclipse.emf.ecore.xml.type.util",iP={3:1,4:1,5:1,381:1},iun="org.eclipse.xtext.xbase.lib",QJn="Cannot add elements to a Range",YJn="Cannot set elements in a Range",ZJn="Cannot remove elements from a Range",nQn="user.agent",o,rP,RK;y.goog=y.goog||{},y.goog.global=y.goog.global||y,rP={},b(1,null,{},Bu),o.Fb=function(e){return YMn(this,e)},o.Gb=function(){return this.Rm},o.Hb=function(){return l0(this)},o.Ib=function(){var e;return Xa(wo(this))+"@"+(e=mt(this)>>>0,e.toString(16))},o.equals=function(n){return this.Fb(n)},o.hashCode=function(){return this.Hb()},o.toString=function(){return this.Ib()};var eQn,tQn,iQn;b(297,1,{297:1,2124:1},YQ),o.ve=function(e){var t;return t=new YQ,t.i=4,e>1?t.c=kOn(this,e-1):t.c=this,t},o.we=function(){return ll(this),this.b},o.xe=function(){return Xa(this)},o.ye=function(){return ll(this),this.k},o.ze=function(){return(this.i&4)!=0},o.Ae=function(){return(this.i&1)!=0},o.Ib=function(){return fQ(this)},o.i=0;var ki=w(ac,"Object",1),run=w(ac,"Class",297);b(2096,1,ky),w(yy,"Optional",2096),b(1191,2096,ky,Ht),o.Fb=function(e){return e===this},o.Hb=function(){return 2040732332},o.Ib=function(){return"Optional.absent()"},o.Jb=function(e){return Se(e),Zv(),KK};var KK;w(yy,"Absent",1191),b(636,1,{},yD),w(yy,"Joiner",636);var cNe=Nt(yy,"Predicate");b(589,1,{178:1,589:1,3:1,46:1},A8n),o.Mb=function(e){return kFn(this,e)},o.Lb=function(e){return kFn(this,e)},o.Fb=function(e){var t;return D(e,589)?(t=u(e,589),Wnn(this.a,t.a)):!1},o.Hb=function(){return rY(this.a)+306654252},o.Ib=function(){return Gje(this.a)},w(yy,"Predicates/AndPredicate",589),b(419,2096,{419:1,3:1},TE),o.Fb=function(e){var t;return D(e,419)?(t=u(e,419),rt(this.a,t.a)):!1},o.Hb=function(){return 1502476572+mt(this.a)},o.Ib=function(){return Szn+this.a+")"},o.Jb=function(e){return new TE(TM(e.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},w(yy,"Present",419),b(204,1,$m),o.Nb=function(e){_i(this,e)},o.Qb=function(){_jn()},w(Cn,"UnmodifiableIterator",204),b(2076,204,xm),o.Qb=function(){_jn()},o.Rb=function(e){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(Cn,"UnmodifiableListIterator",2076),b(399,2076,xm),o.Ob=function(){return this.c0},o.Pb=function(){if(this.c>=this.d)throw M(new nc);return this.Xb(this.c++)},o.Tb=function(){return this.c},o.Ub=function(){if(this.c<=0)throw M(new nc);return this.Xb(--this.c)},o.Vb=function(){return this.c-1},o.c=0,o.d=0,w(Cn,"AbstractIndexedListIterator",399),b(713,204,$m),o.Ob=function(){return E$(this)},o.Pb=function(){return iQ(this)},o.e=1,w(Cn,"AbstractIterator",713),b(2084,1,{229:1}),o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.Fb=function(e){return G$(this,e)},o.Hb=function(){return mt(this.Zb())},o.dc=function(){return this.gc()==0},o.ec=function(){return Tp(this)},o.Ib=function(){return Jr(this.Zb())},w(Cn,"AbstractMultimap",2084),b(742,2084,md),o.$b=function(){gT(this)},o._b=function(e){return uEn(this,e)},o.ac=function(){return new h4(this,this.c)},o.ic=function(e){return this.hc()},o.bc=function(){return new Mg(this,this.c)},o.jc=function(){return this.mc(this.hc())},o.kc=function(){return new Mjn(this)},o.lc=function(){return nF(this.c.vc().Nc(),new Xe,64,this.d)},o.cc=function(e){return ot(this,e)},o.fc=function(e){return Ok(this,e)},o.gc=function(){return this.d},o.mc=function(e){return Dn(),new Q3(e)},o.nc=function(){return new Cjn(this)},o.oc=function(){return nF(this.c.Cc().Nc(),new Jt,64,this.d)},o.pc=function(e,t){return new VM(this,e,t,null)},o.d=0,w(Cn,"AbstractMapBasedMultimap",742),b(1696,742,md),o.hc=function(){return new Gc(this.a)},o.jc=function(){return Dn(),Dn(),sr},o.cc=function(e){return u(ot(this,e),15)},o.fc=function(e){return u(Ok(this,e),15)},o.Zb=function(){return Dp(this)},o.Fb=function(e){return G$(this,e)},o.qc=function(e){return u(ot(this,e),15)},o.rc=function(e){return u(Ok(this,e),15)},o.mc=function(e){return TN(u(e,15))},o.pc=function(e,t){return ADn(this,e,u(t,15),null)},w(Cn,"AbstractListMultimap",1696),b(748,1,Si),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()||this.e.Ob()},o.Pb=function(){var e;return this.e.Ob()||(e=u(this.c.Pb(),44),this.b=e.ld(),this.a=u(e.md(),16),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},o.Qb=function(){this.e.Qb(),u(as(this.a),16).dc()&&this.c.Qb(),--this.d.d},w(Cn,"AbstractMapBasedMultimap/Itr",748),b(1129,748,Si,Cjn),o.sc=function(e,t){return t},w(Cn,"AbstractMapBasedMultimap/1",1129),b(1130,1,{},Jt),o.Kb=function(e){return u(e,16).Nc()},w(Cn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1130),b(1131,748,Si,Mjn),o.sc=function(e,t){return new i0(e,t)},w(Cn,"AbstractMapBasedMultimap/2",1131);var cun=Nt(le,"Map");b(2065,1,X0),o.wc=function(e){f5(this,e)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.$b=function(){this.vc().$b()},o.tc=function(e){return xx(this,e)},o._b=function(e){return!!XZ(this,e,!1)},o.uc=function(e){var t,i,r;for(i=this.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),r=t.md(),x(e)===x(r)||e!=null&&rt(e,r))return!0;return!1},o.Fb=function(e){var t,i,r;if(e===this)return!0;if(!D(e,85)||(r=u(e,85),this.gc()!=r.gc()))return!1;for(i=r.vc().Kc();i.Ob();)if(t=u(i.Pb(),44),!this.tc(t))return!1;return!0},o.xc=function(e){return Kr(XZ(this,e,!1))},o.Hb=function(){return VQ(this.vc())},o.dc=function(){return this.gc()==0},o.ec=function(){return new qa(this)},o.zc=function(e,t){throw M(new Kl("Put not supported on this map"))},o.Ac=function(e){s5(this,e)},o.Bc=function(e){return Kr(XZ(this,e,!0))},o.gc=function(){return this.vc().gc()},o.Ib=function(){return DKn(this)},o.Cc=function(){return new ol(this)},w(le,"AbstractMap",2065),b(2085,2065,X0),o.bc=function(){return new VE(this)},o.vc=function(){return EPn(this)},o.ec=function(){var e;return e=this.g,e||(this.g=this.bc())},o.Cc=function(){var e;return e=this.i,e||(this.i=new JEn(this))},w(Cn,"Maps/ViewCachingAbstractMap",2085),b(402,2085,X0,h4),o.xc=function(e){return hme(this,e)},o.Bc=function(e){return L6e(this,e)},o.$b=function(){this.d==this.e.c?this.e.$b():iM(new uW(this))},o._b=function(e){return rBn(this.d,e)},o.Ec=function(){return new S8n(this)},o.Dc=function(){return this.Ec()},o.Fb=function(e){return this===e||rt(this.d,e)},o.Hb=function(){return mt(this.d)},o.ec=function(){return this.e.ec()},o.gc=function(){return this.d.gc()},o.Ib=function(){return Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/AsMap",402);var Oo=Nt(ac,"Iterable");b(31,1,pw),o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){throw M(new Kl("Add not supported on this collection"))},o.Gc=function(e){return Bi(this,e)},o.$b=function(){zW(this)},o.Hc=function(e){return iw(this,e,!1)},o.Ic=function(e){return Ek(this,e)},o.dc=function(){return this.gc()==0},o.Mc=function(e){return iw(this,e,!0)},o.Pc=function(){return gW(this)},o.Qc=function(e){return A5(this,e)},o.Ib=function(){return ca(this)},w(le,"AbstractCollection",31);var js=Nt(le,"Set");b(Kf,31,Lu),o.Nc=function(){return new In(this,1)},o.Fb=function(e){return WBn(this,e)},o.Hb=function(){return VQ(this)},w(le,"AbstractSet",Kf),b(2068,Kf,Lu),w(Cn,"Sets/ImprovedAbstractSet",2068),b(2069,2068,Lu),o.$b=function(){this.Rc().$b()},o.Hc=function(e){return LBn(this,e)},o.dc=function(){return this.Rc().dc()},o.Mc=function(e){var t;return this.Hc(e)&&D(e,44)?(t=u(e,44),this.Rc().ec().Mc(t.ld())):!1},o.gc=function(){return this.Rc().gc()},w(Cn,"Maps/EntrySet",2069),b(1127,2069,Lu,S8n),o.Hc=function(e){return yY(this.a.d.vc(),e)},o.Kc=function(){return new uW(this.a)},o.Rc=function(){return this.a},o.Mc=function(e){var t;return yY(this.a.d.vc(),e)?(t=u(as(u(e,44)),44),Y3e(this.a.e,t.ld()),!0):!1},o.Nc=function(){return N7(this.a.d.vc().Nc(),new P8n(this.a))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1127),b(1128,1,{},P8n),o.Kb=function(e){return MLn(this.a,u(e,44))},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1128),b(746,1,Si,uW),o.Nb=function(e){_i(this,e)},o.Pb=function(){var e;return e=u(this.b.Pb(),44),this.a=u(e.md(),16),MLn(this.c,e)},o.Ob=function(){return this.b.Ob()},o.Qb=function(){v4(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",746),b(542,2068,Lu,VE),o.$b=function(){this.b.$b()},o.Hc=function(e){return this.b._b(e)},o.Jc=function(e){Se(e),this.b.wc(new z8n(e))},o.dc=function(){return this.b.dc()},o.Kc=function(){return new n6(this.b.vc().Kc())},o.Mc=function(e){return this.b._b(e)?(this.b.Bc(e),!0):!1},o.gc=function(){return this.b.gc()},w(Cn,"Maps/KeySet",542),b(327,542,Lu,Mg),o.$b=function(){var e;iM((e=this.b.vc().Kc(),new Iz(this,e)))},o.Ic=function(e){return this.b.ec().Ic(e)},o.Fb=function(e){return this===e||rt(this.b.ec(),e)},o.Hb=function(){return mt(this.b.ec())},o.Kc=function(){var e;return e=this.b.vc().Kc(),new Iz(this,e)},o.Mc=function(e){var t,i;return i=0,t=u(this.b.Bc(e),16),t&&(i=t.gc(),t.$b(),this.a.d-=i),i>0},o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/KeySet",327),b(747,1,Si,Iz),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.c.Ob()},o.Pb=function(){return this.a=u(this.c.Pb(),44),this.a.ld()},o.Qb=function(){var e;v4(!!this.a),e=u(this.a.md(),16),this.c.Qb(),this.b.a.d-=e.gc(),e.$b(),this.a=null},w(Cn,"AbstractMapBasedMultimap/KeySet/1",747),b(503,402,{85:1,133:1},A7),o.bc=function(){return this.Sc()},o.ec=function(){return this.Uc()},o.Sc=function(){return new e7(this.c,this.Wc())},o.Tc=function(){return this.Wc().Tc()},o.Uc=function(){var e;return e=this.b,e||(this.b=this.Sc())},o.Vc=function(){return this.Wc().Vc()},o.Wc=function(){return u(this.d,133)},w(Cn,"AbstractMapBasedMultimap/SortedAsMap",503),b(446,503,wtn,N6),o.bc=function(){return new f4(this.a,u(u(this.d,133),139))},o.Sc=function(){return new f4(this.a,u(u(this.d,133),139))},o.ec=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Uc=function(){var e;return e=this.b,u(e||(this.b=new f4(this.a,u(u(this.d,133),139))),277)},o.Wc=function(){return u(u(this.d,133),139)},o.Xc=function(e){return u(u(this.d,133),139).Xc(e)},o.Yc=function(e){return u(u(this.d,133),139).Yc(e)},o.Zc=function(e,t){return new N6(this.a,u(u(this.d,133),139).Zc(e,t))},o.$c=function(e){return u(u(this.d,133),139).$c(e)},o._c=function(e){return u(u(this.d,133),139)._c(e)},o.ad=function(e,t){return new N6(this.a,u(u(this.d,133),139).ad(e,t))},w(Cn,"AbstractMapBasedMultimap/NavigableAsMap",446),b(502,327,Pzn,e7),o.Nc=function(){return this.b.ec().Nc()},w(Cn,"AbstractMapBasedMultimap/SortedKeySet",502),b(401,502,gtn,f4),w(Cn,"AbstractMapBasedMultimap/NavigableKeySet",401),b(551,31,pw,VM),o.Fc=function(e){var t,i;return eo(this),i=this.d.dc(),t=this.d.Fc(e),t&&(++this.f.d,i&&O7(this)),t},o.Gc=function(e){var t,i,r;return e.dc()?!1:(r=(eo(this),this.d.gc()),t=this.d.Gc(e),t&&(i=this.d.gc(),this.f.d+=i-r,r==0&&O7(this)),t)},o.$b=function(){var e;e=(eo(this),this.d.gc()),e!=0&&(this.d.$b(),this.f.d-=e,fM(this))},o.Hc=function(e){return eo(this),this.d.Hc(e)},o.Ic=function(e){return eo(this),this.d.Ic(e)},o.Fb=function(e){return e===this?!0:(eo(this),rt(this.d,e))},o.Hb=function(){return eo(this),mt(this.d)},o.Kc=function(){return eo(this),new qV(this)},o.Mc=function(e){var t;return eo(this),t=this.d.Mc(e),t&&(--this.f.d,fM(this)),t},o.gc=function(){return BMn(this)},o.Nc=function(){return eo(this),this.d.Nc()},o.Ib=function(){return eo(this),Jr(this.d)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection",551);var rs=Nt(le,"List");b(744,551,{20:1,31:1,16:1,15:1},vW),o.jd=function(e){ud(this,e)},o.Nc=function(){return eo(this),this.d.Nc()},o.bd=function(e,t){var i;eo(this),i=this.d.dc(),u(this.d,15).bd(e,t),++this.a.d,i&&O7(this)},o.cd=function(e,t){var i,r,c;return t.dc()?!1:(c=(eo(this),this.d.gc()),i=u(this.d,15).cd(e,t),i&&(r=this.d.gc(),this.a.d+=r-c,c==0&&O7(this)),i)},o.Xb=function(e){return eo(this),u(this.d,15).Xb(e)},o.dd=function(e){return eo(this),u(this.d,15).dd(e)},o.ed=function(){return eo(this),new bTn(this)},o.fd=function(e){return eo(this),new FIn(this,e)},o.gd=function(e){var t;return eo(this),t=u(this.d,15).gd(e),--this.a.d,fM(this),t},o.hd=function(e,t){return eo(this),u(this.d,15).hd(e,t)},o.kd=function(e,t){return eo(this),ADn(this.a,this.e,u(this.d,15).kd(e,t),this.b?this.b:this)},w(Cn,"AbstractMapBasedMultimap/WrappedList",744),b(1126,744,{20:1,31:1,16:1,15:1,59:1},iAn),w(Cn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1126),b(628,1,Si,qV),o.Nb=function(e){_i(this,e)},o.Ob=function(){return I4(this),this.b.Ob()},o.Pb=function(){return I4(this),this.b.Pb()},o.Qb=function(){_Tn(this)},w(Cn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",628),b(745,628,Hh,bTn,FIn),o.Qb=function(){_Tn(this)},o.Rb=function(e){var t;t=BMn(this.a)==0,(I4(this),u(this.b,128)).Rb(e),++this.a.a.d,t&&O7(this.a)},o.Sb=function(){return(I4(this),u(this.b,128)).Sb()},o.Tb=function(){return(I4(this),u(this.b,128)).Tb()},o.Ub=function(){return(I4(this),u(this.b,128)).Ub()},o.Vb=function(){return(I4(this),u(this.b,128)).Vb()},o.Wb=function(e){(I4(this),u(this.b,128)).Wb(e)},w(Cn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",745),b(743,551,Pzn,sV),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSortedSet",743),b(1125,743,gtn,fTn),w(Cn,"AbstractMapBasedMultimap/WrappedNavigableSet",1125),b(1124,551,Lu,CAn),o.Nc=function(){return eo(this),this.d.Nc()},w(Cn,"AbstractMapBasedMultimap/WrappedSet",1124),b(1133,1,{},Xe),o.Kb=function(e){return s4e(u(e,44))},w(Cn,"AbstractMapBasedMultimap/lambda$1$Type",1133),b(1132,1,{},L8n),o.Kb=function(e){return new i0(this.a,e)},w(Cn,"AbstractMapBasedMultimap/lambda$2$Type",1132);var Pd=Nt(le,"Map/Entry");b(358,1,tB),o.Fb=function(e){var t;return D(e,44)?(t=u(e,44),sh(this.ld(),t.ld())&&sh(this.md(),t.md())):!1},o.Hb=function(){var e,t;return e=this.ld(),t=this.md(),(e==null?0:mt(e))^(t==null?0:mt(t))},o.nd=function(e){throw M(new Pe)},o.Ib=function(){return this.ld()+"="+this.md()},w(Cn,Izn,358),b(2086,31,pw),o.$b=function(){this.od().$b()},o.Hc=function(e){var t;return D(e,44)?(t=u(e,44),Ppe(this.od(),t.ld(),t.md())):!1},o.Mc=function(e){var t;return D(e,44)?(t=u(e,44),sDn(this.od(),t.ld(),t.md())):!1},o.gc=function(){return this.od().d},w(Cn,"Multimaps/Entries",2086),b(749,2086,pw,fG),o.Kc=function(){return this.a.kc()},o.od=function(){return this.a},o.Nc=function(){return this.a.lc()},w(Cn,"AbstractMultimap/Entries",749),b(750,749,Lu,oz),o.Nc=function(){return this.a.lc()},o.Fb=function(e){return dnn(this,e)},o.Hb=function(){return vxn(this)},w(Cn,"AbstractMultimap/EntrySet",750),b(751,31,pw,hG),o.$b=function(){this.a.$b()},o.Hc=function(e){return A6e(this.a,e)},o.Kc=function(){return this.a.nc()},o.gc=function(){return this.a.d},o.Nc=function(){return this.a.oc()},w(Cn,"AbstractMultimap/Values",751),b(2087,31,{849:1,20:1,31:1,16:1}),o.Jc=function(e){Se(e),Ag(this).Jc(new Y8n(e))},o.Nc=function(){var e;return e=Ag(this).Nc(),nF(e,new Mf,64|e.yd()&1296,this.a.d)},o.Fc=function(e){return wz(),!0},o.Gc=function(e){return Se(this),Se(e),D(e,552)?Dpe(u(e,849)):!e.dc()&&b$(this,e.Kc())},o.Hc=function(e){var t;return t=u(tw(Dp(this.a),e),16),(t?t.gc():0)>0},o.Fb=function(e){return nMe(this,e)},o.Hb=function(){return mt(Ag(this))},o.dc=function(){return Ag(this).dc()},o.Mc=function(e){return G_n(this,e,1)>0},o.Ib=function(){return Jr(Ag(this))},w(Cn,"AbstractMultiset",2087),b(2089,2068,Lu),o.$b=function(){gT(this.a.a)},o.Hc=function(e){var t,i;return D(e,504)?(i=u(e,425),u(i.a.md(),16).gc()<=0?!1:(t=$On(this.a,i.a.ld()),t==u(i.a.md(),16).gc())):!1},o.Mc=function(e){var t,i,r,c;return D(e,504)&&(i=u(e,425),t=i.a.ld(),r=u(i.a.md(),16).gc(),r!=0)?(c=this.a,UEe(c,t,r)):!1},w(Cn,"Multisets/EntrySet",2089),b(1139,2089,Lu,N8n),o.Kc=function(){return new Ijn(EPn(Dp(this.a.a)).Kc())},o.gc=function(){return Dp(this.a.a).gc()},w(Cn,"AbstractMultiset/EntrySet",1139),b(627,742,md),o.hc=function(){return this.pd()},o.jc=function(){return this.qd()},o.cc=function(e){return this.rd(e)},o.fc=function(e){return this.sd(e)},o.Zb=function(){var e;return e=this.f,e||(this.f=this.ac())},o.qd=function(){return Dn(),Dn(),hP},o.Fb=function(e){return G$(this,e)},o.rd=function(e){return u(ot(this,e),21)},o.sd=function(e){return u(Ok(this,e),21)},o.mc=function(e){return Dn(),new r4(u(e,21))},o.pc=function(e,t){return new CAn(this,e,u(t,21))},w(Cn,"AbstractSetMultimap",627),b(1723,627,md),o.hc=function(){return new Ul(this.b)},o.pd=function(){return new Ul(this.b)},o.jc=function(){return KW(new Ul(this.b))},o.qd=function(){return KW(new Ul(this.b))},o.cc=function(e){return u(u(ot(this,e),21),87)},o.rd=function(e){return u(u(ot(this,e),21),87)},o.fc=function(e){return u(u(Ok(this,e),21),87)},o.sd=function(e){return u(u(Ok(this,e),21),87)},o.mc=function(e){return D(e,277)?KW(u(e,277)):(Dn(),new XX(u(e,87)))},o.Zb=function(){var e;return e=this.f,e||(this.f=D(this.c,139)?new N6(this,u(this.c,139)):D(this.c,133)?new A7(this,u(this.c,133)):new h4(this,this.c))},o.pc=function(e,t){return D(t,277)?new fTn(this,e,u(t,277)):new sV(this,e,u(t,87))},w(Cn,"AbstractSortedSetMultimap",1723),b(1724,1723,md),o.Zb=function(){var e;return e=this.f,u(u(e||(this.f=D(this.c,139)?new N6(this,u(this.c,139)):D(this.c,133)?new A7(this,u(this.c,133)):new h4(this,this.c)),133),139)},o.ec=function(){var e;return e=this.i,u(u(e||(this.i=D(this.c,139)?new f4(this,u(this.c,139)):D(this.c,133)?new e7(this,u(this.c,133)):new Mg(this,this.c)),87),277)},o.bc=function(){return D(this.c,139)?new f4(this,u(this.c,139)):D(this.c,133)?new e7(this,u(this.c,133)):new Mg(this,this.c)},w(Cn,"AbstractSortedKeySortedSetMultimap",1724),b(2109,1,{2046:1}),o.Fb=function(e){return Mke(this,e)},o.Hb=function(){var e;return VQ((e=this.g,e||(this.g=new zO(this))))},o.Ib=function(){var e;return DKn((e=this.f,e||(this.f=new qX(this))))},w(Cn,"AbstractTable",2109),b(679,Kf,Lu,zO),o.$b=function(){Hjn()},o.Hc=function(e){var t,i;return D(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&yY(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.Kc=function(){return Pge(this.a)},o.Mc=function(e){var t,i;return D(e,479)?(t=u(e,697),i=u(tw(XPn(this.a),_1(t.c.e,t.b)),85),!!i&&u5e(i.vc(),new i0(_1(t.c.c,t.a),Rp(t.c,t.b,t.a)))):!1},o.gc=function(){return JSn(this.a)},o.Nc=function(){return $pe(this.a)},w(Cn,"AbstractTable/CellSet",679),b(2025,31,pw,x8n),o.$b=function(){Hjn()},o.Hc=function(e){return pye(this.a,e)},o.Kc=function(){return Ige(this.a)},o.gc=function(){return JSn(this.a)},o.Nc=function(){return oDn(this.a)},w(Cn,"AbstractTable/Values",2025),b(1697,1696,md),w(Cn,"ArrayListMultimapGwtSerializationDependencies",1697),b(520,1697,md,CD,sJ),o.hc=function(){return new Gc(this.a)},o.a=0,w(Cn,"ArrayListMultimap",520),b(678,2109,{678:1,2046:1,3:1},rHn),w(Cn,"ArrayTable",678),b(2021,399,xm,HTn),o.Xb=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1",2021),b(2022,1,{},I8n),o.td=function(e){return new ZQ(this.a,e)},w(Cn,"ArrayTable/1methodref$getCell$Type",2022),b(2110,1,{697:1}),o.Fb=function(e){var t;return e===this?!0:D(e,479)?(t=u(e,697),sh(_1(this.c.e,this.b),_1(t.c.e,t.b))&&sh(_1(this.c.c,this.a),_1(t.c.c,t.a))&&sh(Rp(this.c,this.b,this.a),Rp(t.c,t.b,t.a))):!1},o.Hb=function(){return Ik(A(T(ki,1),Bn,1,5,[_1(this.c.e,this.b),_1(this.c.c,this.a),Rp(this.c,this.b,this.a)]))},o.Ib=function(){return"("+_1(this.c.e,this.b)+","+_1(this.c.c,this.a)+")="+Rp(this.c,this.b,this.a)},w(Cn,"Tables/AbstractCell",2110),b(479,2110,{479:1,697:1},ZQ),o.a=0,o.b=0,o.d=0,w(Cn,"ArrayTable/2",479),b(2024,1,{},O8n),o.td=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/2methodref$getValue$Type",2024),b(2023,399,xm,qTn),o.Xb=function(e){return DNn(this.a,e)},w(Cn,"ArrayTable/3",2023),b(2077,2065,X0),o.$b=function(){iM(this.kc())},o.vc=function(){return new G8n(this)},o.lc=function(){return new AIn(this.kc(),this.gc())},w(Cn,"Maps/IteratorBasedAbstractMap",2077),b(842,2077,X0),o.$b=function(){throw M(new Pe)},o._b=function(e){return oEn(this.c,e)},o.kc=function(){return new UTn(this,this.c.b.c.gc())},o.lc=function(){return XL(this.c.b.c.gc(),16,new D8n(this))},o.xc=function(e){var t;return t=u($6(this.c,e),17),t?this.vd(t.a):null},o.dc=function(){return this.c.b.c.dc()},o.ec=function(){return eN(this.c)},o.zc=function(e,t){var i;if(i=u($6(this.c,e),17),!i)throw M(new Gn(this.ud()+" "+e+" not in "+eN(this.c)));return this.wd(i.a,t)},o.Bc=function(e){throw M(new Pe)},o.gc=function(){return this.c.b.c.gc()},w(Cn,"ArrayTable/ArrayMap",842),b(2020,1,{},D8n),o.td=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",2020),b(2018,358,tB,LEn),o.ld=function(){return q1e(this.a,this.b)},o.md=function(){return this.a.vd(this.b)},o.nd=function(e){return this.a.wd(this.b,e)},o.b=0,w(Cn,"ArrayTable/ArrayMap/1",2018),b(2019,399,xm,UTn),o.Xb=function(e){return WPn(this.a,e)},w(Cn,"ArrayTable/ArrayMap/2",2019),b(2017,842,X0,xPn),o.ud=function(){return"Column"},o.vd=function(e){return Rp(this.b,this.a,e)},o.wd=function(e,t){return cFn(this.b,this.a,e,t)},o.a=0,w(Cn,"ArrayTable/Row",2017),b(843,842,X0,qX),o.vd=function(e){return new xPn(this.a,e)},o.zc=function(e,t){return u(t,85),hhe()},o.wd=function(e,t){return u(t,85),lhe()},o.ud=function(){return"Row"},w(Cn,"ArrayTable/RowMap",843),b(1157,1,Po,NEn),o.Ad=function(e){return(this.a.yd()&-262&e)!=0},o.yd=function(){return this.a.yd()&-262},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Nb(new xEn(e,this.b))},o.Bd=function(e){return this.a.Bd(new $En(e,this.b))},w(Cn,"CollectSpliterators/1",1157),b(1158,1,re,$En),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$0$Type",1158),b(1159,1,re,xEn),o.Cd=function(e){this.a.Cd(this.b.Kb(e))},w(Cn,"CollectSpliterators/1/lambda$1$Type",1159),b(1154,1,Po,cSn),o.Ad=function(e){return((16464|this.b)&e)!=0},o.yd=function(){return 16464|this.b},o.zd=function(){return this.a.zd()},o.Nb=function(e){this.a.Qe(new BEn(e,this.c))},o.Bd=function(e){return this.a.Re(new FEn(e,this.c))},o.b=0,w(Cn,"CollectSpliterators/1WithCharacteristics",1154),b(1155,1,jy,FEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1155),b(1156,1,jy,BEn),o.Dd=function(e){this.a.Cd(this.b.td(e))},w(Cn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1156),b(1150,1,Po),o.Ad=function(e){return(this.a&e)!=0},o.yd=function(){return this.a},o.zd=function(){return this.e&&(this.b=OX(this.b,this.e.zd())),OX(this.b,0)},o.Nb=function(e){this.e&&(this.e.Nb(e),this.e=null),this.c.Nb(new REn(this,e)),this.b=0},o.Bd=function(e){for(;;){if(this.e&&this.e.Bd(e))return C6(this.b,Ey)&&(this.b=bs(this.b,1)),!0;if(this.e=null,!this.c.Bd(new F8n(this)))return!1}},o.a=0,o.b=0,w(Cn,"CollectSpliterators/FlatMapSpliterator",1150),b(1152,1,re,F8n),o.Cd=function(e){_ae(this.a,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$0$Type",1152),b(1153,1,re,REn),o.Cd=function(e){age(this.a,this.b,e)},w(Cn,"CollectSpliterators/FlatMapSpliterator/lambda$1$Type",1153),b(1151,1150,Po,MDn),w(Cn,"CollectSpliterators/FlatMapSpliteratorOfObject",1151),b(253,1,iB),o.Fd=function(e){return this.Ed(u(e,253))},o.Ed=function(e){var t;return e==(bD(),HK)?1:e==(dD(),_K)?-1:(t=(YC(),mk(this.a,e.a)),t!=0?t:D(this,526)==D(e,526)?0:D(this,526)?1:-1)},o.Id=function(){return this.a},o.Fb=function(e){return vZ(this,e)},w(Cn,"Cut",253),b(1823,253,iB,Ejn),o.Ed=function(e){return e==this?0:1},o.Gd=function(e){throw M(new HG)},o.Hd=function(e){e.a+="+∞)"},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!1},o.Ib=function(){return"+∞"};var _K;w(Cn,"Cut/AboveAll",1823),b(526,253,{253:1,526:1,3:1,34:1},JTn),o.Gd=function(e){Dc((e.a+="(",e),this.a)},o.Hd=function(e){z1(Dc(e,this.a),93)},o.Hb=function(){return~mt(this.a)},o.Jd=function(e){return YC(),mk(this.a,e)<0},o.Ib=function(){return"/"+this.a+"\\"},w(Cn,"Cut/AboveValue",526),b(1822,253,iB,jjn),o.Ed=function(e){return e==this?0:-1},o.Gd=function(e){e.a+="(-∞"},o.Hd=function(e){throw M(new HG)},o.Id=function(){throw M(new Or(Dzn))},o.Hb=function(){return fl(),rZ(this)},o.Jd=function(e){return!0},o.Ib=function(){return"-∞"};var HK;w(Cn,"Cut/BelowAll",1822),b(1824,253,iB,QTn),o.Gd=function(e){Dc((e.a+="[",e),this.a)},o.Hd=function(e){z1(Dc(e,this.a),41)},o.Hb=function(){return mt(this.a)},o.Jd=function(e){return YC(),mk(this.a,e)<=0},o.Ib=function(){return"\\"+this.a+"/"},w(Cn,"Cut/BelowValue",1824),b(547,1,qh),o.Jc=function(e){qi(this,e)},o.Ib=function(){return A5e(u(TM(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},w(Cn,"FluentIterable",547),b(442,547,qh,A6),o.Kc=function(){return new ie(ce(this.a.Kc(),new En))},w(Cn,"FluentIterable/2",442),b(1059,547,qh,cTn),o.Kc=function(){return $h(this)},w(Cn,"FluentIterable/3",1059),b(724,399,xm,UX),o.Xb=function(e){return this.a[e].Kc()},w(Cn,"FluentIterable/3/1",724),b(2070,1,{}),o.Ib=function(){return Jr(this.Kd().b)},w(Cn,"ForwardingObject",2070),b(2071,2070,Lzn),o.Kd=function(){return this.Ld()},o.Jc=function(e){qi(this,e)},o.Lc=function(){return this.Oc()},o.Nc=function(){return new In(this,0)},o.Oc=function(){return new Tn(null,this.Nc())},o.Fc=function(e){return this.Ld(),fEn()},o.Gc=function(e){return this.Ld(),hEn()},o.$b=function(){this.Ld(),lEn()},o.Hc=function(e){return this.Ld().Hc(e)},o.Ic=function(e){return this.Ld().Ic(e)},o.dc=function(){return this.Ld().b.dc()},o.Kc=function(){return this.Ld().Kc()},o.Mc=function(e){return this.Ld(),aEn()},o.gc=function(){return this.Ld().b.gc()},o.Pc=function(){return this.Ld().Pc()},o.Qc=function(e){return this.Ld().Qc(e)},w(Cn,"ForwardingCollection",2071),b(2078,31,ptn),o.Kc=function(){return this.Od()},o.Fc=function(e){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.Md=function(){var e;return e=this.c,e||(this.c=this.Nd())},o.$b=function(){throw M(new Pe)},o.Hc=function(e){return e!=null&&iw(this,e,!1)},o.Nd=function(){switch(this.gc()){case 0:return m0(),m0(),qK;case 1:return m0(),new VL(Se(this.Od().Pb()));default:return new EW(this,this.Pc())}},o.Mc=function(e){throw M(new Pe)},w(Cn,"ImmutableCollection",2078),b(727,2078,ptn,KG),o.Kc=function(){return Kp(this.a.Kc())},o.Hc=function(e){return e!=null&&this.a.Hc(e)},o.Ic=function(e){return this.a.Ic(e)},o.dc=function(){return this.a.dc()},o.Od=function(){return Kp(this.a.Kc())},o.gc=function(){return this.a.gc()},o.Pc=function(){return this.a.Pc()},o.Qc=function(e){return this.a.Qc(e)},o.Ib=function(){return Jr(this.a)},w(Cn,"ForwardingImmutableCollection",727),b(307,2078,Fm),o.Kc=function(){return this.Od()},o.ed=function(){return this.Pd(0)},o.fd=function(e){return this.Pd(e)},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.kd=function(e,t){return this.Qd(e,t)},o.bd=function(e,t){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Md=function(){return this},o.Fb=function(e){return HCe(this,e)},o.Hb=function(){return xve(this)},o.dd=function(e){return e==null?-1:c7e(this,e)},o.Od=function(){return this.Pd(0)},o.Pd=function(e){return TL(this,e)},o.gd=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},o.Qd=function(e,t){var i;return FT((i=new WEn(this),new Jl(i,e,t)))};var qK;w(Cn,"ImmutableList",307),b(2105,307,Fm),o.Kc=function(){return Kp(this.Rd().Kc())},o.kd=function(e,t){return FT(this.Rd().kd(e,t))},o.Hc=function(e){return e!=null&&this.Rd().Hc(e)},o.Ic=function(e){return this.Rd().Ic(e)},o.Fb=function(e){return rt(this.Rd(),e)},o.Xb=function(e){return _1(this,e)},o.Hb=function(){return mt(this.Rd())},o.dd=function(e){return this.Rd().dd(e)},o.dc=function(){return this.Rd().dc()},o.Od=function(){return Kp(this.Rd().Kc())},o.gc=function(){return this.Rd().gc()},o.Qd=function(e,t){return FT(this.Rd().kd(e,t))},o.Pc=function(){return this.Rd().Qc(K(ki,Bn,1,this.Rd().gc(),5,1))},o.Qc=function(e){return this.Rd().Qc(e)},o.Ib=function(){return Jr(this.Rd())},w(Cn,"ForwardingImmutableList",2105),b(729,1,Bm),o.vc=function(){return Ja(this)},o.wc=function(e){f5(this,e)},o.ec=function(){return eN(this)},o.yc=function(e,t,i){return hx(this,e,t,i)},o.Cc=function(){return this.Vd()},o.$b=function(){throw M(new Pe)},o._b=function(e){return this.xc(e)!=null},o.uc=function(e){return this.Vd().Hc(e)},o.Td=function(){return new Oyn(this)},o.Ud=function(){return new Dyn(this)},o.Fb=function(e){return S6e(this,e)},o.Hb=function(){return Ja(this).Hb()},o.dc=function(){return this.gc()==0},o.zc=function(e,t){return fhe()},o.Bc=function(e){throw M(new Pe)},o.Ib=function(){return wje(this)},o.Vd=function(){return this.e?this.e:this.e=this.Ud()},o.c=null,o.d=null,o.e=null;var rQn;w(Cn,"ImmutableMap",729),b(730,729,Bm),o._b=function(e){return oEn(this,e)},o.uc=function(e){return eCn(this.b,e)},o.Sd=function(){return eBn(new $8n(this))},o.Td=function(){return eBn(pIn(this.b))},o.Ud=function(){return oh(),new KG(gIn(this.b))},o.Fb=function(e){return tCn(this.b,e)},o.xc=function(e){return $6(this,e)},o.Hb=function(){return mt(this.b.c)},o.dc=function(){return this.b.c.dc()},o.gc=function(){return this.b.c.gc()},o.Ib=function(){return Jr(this.b.c)},w(Cn,"ForwardingImmutableMap",730),b(2072,2071,rB),o.Kd=function(){return this.Wd()},o.Ld=function(){return this.Wd()},o.Nc=function(){return new In(this,1)},o.Fb=function(e){return e===this||this.Wd().Fb(e)},o.Hb=function(){return this.Wd().Hb()},w(Cn,"ForwardingSet",2072),b(1085,2072,rB,$8n),o.Kd=function(){return S4(this.a.b)},o.Ld=function(){return S4(this.a.b)},o.Hc=function(e){if(D(e,44)&&u(e,44).ld()==null)return!1;try{return nCn(S4(this.a.b),e)}catch(t){if(t=It(t),D(t,212))return!1;throw M(t)}},o.Wd=function(){return S4(this.a.b)},o.Qc=function(e){var t;return t=eOn(S4(this.a.b),e),S4(this.a.b).b.gc()=0?"+":"")+(i/60|0),t=OC(y.Math.abs(i)%60),(UKn(),EQn)[this.q.getDay()]+" "+CQn[this.q.getMonth()]+" "+OC(this.q.getDate())+" "+OC(this.q.getHours())+":"+OC(this.q.getMinutes())+":"+OC(this.q.getSeconds())+" GMT"+e+t+" "+this.q.getFullYear()};var oP=w(le,"Date",206);b(2015,206,Hzn,dKn),o.a=!1,o.b=0,o.c=0,o.d=0,o.e=0,o.f=0,o.g=!1,o.i=0,o.j=0,o.k=0,o.n=0,o.o=0,o.p=0,w("com.google.gwt.i18n.shared.impl","DateRecord",2015),b(2064,1,{}),o.pe=function(){return null},o.qe=function(){return null},o.re=function(){return null},o.se=function(){return null},o.te=function(){return null},w(u3,"JSONValue",2064),b(221,2064,{221:1},_a,aG),o.Fb=function(e){return D(e,221)?hJ(this.a,u(e,221).a):!1},o.oe=function(){return Nfe},o.Hb=function(){return ZW(this.a)},o.pe=function(){return this},o.Ib=function(){var e,t,i;for(i=new mo("["),t=0,e=this.a.length;t0&&(i.a+=","),Dc(i,Jb(this,t));return i.a+="]",i.a},w(u3,"JSONArray",221),b(493,2064,{493:1},dG),o.oe=function(){return $fe},o.qe=function(){return this},o.Ib=function(){return _n(),""+this.a},o.a=!1;var lQn,aQn;w(u3,"JSONBoolean",493),b(997,63,Pl,Ojn),w(u3,"JSONException",997),b(1036,2064,{},M0n),o.oe=function(){return xfe},o.Ib=function(){return gu};var dQn;w(u3,"JSONNull",1036),b(263,2064,{263:1},AE),o.Fb=function(e){return D(e,263)?this.a==u(e,263).a:!1},o.oe=function(){return Dfe},o.Hb=function(){return pp(this.a)},o.re=function(){return this},o.Ib=function(){return this.a+""},o.a=0,w(u3,"JSONNumber",263),b(190,2064,{190:1},sp,U9),o.Fb=function(e){return D(e,190)?hJ(this.a,u(e,190).a):!1},o.oe=function(){return Lfe},o.Hb=function(){return ZW(this.a)},o.se=function(){return this},o.Ib=function(){var e,t,i,r,c,s,f;for(f=new mo("{"),e=!0,s=S$(this,K(fn,J,2,0,6,1)),i=s,r=0,c=i.length;r=0?":"+this.c:"")+")"},o.c=0;var jun=w(ac,"StackTraceElement",319);iQn={3:1,484:1,34:1,2:1};var fn=w(ac,mtn,2);b(111,427,{484:1},Hl,i6,ls),w(ac,"StringBuffer",111),b(104,427,{484:1},x1,fg,mo),w(ac,"StringBuilder",104),b(702,77,AB,gz),w(ac,"StringIndexOutOfBoundsException",702),b(2145,1,{});var pQn;b(48,63,{3:1,103:1,63:1,82:1,48:1},Pe,Kl),w(ac,"UnsupportedOperationException",48),b(247,242,{3:1,34:1,242:1,247:1},Nk,Az),o.Fd=function(e){return FUn(this,u(e,247))},o.ue=function(){return sw(lGn(this))},o.Fb=function(e){var t;return this===e?!0:D(e,247)?(t=u(e,247),this.e==t.e&&FUn(this,t)==0):!1},o.Hb=function(){var e;return this.b!=0?this.b:this.a<54?(e=vc(this.f),this.b=Ae(vi(e,-1)),this.b=33*this.b+Ae(vi(w0(e,32),-1)),this.b=17*this.b+wi(this.e),this.b):(this.b=17*JFn(this.c)+wi(this.e),this.b)},o.Ib=function(){return lGn(this)},o.a=0,o.b=0,o.d=0,o.e=0,o.f=0;var mQn,Id,Eun,Cun,Mun,Tun,Aun,Sun,QK=w("java.math","BigDecimal",247);b(92,242,{3:1,34:1,242:1,92:1},gl,HOn,Ya,QBn,H1),o.Fd=function(e){return XBn(this,u(e,92))},o.ue=function(){return sw(ZF(this,0))},o.Fb=function(e){return _Y(this,e)},o.Hb=function(){return JFn(this)},o.Ib=function(){return ZF(this,0)},o.b=-2,o.c=0,o.d=0,o.e=0;var vQn,sP,kQn,YK,fP,S8,l2=w("java.math","BigInteger",92),yQn,jQn,m3,P8;b(498,2065,X0),o.$b=function(){Hu(this)},o._b=function(e){return Zc(this,e)},o.uc=function(e){return OFn(this,e,this.i)||OFn(this,e,this.f)},o.vc=function(){return new Ua(this)},o.xc=function(e){return ee(this,e)},o.zc=function(e,t){return Ve(this,e,t)},o.Bc=function(e){return Bp(this,e)},o.gc=function(){return c6(this)},o.g=0,w(le,"AbstractHashMap",498),b(267,Kf,Lu,Ua),o.$b=function(){this.a.$b()},o.Hc=function(e){return mDn(this,e)},o.Kc=function(){return new sd(this.a)},o.Mc=function(e){var t;return mDn(this,e)?(t=u(e,44).ld(),this.a.Bc(t),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractHashMap/EntrySet",267),b(268,1,Si,sd),o.Nb=function(e){_i(this,e)},o.Pb=function(){return L0(this)},o.Ob=function(){return this.b},o.Qb=function(){XNn(this)},o.b=!1,o.d=0,w(le,"AbstractHashMap/EntrySetIterator",268),b(426,1,Si,zv),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this)},o.Pb=function(){return VW(this)},o.Qb=function(){bo(this)},o.b=0,o.c=-1,w(le,"AbstractList/IteratorImpl",426),b(98,426,Hh,xi),o.Qb=function(){bo(this)},o.Rb=function(e){Rb(this,e)},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Ub=function(){return oe(this.b>0),this.a.Xb(this.c=--this.b)},o.Vb=function(){return this.b-1},o.Wb=function(e){Fb(this.c!=-1),this.a.hd(this.c,e)},w(le,"AbstractList/ListIteratorImpl",98),b(244,56,Rm,Jl),o.bd=function(e,t){zb(e,this.b),this.c.bd(this.a+e,t),++this.b},o.Xb=function(e){return Ln(e,this.b),this.c.Xb(this.a+e)},o.gd=function(e){var t;return Ln(e,this.b),t=this.c.gd(this.a+e),--this.b,t},o.hd=function(e,t){return Ln(e,this.b),this.c.hd(this.a+e,t)},o.gc=function(){return this.b},o.a=0,o.b=0,w(le,"AbstractList/SubList",244),b(266,Kf,Lu,qa),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new PE(e)},o.Mc=function(e){return this.a._b(e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/1",266),b(541,1,Si,PE),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.ld()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/1/1",541),b(231,31,pw,ol),o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a.uc(e)},o.Kc=function(){var e;return e=this.a.vc().Kc(),new Sb(e)},o.gc=function(){return this.a.gc()},w(le,"AbstractMap/2",231),b(301,1,Si,Sb),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a.Ob()},o.Pb=function(){var e;return e=u(this.a.Pb(),44),e.md()},o.Qb=function(){this.a.Qb()},w(le,"AbstractMap/2/1",301),b(494,1,{494:1,44:1}),o.Fb=function(e){var t;return D(e,44)?(t=u(e,44),mc(this.d,t.ld())&&mc(this.e,t.md())):!1},o.ld=function(){return this.d},o.md=function(){return this.e},o.Hb=function(){return yg(this.d)^yg(this.e)},o.nd=function(e){return wV(this,e)},o.Ib=function(){return this.d+"="+this.e},w(le,"AbstractMap/AbstractEntry",494),b(397,494,{494:1,397:1,44:1},oC),w(le,"AbstractMap/SimpleEntry",397),b(2082,1,IB),o.Fb=function(e){var t;return D(e,44)?(t=u(e,44),mc(this.ld(),t.ld())&&mc(this.md(),t.md())):!1},o.Hb=function(){return yg(this.ld())^yg(this.md())},o.Ib=function(){return this.ld()+"="+this.md()},w(le,Izn,2082),b(2090,2065,wtn),o.Xc=function(e){return MD(this.Ee(e))},o.tc=function(e){return CLn(this,e)},o._b=function(e){return gV(this,e)},o.vc=function(){return new ZO(this)},o.Tc=function(){return BPn(this.Ge())},o.Yc=function(e){return MD(this.He(e))},o.xc=function(e){var t;return t=e,Kr(this.Fe(t))},o.$c=function(e){return MD(this.Ie(e))},o.ec=function(){return new o9n(this)},o.Vc=function(){return BPn(this.Je())},o._c=function(e){return MD(this.Ke(e))},w(le,"AbstractNavigableMap",2090),b(629,Kf,Lu,ZO),o.Hc=function(e){return D(e,44)&&CLn(this.b,u(e,44))},o.Kc=function(){return this.b.De()},o.Mc=function(e){var t;return D(e,44)?(t=u(e,44),this.b.Le(t)):!1},o.gc=function(){return this.b.gc()},w(le,"AbstractNavigableMap/EntrySet",629),b(1146,Kf,gtn,o9n),o.Nc=function(){return new cC(this)},o.$b=function(){this.a.$b()},o.Hc=function(e){return gV(this.a,e)},o.Kc=function(){var e;return e=this.a.vc().b.De(),new s9n(e)},o.Mc=function(e){return gV(this.a,e)?(this.a.Bc(e),!0):!1},o.gc=function(){return this.a.gc()},w(le,"AbstractNavigableMap/NavigableKeySet",1146),b(1147,1,Si,s9n),o.Nb=function(e){_i(this,e)},o.Ob=function(){return DD(this.a.a)},o.Pb=function(){var e;return e=oAn(this.a),e.ld()},o.Qb=function(){dSn(this.a)},w(le,"AbstractNavigableMap/NavigableKeySet/1",1147),b(2103,31,pw),o.Fc=function(e){return Mp(ym(this,e),_m),!0},o.Gc=function(e){return Jn(e),x7(e!=this,"Can't add a queue to itself"),Bi(this,e)},o.$b=function(){for(;w$(this)!=null;);},w(le,"AbstractQueue",2103),b(310,31,{4:1,20:1,31:1,16:1},Cg,dDn),o.Fc=function(e){return kJ(this,e),!0},o.$b=function(){TJ(this)},o.Hc=function(e){return Zxn(new V6(this),e)},o.dc=function(){return t6(this)},o.Kc=function(){return new V6(this)},o.Mc=function(e){return p2e(new V6(this),e)},o.gc=function(){return this.c-this.b&this.a.length-1},o.Nc=function(){return new In(this,272)},o.Qc=function(e){var t;return t=this.c-this.b&this.a.length-1,e.lengtht&&$t(e,t,null),e},o.b=0,o.c=0,w(le,"ArrayDeque",310),b(459,1,Si,V6),o.Nb=function(e){_i(this,e)},o.Ob=function(){return this.a!=this.b},o.Pb=function(){return xT(this)},o.Qb=function(){W$n(this)},o.a=0,o.b=0,o.c=-1,w(le,"ArrayDeque/IteratorImpl",459),b(13,56,Gzn,Z,Gc,_u),o.bd=function(e,t){b0(this,e,t)},o.Fc=function(e){return nn(this,e)},o.cd=function(e,t){return dY(this,e,t)},o.Gc=function(e){return hi(this,e)},o.$b=function(){Pb(this.c,0)},o.Hc=function(e){return qr(this,e,0)!=-1},o.Jc=function(e){nu(this,e)},o.Xb=function(e){return sn(this,e)},o.dd=function(e){return qr(this,e,0)},o.dc=function(){return this.c.length==0},o.Kc=function(){return new C(this)},o.gd=function(e){return Yl(this,e)},o.Mc=function(e){return du(this,e)},o.ce=function(e,t){xOn(this,e,t)},o.hd=function(e,t){return Go(this,e,t)},o.gc=function(){return this.c.length},o.jd=function(e){Yt(this,e)},o.Pc=function(){return ZC(this.c)},o.Qc=function(e){return Ff(this,e)};var uNe=w(le,"ArrayList",13);b(7,1,Si,C),o.Nb=function(e){_i(this,e)},o.Ob=function(){return tc(this)},o.Pb=function(){return E(this)},o.Qb=function(){q6(this)},o.a=0,o.b=-1,w(le,"ArrayList/1",7),b(2112,y.Function,{},mE),o.Me=function(e,t){return bt(e,t)},b(151,56,zzn,Ku),o.Hc=function(e){return J$n(this,e)!=-1},o.Jc=function(e){var t,i,r,c;for(Jn(e),i=this.a,r=0,c=i.length;r0)throw M(new Gn(Ttn+e+" greater than "+this.e));return this.f.Te()?cOn(this.c,this.b,this.a,e,t):FOn(this.c,e,t)},o.zc=function(e,t){if(!qx(this.c,this.f,e,this.b,this.a,this.e,this.d))throw M(new Gn(e+" outside the range "+this.b+" to "+this.e));return gFn(this.c,e,t)},o.Bc=function(e){var t;return t=e,qx(this.c,this.f,t,this.b,this.a,this.e,this.d)?uOn(this.c,t):null},o.Le=function(e){return vM(this,e.ld())&&GJ(this.c,e)},o.gc=function(){var e,t,i;if(this.f.Te()?this.a?t=bm(this.c,this.b,!0):t=bm(this.c,this.b,!1):t=eQ(this.c),!(t&&vM(this,t.d)&&t))return 0;for(e=0,i=new P$(this.c,this.f,this.b,this.a,this.e,this.d);DD(i.a);i.b=u(VW(i.a),44))++e;return e},o.ad=function(e,t){if(this.f.Te()&&this.c.a.Ne(e,this.b)<0)throw M(new Gn(Ttn+e+Wzn+this.b));return this.f.Ue()?cOn(this.c,e,t,this.e,this.d):BOn(this.c,e,t)},o.a=!1,o.d=!1,w(le,"TreeMap/SubMap",631),b(304,22,NB,uC),o.Te=function(){return!1},o.Ue=function(){return!1};var e_,t_,i_,r_,lP=we(le,"TreeMap/SubMapType",304,ke,Upe,nde);b(1143,304,NB,lTn),o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/1",1143,lP,null,null),b(1144,304,NB,kTn),o.Te=function(){return!0},o.Ue=function(){return!0},we(le,"TreeMap/SubMapType/2",1144,lP,null,null),b(1145,304,NB,hTn),o.Te=function(){return!0},we(le,"TreeMap/SubMapType/3",1145,lP,null,null);var IQn;b(157,Kf,{3:1,20:1,31:1,16:1,277:1,21:1,87:1,157:1},GG,Ul,Y3),o.Nc=function(){return new cC(this)},o.Fc=function(e){return R7(this,e)},o.$b=function(){this.a.$b()},o.Hc=function(e){return this.a._b(e)},o.Kc=function(){return this.a.ec().Kc()},o.Mc=function(e){return EL(this,e)},o.gc=function(){return this.a.gc()};var aNe=w(le,"TreeSet",157);b(1082,1,{},a9n),o.Ve=function(e,t){return pae(this.a,e,t)},w($B,"BinaryOperator/lambda$0$Type",1082),b(1083,1,{},d9n),o.Ve=function(e,t){return mae(this.a,e,t)},w($B,"BinaryOperator/lambda$1$Type",1083),b(952,1,{},B0n),o.Kb=function(e){return e},w($B,"Function/lambda$0$Type",952),b(395,1,De,Z3),o.Mb=function(e){return!this.a.Mb(e)},w($B,"Predicate/lambda$2$Type",395),b(581,1,{581:1});var OQn=w(Y5,"Handler",581);b(2107,1,ky),o.xe=function(){return"DUMMY"},o.Ib=function(){return this.xe()};var $un;w(Y5,"Level",2107),b(1706,2107,ky,R0n),o.xe=function(){return"INFO"},w(Y5,"Level/LevelInfo",1706),b(1843,1,{},Ryn);var c_;w(Y5,"LogManager",1843),b(1896,1,ky,aSn),o.b=null,w(Y5,"LogRecord",1896),b(525,1,{525:1},VN),o.e=!1;var DQn=!1,LQn=!1,Uf=!1,NQn=!1,$Qn=!1;w(Y5,"Logger",525),b(835,581,{581:1},BU),w(Y5,"SimpleConsoleLogHandler",835),b(108,22,{3:1,34:1,22:1,108:1},$D);var xun,Yr,Aw,xr=we(ai,"Collector/Characteristics",108,ke,O2e,ede),xQn;b(758,1,{},AW),w(ai,"CollectorImpl",758),b(1074,1,{},K0n),o.Ve=function(e,t){return l5e(u(e,213),u(t,213))},w(ai,"Collectors/10methodref$merge$Type",1074),b(1075,1,{},_0n),o.Kb=function(e){return bDn(u(e,213))},w(ai,"Collectors/11methodref$toString$Type",1075),b(1076,1,{},b9n),o.Kb=function(e){return _n(),!!yX(e)},w(ai,"Collectors/12methodref$test$Type",1076),b(144,1,{},yu),o.Yd=function(e,t){u(e,16).Fc(t)},w(ai,"Collectors/20methodref$add$Type",144),b(146,1,{},ju),o.Xe=function(){return new Z},w(ai,"Collectors/21methodref$ctor$Type",146),b(359,1,{},Y2),o.Xe=function(){return new ni},w(ai,"Collectors/23methodref$ctor$Type",359),b(360,1,{},Z2),o.Yd=function(e,t){fi(u(e,49),t)},w(ai,"Collectors/24methodref$add$Type",360),b(1069,1,{},H0n),o.Ve=function(e,t){return cCn(u(e,15),u(t,16))},w(ai,"Collectors/4methodref$addAll$Type",1069),b(1073,1,{},q0n),o.Yd=function(e,t){pl(u(e,213),u(t,484))},w(ai,"Collectors/9methodref$add$Type",1073),b(1072,1,{},PSn),o.Xe=function(){return new fd(this.a,this.b,this.c)},w(ai,"Collectors/lambda$15$Type",1072),b(1077,1,{},U0n),o.Xe=function(){var e;return e=new Ql,s1(e,(_n(),!1),new Z),s1(e,!0,new Z),e},w(ai,"Collectors/lambda$22$Type",1077),b(1078,1,{},w9n),o.Xe=function(){return A(T(ki,1),Bn,1,5,[this.a])},w(ai,"Collectors/lambda$25$Type",1078),b(1079,1,{},g9n),o.Yd=function(e,t){Fbe(this.a,cd(e))},w(ai,"Collectors/lambda$26$Type",1079),b(1080,1,{},p9n),o.Ve=function(e,t){return lwe(this.a,cd(e),cd(t))},w(ai,"Collectors/lambda$27$Type",1080),b(1081,1,{},G0n),o.Kb=function(e){return cd(e)[0]},w(ai,"Collectors/lambda$28$Type",1081),b(728,1,{},RU),o.Ve=function(e,t){return oW(e,t)},w(ai,"Collectors/lambda$4$Type",728),b(145,1,{},Eu),o.Ve=function(e,t){return zhe(u(e,16),u(t,16))},w(ai,"Collectors/lambda$42$Type",145),b(361,1,{},np),o.Ve=function(e,t){return Xhe(u(e,49),u(t,49))},w(ai,"Collectors/lambda$50$Type",361),b(362,1,{},ep),o.Kb=function(e){return u(e,49)},w(ai,"Collectors/lambda$51$Type",362),b(1068,1,{},m9n),o.Yd=function(e,t){p6e(this.a,u(e,85),t)},w(ai,"Collectors/lambda$7$Type",1068),b(1070,1,{},z0n),o.Ve=function(e,t){return Xve(u(e,85),u(t,85),new H0n)},w(ai,"Collectors/lambda$8$Type",1070),b(1071,1,{},v9n),o.Kb=function(e){return U5e(this.a,u(e,85))},w(ai,"Collectors/lambda$9$Type",1071),b(550,1,{}),o.$e=function(){X6(this)},o.d=!1,w(ai,"TerminatableStream",550),b(827,550,Atn,uV),o.$e=function(){X6(this)},w(ai,"DoubleStreamImpl",827),b(1847,736,Po,ISn),o.Re=function(e){return X9e(this,u(e,189))},o.a=null,w(ai,"DoubleStreamImpl/2",1847),b(1848,1,Py,k9n),o.Pe=function(e){Kle(this.a,e)},w(ai,"DoubleStreamImpl/2/lambda$0$Type",1848),b(1845,1,Py,y9n),o.Pe=function(e){Rle(this.a,e)},w(ai,"DoubleStreamImpl/lambda$0$Type",1845),b(1846,1,Py,j9n),o.Pe=function(e){IBn(this.a,e)},w(ai,"DoubleStreamImpl/lambda$2$Type",1846),b(1397,735,Po,vLn),o.Re=function(e){return Lpe(this,u(e,202))},o.a=0,o.b=0,o.c=0,w(ai,"IntStream/5",1397),b(806,550,Atn,oV),o.$e=function(){X6(this)},o._e=function(){return X1(this),this.a},w(ai,"IntStreamImpl",806),b(807,550,Atn,Dz),o.$e=function(){X6(this)},o._e=function(){return X1(this),HX(),PQn},w(ai,"IntStreamImpl/Empty",807),b(1687,1,jy,E9n),o.Dd=function(e){Kxn(this.a,e)},w(ai,"IntStreamImpl/lambda$4$Type",1687);var dNe=Nt(ai,"Stream");b(26,550,{533:1,687:1,848:1},Tn),o.$e=function(){X6(this)};var v3;w(ai,"StreamImpl",26),b(1102,500,Po,rSn),o.Bd=function(e){for(;x4e(this);){if(this.a.Bd(e))return!0;X6(this.b),this.b=null,this.a=null}return!1},w(ai,"StreamImpl/1",1102),b(1103,1,re,C9n),o.Cd=function(e){fbe(this.a,u(e,848))},w(ai,"StreamImpl/1/lambda$0$Type",1103),b(1104,1,De,M9n),o.Mb=function(e){return fi(this.a,e)},w(ai,"StreamImpl/1methodref$add$Type",1104),b(1105,500,Po,BIn),o.Bd=function(e){var t;return this.a||(t=new Z,this.b.a.Nb(new T9n(t)),Dn(),Yt(t,this.c),this.a=new In(t,16)),y$n(this.a,e)},o.a=null,w(ai,"StreamImpl/5",1105),b(1106,1,re,T9n),o.Cd=function(e){nn(this.a,e)},w(ai,"StreamImpl/5/2methodref$add$Type",1106),b(737,500,Po,tQ),o.Bd=function(e){for(this.b=!1;!this.b&&this.c.Bd(new jCn(this,e)););return this.b},o.b=!1,w(ai,"StreamImpl/FilterSpliterator",737),b(1096,1,re,jCn),o.Cd=function(e){cwe(this.a,this.b,e)},w(ai,"StreamImpl/FilterSpliterator/lambda$0$Type",1096),b(1091,736,Po,ILn),o.Re=function(e){return Rae(this,u(e,189))},w(ai,"StreamImpl/MapToDoubleSpliterator",1091),b(1095,1,re,ECn),o.Cd=function(e){fle(this.a,this.b,e)},w(ai,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1095),b(1090,735,Po,OLn),o.Re=function(e){return Kae(this,u(e,202))},w(ai,"StreamImpl/MapToIntSpliterator",1090),b(1094,1,re,CCn),o.Cd=function(e){hle(this.a,this.b,e)},w(ai,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1094),b(734,500,Po,_J),o.Bd=function(e){return eSn(this,e)},w(ai,"StreamImpl/MapToObjSpliterator",734),b(1093,1,re,MCn),o.Cd=function(e){lle(this.a,this.b,e)},w(ai,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1093),b(1092,500,Po,uxn),o.Bd=function(e){for(;LD(this.b,0);){if(!this.a.Bd(new X0n))return!1;this.b=bs(this.b,1)}return this.a.Bd(e)},o.b=0,w(ai,"StreamImpl/SkipSpliterator",1092),b(1097,1,re,X0n),o.Cd=function(e){},w(ai,"StreamImpl/SkipSpliterator/lambda$0$Type",1097),b(626,1,re,LO),o.Cd=function(e){t9n(this,e)},w(ai,"StreamImpl/ValueConsumer",626),b(1098,1,re,V0n),o.Cd=function(e){Va()},w(ai,"StreamImpl/lambda$0$Type",1098),b(1099,1,re,W0n),o.Cd=function(e){Va()},w(ai,"StreamImpl/lambda$1$Type",1099),b(1100,1,{},A9n),o.Ve=function(e,t){return mde(this.a,e,t)},w(ai,"StreamImpl/lambda$4$Type",1100),b(1101,1,re,TCn),o.Cd=function(e){Cae(this.b,this.a,e)},w(ai,"StreamImpl/lambda$5$Type",1101),b(1107,1,re,S9n),o.Cd=function(e){$ve(this.a,u(e,380))},w(ai,"TerminatableStream/lambda$0$Type",1107),b(2142,1,{}),b(2014,1,{},J0n),w("javaemul.internal","ConsoleLogger",2014);var bNe=0;b(2134,1,{}),b(1830,1,re,Q0n),o.Cd=function(e){u(e,317)},w(Hm,"BowyerWatsonTriangulation/lambda$0$Type",1830),b(1831,1,re,P9n),o.Cd=function(e){Bi(this.a,u(e,317).e)},w(Hm,"BowyerWatsonTriangulation/lambda$1$Type",1831),b(1832,1,re,Y0n),o.Cd=function(e){u(e,177)},w(Hm,"BowyerWatsonTriangulation/lambda$2$Type",1832),b(1827,1,Ne,I9n),o.Ne=function(e,t){return m3e(this.a,u(e,177),u(t,177))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Hm,"NaiveMinST/lambda$0$Type",1827),b(449,1,{},Xv),w(Hm,"NodeMicroLayout",449),b(177,1,{177:1},bp),o.Fb=function(e){var t;return D(e,177)?(t=u(e,177),mc(this.a,t.a)&&mc(this.b,t.b)||mc(this.a,t.b)&&mc(this.b,t.a)):!1},o.Hb=function(){return yg(this.a)+yg(this.b)};var wNe=w(Hm,"TEdge",177);b(317,1,{317:1},_en),o.Fb=function(e){var t;return D(e,317)?(t=u(e,317),tT(this,t.a)&&tT(this,t.b)&&tT(this,t.c)):!1},o.Hb=function(){return yg(this.a)+yg(this.b)+yg(this.c)},w(Hm,"TTriangle",317),b(225,1,{225:1},LC),w(Hm,"Tree",225),b(1218,1,{},EOn),w(Yzn,"Scanline",1218);var FQn=Nt(Yzn,Zzn);b(1758,1,{},m$n),w(zh,"CGraph",1758),b(316,1,{316:1},TOn),o.b=0,o.c=0,o.d=0,o.g=0,o.i=0,o.k=li,w(zh,"CGroup",316),b(830,1,{},VG),w(zh,"CGroup/CGroupBuilder",830),b(60,1,{60:1},BAn),o.Ib=function(){var e;return this.j?Oe(this.j.Kb(this)):(ll(aP),aP.o+"@"+(e=l0(this)>>>0,e.toString(16)))},o.f=0,o.i=li;var aP=w(zh,"CNode",60);b(829,1,{},WG),w(zh,"CNode/CNodeBuilder",829);var BQn;b(1590,1,{},Z0n),o.ff=function(e,t){return 0},o.gf=function(e,t){return 0},w(zh,eXn,1590),b(1853,1,{},nbn),o.cf=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j;for(a=St,r=new C(e.a.b);r.ar.d.c||r.d.c==s.d.c&&r.d.b0?e+this.n.d+this.n.a:0},o.kf=function(){var e,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].kf());else if(this.g)c=RY(this,Gx(this,null,!0));else for(t=(wf(),A(T(Sw,1),G,237,0,[bc,Wc,wc])),i=0,r=t.length;i0?c+this.n.b+this.n.c:0},o.lf=function(){var e,t,i,r,c;if(this.g)for(e=Gx(this,null,!1),i=(wf(),A(T(Sw,1),G,237,0,[bc,Wc,wc])),r=0,c=i.length;r0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=y.Math.max(0,i),this.c.d=t.d+e.d+(this.c.a-i)/2,r[1]=y.Math.max(r[1],i),FJ(this,Wc,t.d+e.d+r[0]-(r[1]-i)/2,r)},o.b=null,o.d=0,o.e=!1,o.f=!1,o.g=!1;var h_=0,dP=0;w(kd,"GridContainerCell",1538),b(471,22,{3:1,34:1,22:1,471:1},FD);var pa,Mh,zs,VQn=we(kd,"HorizontalLabelAlignment",471,ke,L2e,ude),WQn;b(314,217,{217:1,314:1},fOn,k$n,tOn),o.jf=function(){return qSn(this)},o.kf=function(){return eW(this)},o.a=0,o.c=!1;var gNe=w(kd,"LabelCell",314);b(252,336,{217:1,336:1,252:1},E5),o.jf=function(){return ey(this)},o.kf=function(){return ty(this)},o.lf=function(){LF(this)},o.mf=function(){NF(this)},o.b=0,o.c=0,o.d=!1,w(kd,"StripContainerCell",252),b(1691,1,De,obn),o.Mb=function(e){return uhe(u(e,217))},w(kd,"StripContainerCell/lambda$0$Type",1691),b(1692,1,{},sbn),o.Ye=function(e){return u(e,217).kf()},w(kd,"StripContainerCell/lambda$1$Type",1692),b(1693,1,De,fbn),o.Mb=function(e){return ohe(u(e,217))},w(kd,"StripContainerCell/lambda$2$Type",1693),b(1694,1,{},hbn),o.Ye=function(e){return u(e,217).jf()},w(kd,"StripContainerCell/lambda$3$Type",1694),b(472,22,{3:1,34:1,22:1,472:1},BD);var Xs,ma,kf,JQn=we(kd,"VerticalLabelAlignment",472,ke,D2e,ode),QQn;b(800,1,{},itn),o.c=0,o.d=0,o.k=0,o.s=0,o.t=0,o.v=!1,o.w=0,o.D=!1,w(nS,"NodeContext",800),b(1536,1,Ne,lbn),o.Ne=function(e,t){return eTn(u(e,64),u(t,64))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/0methodref$comparePortSides$Type",1536),b(1537,1,Ne,abn),o.Ne=function(e,t){return xye(u(e,117),u(t,117))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(nS,"NodeContext/1methodref$comparePortContexts$Type",1537),b(164,22,{3:1,34:1,22:1,164:1},Vo);var YQn,ZQn,nYn,eYn,tYn,iYn,rYn,cYn,uYn,oYn,sYn,fYn,hYn,lYn,aYn,dYn,bYn,wYn,gYn,pYn,mYn,l_,vYn=we(nS,"NodeLabelLocation",164,ke,jx,sde),kYn;b(117,1,{117:1},sHn),o.a=!1,w(nS,"PortContext",117),b(1541,1,re,dbn),o.Cd=function(e){kEn(u(e,314))},w(Oy,bXn,1541),b(1542,1,De,bbn),o.Mb=function(e){return!!u(e,117).c},w(Oy,wXn,1542),b(1543,1,re,wbn),o.Cd=function(e){kEn(u(e,117).c)},w(Oy,"LabelPlacer/lambda$2$Type",1543);var ron;b(1540,1,re,gbn),o.Cd=function(e){Bb(),Rfe(u(e,117))},w(Oy,"NodeLabelAndSizeUtilities/lambda$0$Type",1540),b(801,1,re,NV),o.Cd=function(e){Zhe(this.b,this.c,this.a,u(e,187))},o.a=!1,o.c=!1,w(Oy,"NodeLabelCellCreator/lambda$0$Type",801),b(1539,1,re,L9n),o.Cd=function(e){Hfe(this.a,u(e,187))},w(Oy,"PortContextCreator/lambda$0$Type",1539);var bP;b(1902,1,{},pbn),w(Um,"GreedyRectangleStripOverlapRemover",1902),b(1903,1,Ne,mbn),o.Ne=function(e,t){return O1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1903),b(1849,1,{},qyn),o.a=5,o.e=0,w(Um,"RectangleStripOverlapRemover",1849),b(1850,1,Ne,vbn),o.Ne=function(e,t){return D1e(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1850),b(1852,1,Ne,kbn),o.Ne=function(e,t){return ywe(u(e,226),u(t,226))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Um,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1852),b(417,22,{3:1,34:1,22:1,417:1},sC);var ij,a_,d_,rj,yYn=we(Um,"RectangleStripOverlapRemover/OverlapRemovalDirection",417,ke,Xpe,fde),jYn;b(226,1,{226:1},ZL),w(Um,"RectangleStripOverlapRemover/RectangleNode",226),b(1851,1,re,N9n),o.Cd=function(e){s7e(this.a,u(e,226))},w(Um,"RectangleStripOverlapRemover/lambda$1$Type",1851),b(1323,1,Ne,ybn),o.Ne=function(e,t){return SIe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1323),b(1326,1,{},jbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1326),b(1327,1,De,Ebn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1327),b(1328,1,De,Cbn),o.Mb=function(e){return u(e,332).a},w(mh,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1328),b(1321,1,Ne,Mbn),o.Ne=function(e,t){return rSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1321),b(1324,1,{},Tbn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1324),b(781,1,Ne,KU),o.Ne=function(e,t){return Kve(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinNumOfExtensionsComparator",781),b(1319,1,Ne,Abn),o.Ne=function(e,t){return Vme(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparator",1319),b(1320,1,Ne,Sbn),o.Ne=function(e,t){return D9e(u(e,330),u(t,330))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/MinPerimeterComparatorWithShape",1320),b(1322,1,Ne,Pbn),o.Ne=function(e,t){return MSe(u(e,176),u(t,176))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1322),b(1325,1,{},Ibn),o.Kb=function(e){return u(e,334).a},w(mh,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1325),b(782,1,{},Gz),o.Ve=function(e,t){return Rpe(this,u(e,42),u(t,176))},w(mh,"SuccessorCombination",782),b(649,1,{},NO),o.Ve=function(e,t){var i;return eCe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorJitter",649),b(648,1,{},$O),o.Ve=function(e,t){var i;return _Te((i=u(e,42),u(t,176),i))},w(mh,"SuccessorLineByLine",648),b(573,1,{},vE),o.Ve=function(e,t){var i;return eMe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorManhattan",573),b(1344,1,{},Obn),o.Ve=function(e,t){var i;return lTe((i=u(e,42),u(t,176),i))},w(mh,"SuccessorMaxNormWindingInMathPosSense",1344),b(409,1,{},n4),o.Ve=function(e,t){return MW(this,e,t)},o.c=!1,o.d=!1,o.e=!1,o.f=!1,w(mh,"SuccessorQuadrantsGeneric",409),b(1345,1,{},Dbn),o.Kb=function(e){return u(e,334).a},w(mh,"SuccessorQuadrantsGeneric/lambda$0$Type",1345),b(332,22,{3:1,34:1,22:1,332:1},fC),o.a=!1;var cj,uj,oj,sj,EYn=we(tS,Btn,332,ke,Gpe,hde),CYn;b(1317,1,{}),o.Ib=function(){var e,t,i,r,c,s;for(i=" ",e=Y(0),c=0;c=0?"b"+e+"["+XN(this.a)+"]":"b["+XN(this.a)+"]"):"b_"+l0(this)},w(Ly,"FBendpoint",250),b(290,137,{3:1,290:1,96:1,137:1},RAn),o.Ib=function(){return XN(this)},w(Ly,"FEdge",290),b(235,137,{3:1,235:1,96:1,137:1},zM);var mNe=w(Ly,"FGraph",235);b(454,309,{3:1,454:1,309:1,96:1,137:1},_Dn),o.Ib=function(){return this.b==null||this.b.length==0?"l["+XN(this.a)+"]":"l_"+this.b},w(Ly,"FLabel",454),b(153,309,{3:1,153:1,309:1,96:1,137:1},vTn),o.Ib=function(){return aJ(this)},o.a=0,w(Ly,"FNode",153),b(2100,1,{}),o.vf=function(e){xen(this,e)},o.wf=function(){HRn(this)},o.d=0,w(Xtn,"AbstractForceModel",2100),b(641,2100,{641:1},Rxn),o.uf=function(e,t){var i,r,c,s,f;return wGn(this.f,e,t),c=mi(Ki(t.d),e.d),f=y.Math.sqrt(c.a*c.a+c.b*c.b),r=y.Math.max(0,f-z6(e.e)/2-z6(t.e)/2),i=Q_n(this.e,e,t),i>0?s=-mwe(r,this.c)*i:s=X1e(r,this.b)*u(v(e,(Us(),k3)),17).a,ch(c,s/f),c},o.vf=function(e){xen(this,e),this.a=u(v(e,(Us(),kP)),17).a,this.c=$(R(v(e,yP))),this.b=$(R(v(e,k_)))},o.xf=function(e){return e0&&(s-=the(r,this.a)*i),ch(c,s*this.b/f),c},o.vf=function(e){var t,i,r,c,s,f,h;for(xen(this,e),this.b=$(R(v(e,(Us(),y_)))),this.c=this.b/u(v(e,kP),17).a,r=e.e.c.length,s=0,c=0,h=new C(e.e);h.a0},o.a=0,o.b=0,o.c=0,w(Xtn,"FruchtermanReingoldModel",642),b(860,1,ms,N5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,cS),""),"Force Model"),"Determines the model for force calculation."),don),(l1(),Pt)),bon),jn((pf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vtn),""),"Iterations"),"The number of iterations on the force model."),Y(300)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Wtn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),Y(0)),Zr),Gi),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ZB),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),vh),Qi),si),jn(xn)))),ri(e,ZB,cS,UYn),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nR),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),Qi),si),jn(xn)))),ri(e,nR,cS,_Yn),izn((new $5n,e))};var BYn,RYn,don,KYn,_Yn,HYn,qYn,UYn;w(e8,"ForceMetaDataProvider",860),b(432,22,{3:1,34:1,22:1,432:1},Xz);var v_,vP,bon=we(e8,"ForceModelStrategy",432,ke,Rge,dde),GYn;b(d1,1,ms,$5n),o.hf=function(e){izn(e)};var zYn,XYn,won,kP,gon,VYn,WYn,JYn,QYn,pon,YYn,mon,von,ZYn,k3,nZn,k_,kon,eZn,tZn,yP,y_,iZn,rZn,cZn,yon,uZn;w(e8,"ForceOptions",d1),b(1001,1,{},Wbn),o.sf=function(){var e;return e=new XG,e},o.tf=function(e){},w(e8,"ForceOptions/ForceFactory",1001);var lj,D8,y3,jP;b(861,1,ms,x5n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qtn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(_n(),!1)),(l1(),yi)),Gt),jn((pf(),pi))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ytn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),Qi),si),yt(xn,A(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ztn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),jon),Pt),Pon),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,nin),""),"Stress Epsilon"),"Termination criterion for the iterative process."),vh),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ein),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),Y(et)),Zr),Gi),jn(xn)))),OGn((new F5n,e))};var oZn,sZn,jon,fZn,hZn,lZn;w(e8,"StressMetaDataProvider",861),b(1004,1,ms,F5n),o.hf=function(e){OGn(e)};var EP,Eon,Con,Mon,Ton,Aon,aZn,dZn,bZn,wZn,Son,gZn;w(e8,"StressOptions",1004),b(1005,1,{},Xbn),o.sf=function(){var e;return e=new KAn,e},o.tf=function(e){},w(e8,"StressOptions/StressFactory",1005),b(1110,205,yd,KAn),o.rf=function(e,t){var i,r,c,s,f;for(t.Ug(SXn,1),on(un(z(e,(Uk(),Ton))))?on(un(z(e,Son)))||X7((i=new Xv((c0(),new Qd(e))),i)):VHn(new XG,e,t.eh(1)),c=fFn(e),r=KUn(this.a,c),f=r.Kc();f.Ob();)s=u(f.Pb(),235),!(s.e.c.length<=1)&&(MIe(this.b,s),JCe(this.b),nu(s.d,new Vbn));c=nzn(r),hzn(c),t.Vg()},w(sS,"StressLayoutProvider",1110),b(1111,1,re,Vbn),o.Cd=function(e){Uen(u(e,454))},w(sS,"StressLayoutProvider/lambda$0$Type",1111),b(1002,1,{},Byn),o.c=0,o.e=0,o.g=0,w(sS,"StressMajorization",1002),b(391,22,{3:1,34:1,22:1,391:1},RD);var j_,E_,C_,Pon=we(sS,"StressMajorization/Dimension",391,ke,$2e,bde),pZn;b(1003,1,Ne,B9n),o.Ne=function(e,t){return Hae(this.a,u(e,153),u(t,153))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(sS,"StressMajorization/lambda$0$Type",1003),b(1192,1,{},zOn),w(b3,"ElkLayered",1192),b(1193,1,re,R9n),o.Cd=function(e){MEe(this.a,u(e,36))},w(b3,"ElkLayered/lambda$0$Type",1193),b(1194,1,re,K9n),o.Cd=function(e){qae(this.a,u(e,36))},w(b3,"ElkLayered/lambda$1$Type",1194),b(1281,1,{},PTn);var mZn,vZn,kZn;w(b3,"GraphConfigurator",1281),b(770,1,re,OG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$0$Type",770),b(771,1,{},HU),o.Kb=function(e){return LZ(),new Tn(null,new In(u(e,30).a,16))},w(b3,"GraphConfigurator/lambda$1$Type",771),b(772,1,re,DG),o.Cd=function(e){e_n(this.a,u(e,10))},w(b3,"GraphConfigurator/lambda$2$Type",772),b(1109,205,yd,Uyn),o.rf=function(e,t){var i;i=cIe(new zyn,e),x(z(e,(cn(),Bw)))===x((jl(),M1))?F5e(this.a,i,t):zCe(this.a,i,t),t.$g()||XGn(new B5n,i)},w(b3,"LayeredLayoutProvider",1109),b(367,22,{3:1,34:1,22:1,367:1},o7);var Vs,Jh,Oc,Kc,zr,Ion=we(b3,"LayeredPhases",367,ke,R3e,wde),yZn;b(1717,1,{},ixn),o.i=0;var jZn;w(Ry,"ComponentsToCGraphTransformer",1717);var EZn;b(1718,1,{},zbn),o.yf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.min(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(Ry,"ComponentsToCGraphTransformer/1",1718),b(86,1,{86:1}),o.i=0,o.k=!0,o.o=li;var M_=w(c8,"CNode",86);b(470,86,{470:1,86:1},QX,oZ),o.Ib=function(){return""},w(Ry,"ComponentsToCGraphTransformer/CRectNode",470),b(1688,1,{},Jbn);var T_,A_;w(Ry,"OneDimensionalComponentsCompaction",1688),b(1689,1,{},Qbn),o.Kb=function(e){return T2e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$0$Type",1689),b(1690,1,{},Ybn),o.Kb=function(e){return R5e(u(e,42))},o.Fb=function(e){return this===e},w(Ry,"OneDimensionalComponentsCompaction/lambda$1$Type",1690),b(1720,1,{},ZPn),w(c8,"CGraph",1720),b(194,1,{194:1},vx),o.b=0,o.c=0,o.e=0,o.g=!0,o.i=li,w(c8,"CGroup",194),b(1719,1,{},Zbn),o.yf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},o.zf=function(e,t){return y.Math.max(e.a!=null?$(e.a):e.c.i,t.a!=null?$(t.a):t.c.i)},w(c8,eXn,1719),b(1721,1,{},Z_n),o.d=!1;var CZn,S_=w(c8,rXn,1721);b(1722,1,{},nwn),o.Kb=function(e){return Nz(),_n(),u(u(e,42).a,86).d.e!=0},o.Fb=function(e){return this===e},w(c8,cXn,1722),b(833,1,{},sW),o.a=!1,o.b=!1,o.c=!1,o.d=!1,w(c8,uXn,833),b(1898,1,{},wPn),w(fS,oXn,1898);var aj=Nt(Ed,Zzn);b(1899,1,{382:1},WIn),o.bf=function(e){nAe(this,u(e,476))},w(fS,sXn,1899),b(ha,1,Ne,ewn),o.Ne=function(e,t){return fge(u(e,86),u(t,86))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,fXn,ha),b(476,1,{476:1},Wz),o.a=!1,w(fS,hXn,476),b(1901,1,Ne,twn),o.Ne=function(e,t){return hke(u(e,476),u(t,476))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(fS,lXn,1901),b(148,1,{148:1},d4,GV),o.Fb=function(e){var t;return e==null||vNe!=wo(e)?!1:(t=u(e,148),mc(this.c,t.c)&&mc(this.d,t.d))},o.Hb=function(){return Ik(A(T(ki,1),Bn,1,5,[this.c,this.d]))},o.Ib=function(){return"("+this.c+ur+this.d+(this.a?"cx":"")+this.b+")"},o.a=!0,o.c=0,o.d=0;var vNe=w(Ed,"Point",148);b(416,22,{3:1,34:1,22:1,416:1},lC);var rb,Pw,d2,Iw,MZn=we(Ed,"Point/Quadrant",416,ke,Vpe,gde),TZn;b(1708,1,{},Hyn),o.b=null,o.c=null,o.d=null,o.e=null,o.f=null;var AZn,SZn,PZn,IZn,OZn;w(Ed,"RectilinearConvexHull",1708),b(583,1,{382:1},eA),o.bf=function(e){B4e(this,u(e,148))},o.b=0;var Oon;w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler",583),b(1710,1,Ne,iwn),o.Ne=function(e,t){return hge(R(e),R(t))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1710),b(1709,1,{382:1},v$n),o.bf=function(e){wTe(this,u(e,148))},o.a=0,o.b=null,o.c=null,o.d=null,o.e=null,w(Ed,"RectilinearConvexHull/RectangleEventHandler",1709),b(1711,1,Ne,rwn),o.Ne=function(e,t){return mpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$0$Type",1711),b(1712,1,Ne,own),o.Ne=function(e,t){return vpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$1$Type",1712),b(1713,1,Ne,swn),o.Ne=function(e,t){return ppe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$2$Type",1713),b(1714,1,Ne,uwn),o.Ne=function(e,t){return kpe(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$3$Type",1714),b(1715,1,Ne,fwn),o.Ne=function(e,t){return Qye(u(e,148),u(t,148))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ed,"RectilinearConvexHull/lambda$4$Type",1715),b(1716,1,{},COn),w(Ed,"Scanline",1716),b(2104,1,{}),w(Hf,"AbstractGraphPlacer",2104),b(335,1,{335:1},lAn),o.Ff=function(e){return this.Gf(e)?(Pn(this.b,u(v(e,(W(),Nl)),21),e),!0):!1},o.Gf=function(e){var t,i,r,c;for(t=u(v(e,(W(),Nl)),21),c=u(ot(wt,t),21),r=c.Kc();r.Ob();)if(i=u(r.Pb(),21),!u(ot(this.b,i),15).dc())return!1;return!0};var wt;w(Hf,"ComponentGroup",335),b(779,2104,{},JG),o.Hf=function(e){var t,i;for(i=new C(this.a);i.ai&&(d=0,g+=h+r,h=0),l=s.c,Sm(s,d+l.a,g+l.b),ff(l),c=y.Math.max(c,d+a.a),h=y.Math.max(h,a.b),d+=a.a+r;t.f.a=c,t.f.b=g+h},o.Jf=function(e,t){var i,r,c,s,f;if(x(v(t,(cn(),Fw)))===x((dd(),Ow))){for(r=e.Kc();r.Ob();){for(i=u(r.Pb(),36),f=0,s=new C(i.a);s.ai&&!u(v(s,(W(),Nl)),21).Hc((en(),Xn))||l&&u(v(l,(W(),Nl)),21).Hc((en(),Zn))||u(v(s,(W(),Nl)),21).Hc((en(),Wn)))&&(p=g,m+=h+r,h=0),a=s.c,u(v(s,(W(),Nl)),21).Hc((en(),Xn))&&(p=c+r),Sm(s,p+a.a,m+a.b),c=y.Math.max(c,p+d.a),u(v(s,Nl),21).Hc(ae)&&(g=y.Math.max(g,p+d.a+r)),ff(a),h=y.Math.max(h,d.b),p+=d.a+r,l=s;t.f.a=c,t.f.b=m+h},o.Jf=function(e,t){},w(Hf,"ModelOrderRowGraphPlacer",1313),b(1311,1,Ne,awn),o.Ne=function(e,t){return Fve(u(e,36),u(t,36))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Hf,"SimpleRowGraphPlacer/1",1311);var LZn;b(1280,1,ph,dwn),o.Lb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},o.Fb=function(e){return this===e},o.Mb=function(e){var t;return t=u(v(u(e,249).b,(cn(),Fr)),75),!!t&&t.b!=0},w(hS,"CompoundGraphPostprocessor/1",1280),b(1279,1,vt,Xyn),o.Kf=function(e,t){jRn(this,u(e,36),t)},w(hS,"CompoundGraphPreprocessor",1279),b(453,1,{453:1},aBn),o.c=!1,w(hS,"CompoundGraphPreprocessor/ExternalPort",453),b(249,1,{249:1},zC),o.Ib=function(){return SL(this.c)+":"+X_n(this.b)},w(hS,"CrossHierarchyEdge",249),b(777,1,Ne,LG),o.Ne=function(e,t){return B7e(this,u(e,249),u(t,249))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(hS,"CrossHierarchyEdgeComparator",777),b(305,137,{3:1,305:1,96:1,137:1}),o.p=0,w(Bc,"LGraphElement",305),b(18,305,{3:1,18:1,305:1,96:1,137:1},E0),o.Ib=function(){return X_n(this)};var O_=w(Bc,"LEdge",18);b(36,305,{3:1,20:1,36:1,305:1,96:1,137:1},EQ),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.b)},o.Ib=function(){return this.b.c.length==0?"G-unlayered"+ca(this.a):this.a.c.length==0?"G-layered"+ca(this.b):"G[layerless"+ca(this.a)+", layers"+ca(this.b)+"]"};var NZn=w(Bc,"LGraph",36),$Zn;b(666,1,{}),o.Lf=function(){return this.e.n},o.of=function(e){return v(this.e,e)},o.Mf=function(){return this.e.o},o.Nf=function(){return this.e.p},o.pf=function(e){return kt(this.e,e)},o.Of=function(e){this.e.n.a=e.a,this.e.n.b=e.b},o.Pf=function(e){this.e.o.a=e.a,this.e.o.b=e.b},o.Qf=function(e){this.e.p=e},w(Bc,"LGraphAdapters/AbstractLShapeAdapter",666),b(474,1,{853:1},Vv),o.Rf=function(){var e,t;if(!this.b)for(this.b=Dh(this.a.b.c.length),t=new C(this.a.b);t.a0&&qFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(s> ",e),lA(i)),Re(Dc((e.a+="[",e),i.i),"]")),e.a},o.c=!0,o.d=!1;var xon,Fon,Bon,Ron,Kon,_on,FZn=w(Bc,"LPort",12);b(408,1,qh,e4),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.e),new _9n(e)},w(Bc,"LPort/1",408),b(1309,1,Si,_9n),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).c},o.Ob=function(){return tc(this.a)},o.Qb=function(){q6(this.a)},w(Bc,"LPort/1/1",1309),b(369,1,qh,ip),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=new C(this.a.g),new NG(e)},w(Bc,"LPort/2",369),b(776,1,Si,NG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(E(this.a),18).d},o.Ob=function(){return tc(this.a)},o.Qb=function(){q6(this.a)},w(Bc,"LPort/2/1",776),b(1302,1,qh,ICn),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new Df(this)},w(Bc,"LPort/CombineIter",1302),b(208,1,Si,Df),o.Nb=function(e){_i(this,e)},o.Qb=function(){sEn()},o.Ob=function(){return D6(this)},o.Pb=function(){return tc(this.a)?E(this.a):E(this.b)},w(Bc,"LPort/CombineIter/1",208),b(1303,1,ph,wwn),o.Lb=function(e){return PPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).g.c.length!=0},w(Bc,"LPort/lambda$0$Type",1303),b(1304,1,ph,gwn),o.Lb=function(e){return IPn(e)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).e.c.length!=0},w(Bc,"LPort/lambda$1$Type",1304),b(1305,1,ph,pwn),o.Lb=function(e){return Ou(),u(e,12).j==(en(),Xn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(en(),Xn)},w(Bc,"LPort/lambda$2$Type",1305),b(1306,1,ph,mwn),o.Lb=function(e){return Ou(),u(e,12).j==(en(),Zn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(en(),Zn)},w(Bc,"LPort/lambda$3$Type",1306),b(1307,1,ph,vwn),o.Lb=function(e){return Ou(),u(e,12).j==(en(),ae)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(en(),ae)},w(Bc,"LPort/lambda$4$Type",1307),b(1308,1,ph,kwn),o.Lb=function(e){return Ou(),u(e,12).j==(en(),Wn)},o.Fb=function(e){return this===e},o.Mb=function(e){return Ou(),u(e,12).j==(en(),Wn)},w(Bc,"LPort/lambda$5$Type",1308),b(30,305,{3:1,20:1,305:1,30:1,96:1,137:1},Lc),o.Jc=function(e){qi(this,e)},o.Kc=function(){return new C(this.a)},o.Ib=function(){return"L_"+qr(this.b.b,this,0)+ca(this.a)},w(Bc,"Layer",30),b(1330,1,{},zyn),w(w1,BXn,1330),b(1334,1,{},ywn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1334),b(1337,1,{},jwn),o.Kb=function(e){return Gr(u(e,84))},w(w1,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1337),b(1331,1,re,H9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,ztn,1331),b(1332,1,re,q9n),o.Cd=function(e){hHn(this.a,u(e,123))},w(w1,RXn,1332),b(1333,1,{},Ewn),o.Kb=function(e){return new Tn(null,new In(UW(u(e,74)),16))},w(w1,KXn,1333),b(1335,1,De,U9n),o.Mb=function(e){return _le(this.a,u(e,27))},w(w1,_Xn,1335),b(1336,1,{},Cwn),o.Kb=function(e){return new Tn(null,new In(rge(u(e,74)),16))},w(w1,"ElkGraphImporter/lambda$5$Type",1336),b(1338,1,De,G9n),o.Mb=function(e){return Hle(this.a,u(e,27))},w(w1,"ElkGraphImporter/lambda$7$Type",1338),b(1339,1,De,Mwn),o.Mb=function(e){return mge(u(e,74))},w(w1,"ElkGraphImporter/lambda$8$Type",1339),b(1297,1,{},B5n);var BZn;w(w1,"ElkGraphLayoutTransferrer",1297),b(1298,1,De,z9n),o.Mb=function(e){return Iae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$0$Type",1298),b(1299,1,re,X9n),o.Cd=function(e){c7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$1$Type",1299),b(1300,1,De,V9n),o.Mb=function(e){return wae(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$2$Type",1300),b(1301,1,re,W9n),o.Cd=function(e){c7(),nn(this.a,u(e,18))},w(w1,"ElkGraphLayoutTransferrer/lambda$3$Type",1301),b(819,1,{},kV),w(Qn,"BiLinkedHashMultiMap",819),b(1550,1,vt,Twn),o.Kf=function(e,t){ive(u(e,36),t)},w(Qn,"CommentNodeMarginCalculator",1550),b(1551,1,{},Awn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"CommentNodeMarginCalculator/lambda$0$Type",1551),b(1552,1,re,Swn),o.Cd=function(e){iIe(u(e,10))},w(Qn,"CommentNodeMarginCalculator/lambda$1$Type",1552),b(1553,1,vt,Pwn),o.Kf=function(e,t){oAe(u(e,36),t)},w(Qn,"CommentPostprocessor",1553),b(1554,1,vt,Iwn),o.Kf=function(e,t){PDe(u(e,36),t)},w(Qn,"CommentPreprocessor",1554),b(1555,1,vt,Own),o.Kf=function(e,t){CTe(u(e,36),t)},w(Qn,"ConstraintsPostprocessor",1555),b(1556,1,vt,Dwn),o.Kf=function(e,t){Ove(u(e,36),t)},w(Qn,"EdgeAndLayerConstraintEdgeReverser",1556),b(1557,1,vt,Lwn),o.Kf=function(e,t){y8e(u(e,36),t)},w(Qn,"EndLabelPostprocessor",1557),b(1558,1,{},Nwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPostprocessor/lambda$0$Type",1558),b(1559,1,De,$wn),o.Mb=function(e){return x3e(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$1$Type",1559),b(1560,1,re,xwn),o.Cd=function(e){lke(u(e,10))},w(Qn,"EndLabelPostprocessor/lambda$2$Type",1560),b(1561,1,vt,Fwn),o.Kf=function(e,t){Zje(u(e,36),t)},w(Qn,"EndLabelPreprocessor",1561),b(1562,1,{},Bwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelPreprocessor/lambda$0$Type",1562),b(1563,1,re,pSn),o.Cd=function(e){nle(this.a,this.b,this.c,u(e,10))},o.a=0,o.b=0,o.c=!1,w(Qn,"EndLabelPreprocessor/lambda$1$Type",1563),b(1564,1,De,Rwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x(($f(),Bv))},w(Qn,"EndLabelPreprocessor/lambda$2$Type",1564),b(1565,1,re,J9n),o.Cd=function(e){Fe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$3$Type",1565),b(1566,1,De,Kwn),o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x(($f(),Jw))},w(Qn,"EndLabelPreprocessor/lambda$4$Type",1566),b(1567,1,re,Q9n),o.Cd=function(e){Fe(this.a,u(e,72))},w(Qn,"EndLabelPreprocessor/lambda$5$Type",1567),b(1615,1,vt,I5n),o.Kf=function(e,t){k5e(u(e,36),t)};var RZn;w(Qn,"EndLabelSorter",1615),b(1616,1,Ne,_wn),o.Ne=function(e,t){return Z8e(u(e,466),u(t,466))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"EndLabelSorter/1",1616),b(466,1,{466:1},qIn),w(Qn,"EndLabelSorter/LabelGroup",466),b(1617,1,{},Hwn),o.Kb=function(e){return r7(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"EndLabelSorter/lambda$0$Type",1617),b(1618,1,De,qwn),o.Mb=function(e){return r7(),u(e,10).k==(Vn(),zt)},w(Qn,"EndLabelSorter/lambda$1$Type",1618),b(1619,1,re,Uwn),o.Cd=function(e){dje(u(e,10))},w(Qn,"EndLabelSorter/lambda$2$Type",1619),b(1620,1,De,Gwn),o.Mb=function(e){return r7(),x(v(u(e,72),(cn(),Ah)))===x(($f(),Jw))},w(Qn,"EndLabelSorter/lambda$3$Type",1620),b(1621,1,De,zwn),o.Mb=function(e){return r7(),x(v(u(e,72),(cn(),Ah)))===x(($f(),Bv))},w(Qn,"EndLabelSorter/lambda$4$Type",1621),b(1568,1,vt,Xwn),o.Kf=function(e,t){mIe(this,u(e,36))},o.b=0,o.c=0,w(Qn,"FinalSplineBendpointsCalculator",1568),b(1569,1,{},Vwn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"FinalSplineBendpointsCalculator/lambda$0$Type",1569),b(1570,1,{},Wwn),o.Kb=function(e){return new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"FinalSplineBendpointsCalculator/lambda$1$Type",1570),b(1571,1,De,Jwn),o.Mb=function(e){return!fr(u(e,18))},w(Qn,"FinalSplineBendpointsCalculator/lambda$2$Type",1571),b(1572,1,De,Qwn),o.Mb=function(e){return kt(u(e,18),(W(),Dd))},w(Qn,"FinalSplineBendpointsCalculator/lambda$3$Type",1572),b(1573,1,re,Y9n),o.Cd=function(e){ASe(this.a,u(e,131))},w(Qn,"FinalSplineBendpointsCalculator/lambda$4$Type",1573),b(1574,1,re,Ywn),o.Cd=function(e){Yk(u(e,18).a)},w(Qn,"FinalSplineBendpointsCalculator/lambda$5$Type",1574),b(803,1,vt,$G),o.Kf=function(e,t){lOe(this,u(e,36),t)},w(Qn,"GraphTransformer",803),b(517,22,{3:1,34:1,22:1,517:1},Vz);var L_,dj,KZn=we(Qn,"GraphTransformer/Mode",517,ke,Kge,y0e),_Zn;b(1575,1,vt,Zwn),o.Kf=function(e,t){LMe(u(e,36),t)},w(Qn,"HierarchicalNodeResizingProcessor",1575),b(1576,1,vt,ngn),o.Kf=function(e,t){Yme(u(e,36),t)},w(Qn,"HierarchicalPortConstraintProcessor",1576),b(1577,1,Ne,egn),o.Ne=function(e,t){return k9e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortConstraintProcessor/NodeComparator",1577),b(1578,1,vt,tgn),o.Kf=function(e,t){yPe(u(e,36),t)},w(Qn,"HierarchicalPortDummySizeProcessor",1578),b(1579,1,vt,ign),o.Kf=function(e,t){OAe(this,u(e,36),t)},o.a=0,w(Qn,"HierarchicalPortOrthogonalEdgeRouter",1579),b(1580,1,Ne,rgn),o.Ne=function(e,t){return L1e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/1",1580),b(1581,1,Ne,cgn),o.Ne=function(e,t){return R4e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"HierarchicalPortOrthogonalEdgeRouter/2",1581),b(1582,1,vt,ugn),o.Kf=function(e,t){Vye(u(e,36),t)},w(Qn,"HierarchicalPortPositionProcessor",1582),b(1583,1,vt,R5n),o.Kf=function(e,t){hLe(this,u(e,36))},o.a=0,o.c=0;var CP,MP;w(Qn,"HighDegreeNodeLayeringProcessor",1583),b(580,1,{580:1},ogn),o.b=-1,o.d=-1,w(Qn,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",580),b(1584,1,{},sgn),o.Kb=function(e){return L7(),ji(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1584),b(1585,1,{},fgn),o.Kb=function(e){return L7(),Qt(u(e,10))},o.Fb=function(e){return this===e},w(Qn,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1585),b(1591,1,vt,hgn),o.Kf=function(e,t){dPe(this,u(e,36),t)},w(Qn,"HyperedgeDummyMerger",1591),b(804,1,{},$V),o.a=!1,o.b=!1,o.c=!1,w(Qn,"HyperedgeDummyMerger/MergeState",804),b(1592,1,{},lgn),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"HyperedgeDummyMerger/lambda$0$Type",1592),b(1593,1,{},agn),o.Kb=function(e){return new Tn(null,new In(u(e,10).j,16))},w(Qn,"HyperedgeDummyMerger/lambda$1$Type",1593),b(1594,1,re,dgn),o.Cd=function(e){u(e,12).p=-1},w(Qn,"HyperedgeDummyMerger/lambda$2$Type",1594),b(1595,1,vt,bgn),o.Kf=function(e,t){lPe(u(e,36),t)},w(Qn,"HypernodesProcessor",1595),b(1596,1,vt,wgn),o.Kf=function(e,t){kPe(u(e,36),t)},w(Qn,"InLayerConstraintProcessor",1596),b(1597,1,vt,ggn),o.Kf=function(e,t){dve(u(e,36),t)},w(Qn,"InnermostNodeMarginCalculator",1597),b(1598,1,vt,pgn),o.Kf=function(e,t){MDe(this,u(e,36))},o.a=li,o.b=li,o.c=St,o.d=St;var kNe=w(Qn,"InteractiveExternalPortPositioner",1598);b(1599,1,{},mgn),o.Kb=function(e){return u(e,18).d.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$0$Type",1599),b(1600,1,{},Z9n),o.Kb=function(e){return N1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$1$Type",1600),b(1601,1,{},vgn),o.Kb=function(e){return u(e,18).c.i},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$2$Type",1601),b(1602,1,{},n7n),o.Kb=function(e){return $1e(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$3$Type",1602),b(1603,1,{},e7n),o.Kb=function(e){return Dae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$4$Type",1603),b(1604,1,{},t7n),o.Kb=function(e){return Lae(this.a,R(e))},o.Fb=function(e){return this===e},w(Qn,"InteractiveExternalPortPositioner/lambda$5$Type",1604),b(81,22,{3:1,34:1,22:1,81:1,196:1},ei),o.dg=function(){switch(this.g){case 15:return new xpn;case 22:return new Fpn;case 47:return new Kpn;case 28:case 35:return new Ign;case 32:return new Twn;case 42:return new Pwn;case 1:return new Iwn;case 41:return new Own;case 56:return new $G((V4(),dj));case 0:return new $G((V4(),L_));case 2:return new Dwn;case 54:return new Lwn;case 33:return new Fwn;case 51:return new Xwn;case 55:return new Zwn;case 13:return new ngn;case 38:return new tgn;case 44:return new ign;case 40:return new ugn;case 9:return new R5n;case 49:return new tAn;case 37:return new hgn;case 43:return new bgn;case 27:return new wgn;case 30:return new ggn;case 3:return new pgn;case 18:return new ygn;case 29:return new jgn;case 5:return new K5n;case 50:return new kgn;case 34:return new _5n;case 36:return new Ogn;case 52:return new I5n;case 11:return new Dgn;case 7:return new H5n;case 39:return new Lgn;case 45:return new Ngn;case 16:return new $gn;case 10:return new VCn;case 48:return new Rgn;case 21:return new Kgn;case 23:return new gD((O0(),Z8));case 8:return new Hgn;case 12:return new Ugn;case 4:return new Ggn;case 19:return new V5n;case 17:return new e2n;case 53:return new t2n;case 6:return new b2n;case 25:return new Wyn;case 46:return new o2n;case 31:return new UAn;case 14:return new j2n;case 26:return new qpn;case 20:return new A2n;case 24:return new gD((O0(),PI));default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var Hon,qon,Uon,Gon,zon,Xon,Von,Won,Jon,Qon,b2,TP,AP,Yon,Zon,nsn,esn,tsn,isn,rsn,L8,csn,usn,osn,ssn,fsn,N_,SP,PP,hsn,IP,OP,DP,hv,Dw,Lw,lsn,LP,NP,asn,$P,xP,dsn,bsn,wsn,gsn,FP,$_,bj,BP,RP,KP,_P,psn,msn,vsn,ksn,yNe=we(Qn,uR,81,ke,iqn,kde),HZn;b(1605,1,vt,ygn),o.Kf=function(e,t){EDe(u(e,36),t)},w(Qn,"InvertedPortProcessor",1605),b(1606,1,vt,jgn),o.Kf=function(e,t){vSe(u(e,36),t)},w(Qn,"LabelAndNodeSizeProcessor",1606),b(1607,1,De,Egn),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$0$Type",1607),b(1608,1,De,Cgn),o.Mb=function(e){return u(e,10).k==(Vn(),Zt)},w(Qn,"LabelAndNodeSizeProcessor/lambda$1$Type",1608),b(1609,1,re,mSn),o.Cd=function(e){ele(this.b,this.a,this.c,u(e,10))},o.a=!1,o.c=!1,w(Qn,"LabelAndNodeSizeProcessor/lambda$2$Type",1609),b(1610,1,vt,K5n),o.Kf=function(e,t){WOe(u(e,36),t)};var qZn;w(Qn,"LabelDummyInserter",1610),b(1611,1,ph,Mgn),o.Lb=function(e){return x(v(u(e,72),(cn(),Ah)))===x(($f(),Fv))},o.Fb=function(e){return this===e},o.Mb=function(e){return x(v(u(e,72),(cn(),Ah)))===x(($f(),Fv))},w(Qn,"LabelDummyInserter/1",1611),b(1612,1,vt,kgn),o.Kf=function(e,t){FOe(u(e,36),t)},w(Qn,"LabelDummyRemover",1612),b(1613,1,De,Tgn),o.Mb=function(e){return on(un(v(u(e,72),(cn(),EH))))},w(Qn,"LabelDummyRemover/lambda$0$Type",1613),b(1378,1,vt,_5n),o.Kf=function(e,t){POe(this,u(e,36),t)},o.a=null;var x_;w(Qn,"LabelDummySwitcher",1378),b(293,1,{293:1},tUn),o.c=0,o.d=null,o.f=0,w(Qn,"LabelDummySwitcher/LabelDummyInfo",293),b(1379,1,{},Agn),o.Kb=function(e){return Hp(),new Tn(null,new In(u(e,30).a,16))},w(Qn,"LabelDummySwitcher/lambda$0$Type",1379),b(1380,1,De,Sgn),o.Mb=function(e){return Hp(),u(e,10).k==(Vn(),Ac)},w(Qn,"LabelDummySwitcher/lambda$1$Type",1380),b(1381,1,{},i7n),o.Kb=function(e){return gae(this.a,u(e,10))},w(Qn,"LabelDummySwitcher/lambda$2$Type",1381),b(1382,1,re,r7n),o.Cd=function(e){xwe(this.a,u(e,293))},w(Qn,"LabelDummySwitcher/lambda$3$Type",1382),b(1383,1,Ne,Pgn),o.Ne=function(e,t){return uwe(u(e,293),u(t,293))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"LabelDummySwitcher/lambda$4$Type",1383),b(802,1,vt,Ign),o.Kf=function(e,t){m4e(u(e,36),t)},w(Qn,"LabelManagementProcessor",802),b(1614,1,vt,Ogn),o.Kf=function(e,t){WTe(u(e,36),t)},w(Qn,"LabelSideSelector",1614),b(1622,1,vt,Dgn),o.Kf=function(e,t){xPe(u(e,36),t)},w(Qn,"LayerConstraintPostprocessor",1622),b(1623,1,vt,H5n),o.Kf=function(e,t){OCe(u(e,36),t)};var ysn;w(Qn,"LayerConstraintPreprocessor",1623),b(371,22,{3:1,34:1,22:1,371:1},dC);var wj,HP,qP,F_,UZn=we(Qn,"LayerConstraintPreprocessor/HiddenNodeConnections",371,ke,Jpe,yde),GZn;b(1624,1,vt,Lgn),o.Kf=function(e,t){ZIe(u(e,36),t)},w(Qn,"LayerSizeAndGraphHeightCalculator",1624),b(1625,1,vt,Ngn),o.Kf=function(e,t){NMe(u(e,36),t)},w(Qn,"LongEdgeJoiner",1625),b(1626,1,vt,$gn),o.Kf=function(e,t){PIe(u(e,36),t)},w(Qn,"LongEdgeSplitter",1626),b(1627,1,vt,VCn),o.Kf=function(e,t){hDe(this,u(e,36),t)},o.e=0,o.f=0,o.j=0,o.k=0,o.n=0,o.o=0;var zZn,XZn;w(Qn,"NodePromotion",1627),b(1628,1,Ne,xgn),o.Ne=function(e,t){return E6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/1",1628),b(1629,1,Ne,Fgn),o.Ne=function(e,t){return C6e(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NodePromotion/2",1629),b(1630,1,{},Bgn),o.Kb=function(e){return u(e,42),VC(),_n(),!0},o.Fb=function(e){return this===e},w(Qn,"NodePromotion/lambda$0$Type",1630),b(1631,1,{},s7n),o.Kb=function(e){return v2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$1$Type",1631),b(1632,1,{},f7n),o.Kb=function(e){return m2e(this.a,u(e,42))},o.Fb=function(e){return this===e},o.a=0,w(Qn,"NodePromotion/lambda$2$Type",1632),b(1633,1,vt,Rgn),o.Kf=function(e,t){rLe(u(e,36),t)},w(Qn,"NorthSouthPortPostprocessor",1633),b(1634,1,vt,Kgn),o.Kf=function(e,t){BDe(u(e,36),t)},w(Qn,"NorthSouthPortPreprocessor",1634),b(1635,1,Ne,_gn),o.Ne=function(e,t){return Bve(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"NorthSouthPortPreprocessor/lambda$0$Type",1635),b(1636,1,vt,Hgn),o.Kf=function(e,t){nPe(u(e,36),t)},w(Qn,"PartitionMidprocessor",1636),b(1637,1,De,qgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionMidprocessor/lambda$0$Type",1637),b(1638,1,re,h7n),o.Cd=function(e){vge(this.a,u(e,10))},w(Qn,"PartitionMidprocessor/lambda$1$Type",1638),b(1639,1,vt,Ugn),o.Kf=function(e,t){eTe(u(e,36),t)},w(Qn,"PartitionPostprocessor",1639),b(1640,1,vt,Ggn),o.Kf=function(e,t){wCe(u(e,36),t)},w(Qn,"PartitionPreprocessor",1640),b(1641,1,De,zgn),o.Mb=function(e){return kt(u(e,10),(cn(),Cv))},w(Qn,"PartitionPreprocessor/lambda$0$Type",1641),b(1642,1,{},Xgn),o.Kb=function(e){return new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(Qn,"PartitionPreprocessor/lambda$1$Type",1642),b(1643,1,De,Vgn),o.Mb=function(e){return c9e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$2$Type",1643),b(1644,1,re,Wgn),o.Cd=function(e){e6e(u(e,18))},w(Qn,"PartitionPreprocessor/lambda$3$Type",1644),b(1645,1,vt,V5n),o.Kf=function(e,t){NSe(u(e,36),t)};var jsn,VZn,WZn,JZn,Esn,Csn;w(Qn,"PortListSorter",1645),b(1648,1,Ne,Jgn),o.Ne=function(e,t){return XDn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$0$Type",1648),b(1650,1,Ne,Qgn),o.Ne=function(e,t){return TUn(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$1$Type",1650),b(1646,1,{},Ygn),o.Kb=function(e){return cm(),u(e,12).e},w(Qn,"PortListSorter/lambda$2$Type",1646),b(1647,1,{},Zgn),o.Kb=function(e){return cm(),u(e,12).g},w(Qn,"PortListSorter/lambda$3$Type",1647),b(1649,1,Ne,n2n),o.Ne=function(e,t){return P7e(u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"PortListSorter/lambda$4$Type",1649),b(1651,1,vt,e2n),o.Kf=function(e,t){UCe(u(e,36),t)},w(Qn,"PortSideProcessor",1651),b(1652,1,vt,t2n),o.Kf=function(e,t){GAe(u(e,36),t)},w(Qn,"ReversedEdgeRestorer",1652),b(1657,1,vt,Wyn),o.Kf=function(e,t){l7e(this,u(e,36),t)},w(Qn,"SelfLoopPortRestorer",1657),b(1658,1,{},i2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPortRestorer/lambda$0$Type",1658),b(1659,1,De,r2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPortRestorer/lambda$1$Type",1659),b(1660,1,De,c2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPortRestorer/lambda$2$Type",1660),b(1661,1,{},u2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopPortRestorer/lambda$3$Type",1661),b(1662,1,re,u7n),o.Cd=function(e){Tje(this.a,u(e,337))},w(Qn,"SelfLoopPortRestorer/lambda$4$Type",1662),b(805,1,re,GU),o.Cd=function(e){Rje(u(e,105))},w(Qn,"SelfLoopPortRestorer/lambda$5$Type",805),b(1663,1,vt,o2n),o.Kf=function(e,t){p9e(u(e,36),t)},w(Qn,"SelfLoopPostProcessor",1663),b(1664,1,{},s2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopPostProcessor/lambda$0$Type",1664),b(1665,1,De,f2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopPostProcessor/lambda$1$Type",1665),b(1666,1,De,h2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopPostProcessor/lambda$2$Type",1666),b(1667,1,re,l2n),o.Cd=function(e){Ske(u(e,10))},w(Qn,"SelfLoopPostProcessor/lambda$3$Type",1667),b(1668,1,{},a2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPostProcessor/lambda$4$Type",1668),b(1669,1,re,c7n),o.Cd=function(e){n3e(this.a,u(e,340))},w(Qn,"SelfLoopPostProcessor/lambda$5$Type",1669),b(1670,1,De,d2n),o.Mb=function(e){return!!u(e,105).i},w(Qn,"SelfLoopPostProcessor/lambda$6$Type",1670),b(1671,1,re,o7n),o.Cd=function(e){nhe(this.a,u(e,105))},w(Qn,"SelfLoopPostProcessor/lambda$7$Type",1671),b(1653,1,vt,b2n),o.Kf=function(e,t){vMe(u(e,36),t)},w(Qn,"SelfLoopPreProcessor",1653),b(1654,1,{},w2n),o.Kb=function(e){return new Tn(null,new In(u(e,105).f,1))},w(Qn,"SelfLoopPreProcessor/lambda$0$Type",1654),b(1655,1,{},g2n),o.Kb=function(e){return u(e,340).a},w(Qn,"SelfLoopPreProcessor/lambda$1$Type",1655),b(1656,1,re,p2n),o.Cd=function(e){i1e(u(e,18))},w(Qn,"SelfLoopPreProcessor/lambda$2$Type",1656),b(1672,1,vt,UAn),o.Kf=function(e,t){oje(this,u(e,36),t)},w(Qn,"SelfLoopRouter",1672),b(1673,1,{},m2n),o.Kb=function(e){return new Tn(null,new In(u(e,30).a,16))},w(Qn,"SelfLoopRouter/lambda$0$Type",1673),b(1674,1,De,v2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SelfLoopRouter/lambda$1$Type",1674),b(1675,1,De,k2n),o.Mb=function(e){return kt(u(e,10),(W(),hb))},w(Qn,"SelfLoopRouter/lambda$2$Type",1675),b(1676,1,{},y2n),o.Kb=function(e){return u(v(u(e,10),(W(),hb)),337)},w(Qn,"SelfLoopRouter/lambda$3$Type",1676),b(1677,1,re,SCn),o.Cd=function(e){dge(this.a,this.b,u(e,337))},w(Qn,"SelfLoopRouter/lambda$4$Type",1677),b(1678,1,vt,j2n),o.Kf=function(e,t){FTe(u(e,36),t)},w(Qn,"SemiInteractiveCrossMinProcessor",1678),b(1679,1,De,E2n),o.Mb=function(e){return u(e,10).k==(Vn(),zt)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1679),b(1680,1,De,C2n),o.Mb=function(e){return oPn(u(e,10))._b((cn(),Hw))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1680),b(1681,1,Ne,M2n),o.Ne=function(e,t){return nve(u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1681),b(1682,1,{},T2n),o.Ve=function(e,t){return kge(u(e,10),u(t,10))},w(Qn,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1682),b(1684,1,vt,A2n),o.Kf=function(e,t){oIe(u(e,36),t)},w(Qn,"SortByInputModelProcessor",1684),b(1685,1,De,S2n),o.Mb=function(e){return u(e,12).g.c.length!=0},w(Qn,"SortByInputModelProcessor/lambda$0$Type",1685),b(1686,1,re,l7n),o.Cd=function(e){Uje(this.a,u(e,12))},w(Qn,"SortByInputModelProcessor/lambda$1$Type",1686),b(1759,817,{},pxn),o.df=function(e){var t,i,r,c;switch(this.c=e,this.a.g){case 2:t=new Z,qt(ut(new Tn(null,new In(this.c.a.b,16)),new H2n),new FCn(this,t)),Zk(this,new I2n),nu(t,new O2n),t.c.length=0,qt(ut(new Tn(null,new In(this.c.a.b,16)),new D2n),new d7n(t)),Zk(this,new L2n),nu(t,new N2n),t.c.length=0,i=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new b7n(this))),new $2n),qt(new Tn(null,new In(this.c.a.a,16)),new OCn(i,t)),Zk(this,new F2n),nu(t,new B2n),t.c.length=0;break;case 3:r=new Z,Zk(this,new P2n),c=mTn(O$(Ub(new Tn(null,new In(this.c.a.b,16)),new a7n(this))),new x2n),qt(ut(new Tn(null,new In(this.c.a.b,16)),new R2n),new LCn(c,r)),Zk(this,new K2n),nu(r,new _2n),r.c.length=0;break;default:throw M(new xyn)}},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation",1759),b(1760,1,ph,P2n),o.Lb=function(e){return D(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return D(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1760),b(1761,1,{},a7n),o.Ye=function(e){return AEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1761),b(1769,1,JA,PCn),o.de=function(){P5(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1769),b(1771,1,ph,I2n),o.Lb=function(e){return D(u(e,60).g,154)},o.Fb=function(e){return this===e},o.Mb=function(e){return D(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1771),b(1772,1,re,O2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1772),b(1773,1,De,D2n),o.Mb=function(e){return D(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1773),b(1775,1,re,d7n),o.Cd=function(e){X5e(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1775),b(1774,1,JA,NCn),o.de=function(){P5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1774),b(1776,1,ph,L2n),o.Lb=function(e){return D(u(e,60).g,10)},o.Fb=function(e){return this===e},o.Mb=function(e){return D(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1776),b(1777,1,re,N2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1777),b(1778,1,{},b7n),o.Ye=function(e){return SEe(this.a,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1778),b(1779,1,{},$2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1779),b(1762,1,{},x2n),o.We=function(){return 0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1762),b(1781,1,re,OCn),o.Cd=function(e){Ybe(this.a,this.b,u(e,316))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1781),b(1780,1,JA,DCn),o.de=function(){DHn(this.a,this.b,-1)},o.b=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1780),b(1782,1,ph,F2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1782),b(1783,1,re,B2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1783),b(1763,1,De,R2n),o.Mb=function(e){return D(u(e,60).g,10)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1763),b(1765,1,re,LCn),o.Cd=function(e){Zbe(this.a,this.b,u(e,60))},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1765),b(1764,1,JA,$Cn),o.de=function(){P5(this.b,this.a,-1)},o.a=0,w(di,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1764),b(1766,1,ph,K2n),o.Lb=function(e){return u(e,60),!0},o.Fb=function(e){return this===e},o.Mb=function(e){return u(e,60),!0},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1766),b(1767,1,re,_2n),o.Cd=function(e){u(e,380).de()},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1767),b(1768,1,De,H2n),o.Mb=function(e){return D(u(e,60).g,154)},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1768),b(1770,1,re,FCn),o.Cd=function(e){pme(this.a,this.b,u(e,60))},w(di,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1770),b(1586,1,vt,tAn),o.Kf=function(e,t){$Ie(this,u(e,36),t)};var QZn;w(di,"HorizontalGraphCompactor",1586),b(1587,1,{},w7n),o.ff=function(e,t){var i,r,c;return rQ(e,t)||(i=Pg(e),r=Pg(t),i&&i.k==(Vn(),Zt)||r&&r.k==(Vn(),Zt))?0:(c=u(v(this.a.a,(W(),E2)),312),R1e(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},o.gf=function(e,t){var i,r,c;return rQ(e,t)?1:(i=Pg(e),r=Pg(t),c=u(v(this.a.a,(W(),E2)),312),WX(c,i?i.k:(Vn(),Mi),r?r.k:(Vn(),Mi)))},w(di,"HorizontalGraphCompactor/1",1587),b(1588,1,{},q2n),o.ef=function(e,t){return o6(),e.a.i==0},w(di,"HorizontalGraphCompactor/lambda$0$Type",1588),b(1589,1,{},g7n),o.ef=function(e,t){return Ege(this.a,e,t)},w(di,"HorizontalGraphCompactor/lambda$1$Type",1589),b(1730,1,{},zNn);var YZn,ZZn;w(di,"LGraphToCGraphTransformer",1730),b(1738,1,De,U2n),o.Mb=function(e){return e!=null},w(di,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1738),b(1731,1,{},G2n),o.Kb=function(e){return Fs(),Jr(v(u(u(e,60).g,10),(W(),st)))},w(di,"LGraphToCGraphTransformer/lambda$0$Type",1731),b(1732,1,{},z2n),o.Kb=function(e){return Fs(),iBn(u(u(e,60).g,154))},w(di,"LGraphToCGraphTransformer/lambda$1$Type",1732),b(1741,1,De,X2n),o.Mb=function(e){return Fs(),D(u(e,60).g,10)},w(di,"LGraphToCGraphTransformer/lambda$10$Type",1741),b(1742,1,re,V2n),o.Cd=function(e){Sge(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$11$Type",1742),b(1743,1,De,W2n),o.Mb=function(e){return Fs(),D(u(e,60).g,154)},w(di,"LGraphToCGraphTransformer/lambda$12$Type",1743),b(1747,1,re,J2n),o.Cd=function(e){c5e(u(e,60))},w(di,"LGraphToCGraphTransformer/lambda$13$Type",1747),b(1744,1,re,p7n),o.Cd=function(e){Dle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$14$Type",1744),b(1745,1,re,m7n),o.Cd=function(e){Nle(this.a,u(e,116))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$15$Type",1745),b(1746,1,re,v7n),o.Cd=function(e){Lle(this.a,u(e,8))},o.a=0,w(di,"LGraphToCGraphTransformer/lambda$16$Type",1746),b(1748,1,{},Q2n),o.Kb=function(e){return Fs(),new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$17$Type",1748),b(1749,1,De,Y2n),o.Mb=function(e){return Fs(),fr(u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$18$Type",1749),b(1750,1,re,k7n),o.Cd=function(e){W4e(this.a,u(e,18))},w(di,"LGraphToCGraphTransformer/lambda$19$Type",1750),b(1734,1,re,y7n),o.Cd=function(e){jpe(this.a,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$2$Type",1734),b(1751,1,{},Z2n),o.Kb=function(e){return Fs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$20$Type",1751),b(1752,1,{},npn),o.Kb=function(e){return Fs(),new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$21$Type",1752),b(1753,1,{},epn),o.Kb=function(e){return Fs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$22$Type",1753),b(1754,1,De,tpn),o.Mb=function(e){return K1e(u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$23$Type",1754),b(1755,1,re,j7n),o.Cd=function(e){gEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$24$Type",1755),b(1733,1,re,BCn),o.Cd=function(e){v3e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$3$Type",1733),b(1735,1,{},ipn),o.Kb=function(e){return Fs(),new Tn(null,new In(u(e,30).a,16))},w(di,"LGraphToCGraphTransformer/lambda$4$Type",1735),b(1736,1,{},rpn),o.Kb=function(e){return Fs(),new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(di,"LGraphToCGraphTransformer/lambda$5$Type",1736),b(1737,1,{},cpn),o.Kb=function(e){return Fs(),u(v(u(e,18),(W(),Dd)),15)},w(di,"LGraphToCGraphTransformer/lambda$6$Type",1737),b(1739,1,re,E7n),o.Cd=function(e){PEe(this.a,u(e,15))},w(di,"LGraphToCGraphTransformer/lambda$8$Type",1739),b(1740,1,re,RCn),o.Cd=function(e){r1e(this.a,this.b,u(e,154))},w(di,"LGraphToCGraphTransformer/lambda$9$Type",1740),b(1729,1,{},upn),o.cf=function(e){var t,i,r,c,s;for(this.a=e,this.d=new oD,this.c=K(ion,Bn,125,this.a.a.a.c.length,0,1),this.b=0,i=new C(this.a.a.a);i.a=j&&(nn(s,Y(d)),O=y.Math.max(O,N[d-1]-g),h+=k,S+=N[d-1]-S,g=N[d-1],k=l[d]),k=y.Math.max(k,l[d]),++d;h+=k}m=y.Math.min(1/O,1/t.b/h),m>r&&(r=m,i=s)}return i},o.pg=function(){return!1},w(yh,"MSDCutIndexHeuristic",816),b(1683,1,vt,qpn),o.Kf=function(e,t){BPe(u(e,36),t)},w(yh,"SingleEdgeGraphWrapper",1683),b(232,22,{3:1,34:1,22:1,232:1},w6);var g2,dv,bv,Nw,N8,p2,wv=we(Tc,"CenterEdgeLabelPlacementStrategy",232,ke,E4e,Mde),lne;b(431,22,{3:1,34:1,22:1,431:1},Jz);var Tsn,V_,Asn=we(Tc,"ConstraintCalculationStrategy",431,ke,qge,Tde),ane;b(322,22,{3:1,34:1,22:1,322:1,188:1,196:1},_D),o.dg=function(){return K_n(this)},o.qg=function(){return K_n(this)};var pj,$8,Ssn,Psn=we(Tc,"CrossingMinimizationStrategy",322,ke,F2e,Ade),dne;b(351,22,{3:1,34:1,22:1,351:1},HD);var Isn,W_,VP,Osn=we(Tc,"CuttingStrategy",351,ke,B2e,Sde),bne;b(348,22,{3:1,34:1,22:1,348:1,188:1,196:1},f7),o.dg=function(){return IHn(this)},o.qg=function(){return IHn(this)};var Dsn,J_,gv,Q_,pv,Lsn=we(Tc,"CycleBreakingStrategy",348,ke,_3e,Pde),wne;b(428,22,{3:1,34:1,22:1,428:1},Qz);var WP,Nsn,$sn=we(Tc,"DirectionCongruency",428,ke,Hge,Ide),gne;b(460,22,{3:1,34:1,22:1,460:1},qD);var mv,Y_,m2,pne=we(Tc,"EdgeConstraint",460,ke,R2e,Fde),mne;b(283,22,{3:1,34:1,22:1,283:1},g6);var Z_,nH,eH,tH,JP,iH,xsn=we(Tc,"EdgeLabelSideSelection",283,ke,k4e,Bde),vne;b(488,22,{3:1,34:1,22:1,488:1},Yz);var QP,Fsn,Bsn=we(Tc,"EdgeStraighteningStrategy",488,ke,Jge,Rde),kne;b(281,22,{3:1,34:1,22:1,281:1},p6);var rH,Rsn,Ksn,YP,_sn,Hsn,qsn=we(Tc,"FixedAlignment",281,ke,y4e,xde),yne;b(282,22,{3:1,34:1,22:1,282:1},m6);var Usn,Gsn,zsn,Xsn,x8,Vsn,Wsn=we(Tc,"GraphCompactionStrategy",282,ke,j4e,Ode),jne;b(259,22,{3:1,34:1,22:1,259:1},Db);var vv,ZP,kv,cs,F8,nI,yv,v2,eI,B8,cH=we(Tc,"GraphProperties",259,ke,uve,Dde),Ene;b(299,22,{3:1,34:1,22:1,299:1},UD);var mj,uH,oH,sH=we(Tc,"GreedySwitchType",299,ke,K2e,Lde),Cne;b(311,22,{3:1,34:1,22:1,311:1},GD);var E3,vj,k2,Mne=we(Tc,"InLayerConstraint",311,ke,_2e,Nde),Tne;b(429,22,{3:1,34:1,22:1,429:1},Zz);var fH,Jsn,Qsn=we(Tc,"InteractiveReferencePoint",429,ke,_ge,$de),Ane,Ysn,C3,ob,tI,Zsn,nfn,iI,efn,kj,rI,R8,M3,Nl,hH,cI,gc,tfn,ka,Hc,lH,aH,yj,Od,sb,T3,ifn,A3,jj,$w,yf,Es,dH,y2,dt,st,rfn,cfn,ufn,ofn,sfn,bH,uI,Xu,fb,wH,S3,K8,zf,j2,hb,E2,C2,jv,Dd,ffn,gH,pH,P3;b(171,22,{3:1,34:1,22:1,171:1},h7);var _8,ya,H8,xw,Ej,hfn=we(Tc,"LayerConstraint",171,ke,q3e,Kde),Sne;b(859,1,ms,e8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,uin),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),kfn),(l1(),Pt)),$sn),jn((pf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oin),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(_n(),!1)),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lS),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Tfn),Pt),Qsn),jn(xn)))),ri(e,lS,fR,jee),ri(e,lS,o8,yee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,sin),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fin),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),yi),Gt),jn(xn)))),vn(e,new ln(Dhe(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hin),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),yi),Gt),jn(Kd)),A(T(fn,1),J,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lin),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),Nfn),Pt),qhn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ain),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),Y(7)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,din),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bin),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,fR),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),vfn),Pt),Lsn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Hy),LR),"Node Layering Strategy"),"Strategy for node layering."),Pfn),Pt),Ohn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,win),LR),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),Afn),Pt),hfn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gin),LR),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pin),LR),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hR),YXn),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),Y(4)),Zr),Gi),jn(xn)))),ri(e,hR,Hy,Pee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,lR),YXn),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),Y(2)),Zr),Gi),jn(xn)))),ri(e,lR,Hy,Oee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aR),ZXn),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),Sfn),Pt),Khn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,dR),ZXn),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),Y(0)),Zr),Gi),jn(xn)))),ri(e,dR,aR,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bR),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),Y(et)),Zr),Gi),jn(xn)))),ri(e,bR,Hy,Cee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,o8),Wm),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),mfn),Pt),Psn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,min),Wm),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wR),Wm),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),Qi),si),jn(xn)))),ri(e,wR,CS,Vne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gR),Wm),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),yi),Gt),jn(xn)))),ri(e,gR,o8,nee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vin),Wm),"In Layer Predecessor of"),"Allows to set a constraint which specifies of which node the current node is the predecessor. If set to 's' then the node is the predecessor of 's' and is in the same layer"),null),$2),fn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kin),Wm),"In Layer Successor of"),"Allows to set a constraint which specifies of which node the current node is the successor. If set to 's' then the node is the successor of 's' and is in the same layer"),null),$2),fn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yin),Wm),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),null),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jin),Wm),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),Y(-1)),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ein),nVn),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),Y(40)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pR),nVn),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),pfn),Pt),sH),jn(xn)))),ri(e,pR,o8,zne),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,aS),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),gfn),Pt),sH),jn(xn)))),ri(e,aS,o8,qne),ri(e,aS,CS,Une),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,c2),eVn),"Node Placement Strategy"),"Strategy for node placement."),Lfn),Pt),$hn),jn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,dS),eVn),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),yi),Gt),jn(xn)))),ri(e,dS,c2,Hee),ri(e,dS,c2,qee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mR),tVn),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),Ifn),Pt),Bsn),jn(xn)))),ri(e,mR,c2,Bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vR),tVn),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),Ofn),Pt),qsn),jn(xn)))),ri(e,vR,c2,Kee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,kR),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),Qi),si),jn(xn)))),ri(e,kR,c2,Gee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,yR),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),Pt),RH),jn(pi)))),ri(e,yR,c2,Wee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jR),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Dfn),Pt),RH),jn(xn)))),ri(e,jR,c2,Vee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Cin),iVn),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),Efn),Pt),zhn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Min),iVn),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Cfn),Pt),Xhn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,bS),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Mfn),Pt),Whn),jn(xn)))),ri(e,bS,qy,lee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wS),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),Qi),si),jn(xn)))),ri(e,wS,qy,dee),ri(e,wS,bS,bee),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ER),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),Qi),si),jn(xn)))),ri(e,ER,qy,oee),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Tin),qf),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ain),qf),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Sin),qf),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Pin),qf),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Iin),Kin),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),Y(0)),Zr),Gi),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Oin),Kin),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),Y(0)),Zr),Gi),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Din),Kin),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),Y(0)),Zr),Gi),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CR),_in),vXn),"Tries to further compact components (disconnected sub-graphs)."),!1),yi),Gt),jn(xn)))),ri(e,CR,t8,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lin),rVn),"Post Compaction Strategy"),cVn),afn),Pt),Wsn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nin),rVn),"Post Compaction Constraint Calculation"),cVn),lfn),Pt),Asn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gS),Hin),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MR),Hin),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),Y(16)),Zr),Gi),jn(xn)))),ri(e,MR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,TR),Hin),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),Y(5)),Zr),Gi),jn(xn)))),ri(e,TR,gS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Ol),qin),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),Ffn),Pt),Zhn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,pS),qin),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),Qi),si),jn(xn)))),ri(e,pS,Ol,ste),ri(e,pS,Ol,fte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mS),qin),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),Qi),si),jn(xn)))),ri(e,mS,Ol,lte),ri(e,mS,Ol,ate),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,s8),uVn),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),xfn),Pt),Osn),jn(xn)))),ri(e,s8,Ol,mte),ri(e,s8,Ol,vte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,AR),uVn),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),Vf),rs),jn(xn)))),ri(e,AR,s8,bte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,SR),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),$fn),Zr),Gi),jn(xn)))),ri(e,SR,s8,gte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vS),oVn),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),Bfn),Pt),Yhn),jn(xn)))),ri(e,vS,Ol,Ote),ri(e,vS,Ol,Dte),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,kS),oVn),"Valid Indices for Wrapping"),null),Vf),rs),jn(xn)))),ri(e,kS,Ol,Ste),ri(e,kS,Ol,Pte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yS),Uin),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),yi),Gt),jn(xn)))),ri(e,yS,Ol,Ete),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jS),Uin),"Distance Penalty When Improving Cuts"),null),2),Qi),si),jn(xn)))),ri(e,jS,Ol,yte),ri(e,jS,yS,!0),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,PR),Uin),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),yi),Gt),jn(xn)))),ri(e,PR,Ol,Mte),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$in),NR),"Edge Label Side Selection"),"Method to decide on edge label sides."),jfn),Pt),xsn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xin),NR),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),yfn),Pt),wv),yt(xn,A(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,ES),f8),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),wfn),Pt),Hhn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fin),f8),"Consider Port Order"),"If disabled the port order of output ports is derived from the edge order and input ports are ordered by their incoming connections. If enabled all ports are ordered by the port model order."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Bin),f8),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,IR),f8),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),dfn),Pt),Lon),jn(xn)))),ri(e,IR,t8,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Rin),f8),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),bfn),Pt),Lhn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,OR),f8),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),Qi),si),jn(xn)))),ri(e,OR,ES,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,DR),f8),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),Qi),si),jn(xn)))),ri(e,DR,ES,null),Czn((new t8n,e))};var Pne,Ine,One,lfn,Dne,afn,Lne,dfn,Nne,$ne,xne,bfn,Fne,Bne,Rne,wfn,Kne,_ne,Hne,gfn,qne,Une,Gne,pfn,zne,Xne,Vne,Wne,Jne,Qne,Yne,Zne,nee,eee,mfn,tee,vfn,iee,kfn,ree,yfn,cee,jfn,uee,oee,see,Efn,fee,Cfn,hee,Mfn,lee,aee,dee,bee,wee,gee,pee,mee,vee,kee,Tfn,yee,jee,Eee,Cee,Mee,Tee,Afn,Aee,See,Pee,Iee,Oee,Dee,Lee,Sfn,Nee,Pfn,$ee,xee,Fee,Ifn,Bee,Ree,Ofn,Kee,_ee,Hee,qee,Uee,Gee,zee,Xee,Dfn,Vee,Wee,Jee,Lfn,Qee,Nfn,Yee,Zee,nte,ete,tte,ite,rte,cte,ute,ote,ste,fte,hte,lte,ate,dte,bte,wte,$fn,gte,pte,xfn,mte,vte,kte,yte,jte,Ete,Cte,Mte,Tte,Ffn,Ate,Ste,Pte,Ite,Bfn,Ote,Dte;w(Tc,"LayeredMetaDataProvider",859),b(998,1,ms,t8n),o.hf=function(e){Czn(e)};var Th,mH,oI,q8,sI,Rfn,fI,Fw,hI,Kfn,_fn,lI,vH,Yh,kH,lb,Hfn,Cj,yH,qfn,Lte,Nte,$te,aI,jH,U8,Ld,xte,Do,Ufn,Gfn,dI,EH,Ah,bI,$l,zfn,Xfn,Vfn,CH,MH,Wfn,m1,TH,Jfn,Bw,Qfn,Yfn,Zfn,wI,Rw,Nd,nhn,ehn,Fr,thn,Fte,ou,gI,ihn,rhn,chn,ja,$d,pI,uhn,ohn,mI,ab,shn,AH,G8,fhn,db,z8,vI,xd,SH,Ev,kI,Fd,hhn,lhn,ahn,Cv,dhn,Bte,Rte,Kte,_te,bb,Kw,Kt,v1,Hte,_w,bhn,Mv,whn,Hw,qte,Tv,ghn,I3,Ute,Gte,Mj,PH,phn,Tj,Ws,M2,T2,wb,Bd,yI,qw,IH,Av,Sv,gb,A2,OH,Aj,X8,V8,zte,Xte,Vte,mhn,Wte,DH,vhn,khn,yhn,jhn,LH,Ehn,Chn,Mhn,Thn,NH,jI;w(Tc,"LayeredOptions",998),b(999,1,{},Upn),o.sf=function(){var e;return e=new Uyn,e},o.tf=function(e){},w(Tc,"LayeredOptions/LayeredFactory",999),b(1391,1,{}),o.a=0;var Jte;w(dc,"ElkSpacings/AbstractSpacingsBuilder",1391),b(792,1391,{},XY);var EI,Qte;w(Tc,"LayeredSpacings/LayeredSpacingsBuilder",792),b(265,22,{3:1,34:1,22:1,265:1,188:1,196:1},dg),o.dg=function(){return Rqn(this)},o.qg=function(){return Rqn(this)};var Pv,$H,Iv,Ahn,Shn,Phn,CI,xH,Ihn,Ohn=we(Tc,"LayeringStrategy",265,ke,xme,_de),Yte;b(390,22,{3:1,34:1,22:1,390:1},zD);var FH,Dhn,MI,Lhn=we(Tc,"LongEdgeOrderingStrategy",390,ke,H2e,Hde),Zte;b(203,22,{3:1,34:1,22:1,203:1},wC);var S2,P2,TI,BH,RH=we(Tc,"NodeFlexibility",203,ke,Qpe,qde),nie;b(323,22,{3:1,34:1,22:1,323:1,188:1,196:1},l7),o.dg=function(){return PHn(this)},o.qg=function(){return PHn(this)};var W8,KH,_H,J8,Nhn,$hn=we(Tc,"NodePlacementStrategy",323,ke,H3e,Ude),eie;b(243,22,{3:1,34:1,22:1,243:1},Lb);var xhn,pb,Uw,Sj,Fhn,Bhn,Pj,Rhn,AI,SI,Khn=we(Tc,"NodePromotionStrategy",243,ke,ove,Gde),tie;b(284,22,{3:1,34:1,22:1,284:1},gC);var _hn,k1,HH,qH,Hhn=we(Tc,"OrderingStrategy",284,ke,Ype,zde),iie;b(430,22,{3:1,34:1,22:1,430:1},nX);var UH,GH,qhn=we(Tc,"PortSortingStrategy",430,ke,Uge,Xde),rie;b(463,22,{3:1,34:1,22:1,463:1},XD);var Vu,Jc,Q8,cie=we(Tc,"PortType",463,ke,q2e,Vde),uie;b(387,22,{3:1,34:1,22:1,387:1},VD);var Uhn,zH,Ghn,zhn=we(Tc,"SelfLoopDistributionStrategy",387,ke,U2e,Wde),oie;b(349,22,{3:1,34:1,22:1,349:1},WD);var XH,Ij,VH,Xhn=we(Tc,"SelfLoopOrderingStrategy",349,ke,G2e,Jde),sie;b(312,1,{312:1},yGn),w(Tc,"Spacings",312),b(350,22,{3:1,34:1,22:1,350:1},JD);var WH,Vhn,Y8,Whn=we(Tc,"SplineRoutingMode",350,ke,z2e,Qde),fie;b(352,22,{3:1,34:1,22:1,352:1},QD);var JH,Jhn,Qhn,Yhn=we(Tc,"ValidifyStrategy",352,ke,X2e,Yde),hie;b(388,22,{3:1,34:1,22:1,388:1},YD);var Gw,QH,Ov,Zhn=we(Tc,"WrappingStrategy",388,ke,V2e,Zde),lie;b(1398,1,vr,X5n),o.rg=function(e){return u(e,36),aie},o.Kf=function(e,t){DIe(this,u(e,36),t)};var aie;w(SS,"DepthFirstCycleBreaker",1398),b(793,1,vr,dW),o.rg=function(e){return u(e,36),die},o.Kf=function(e,t){$Le(this,u(e,36),t)},o.sg=function(e){return u(sn(e,cA(this.d,e.c.length)),10)};var die;w(SS,"GreedyCycleBreaker",793),b(1401,793,vr,KMn),o.sg=function(e){var t,i,r,c;for(c=null,t=et,r=new C(e);r.a1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,u(this,669)):(Dn(),Yt(e,this.d)),qxn(this.e,e))},o.lg=function(e,t,i,r){var c,s,f,h,l,a,d;for(t!=uPn(i,e.length)&&(s=e[t-(i?1:-1)],HJ(this.f,s,i?(gr(),Jc):(gr(),Vu))),c=e[t][0],d=!r||c.k==(Vn(),Zt),a=Of(e[t]),this.vg(a,d,!1,i),f=0,l=new C(a);l.a"),e0?DN(this.a,e[t-1],e[t]):!i&&t1&&(on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),(cn(),lb))))?HHn(e,this.d,this):(Dn(),Yt(e,this.d)),on(un(v(Hi((Ln(0,e.c.length),u(e.c[0],10))),lb)))||qxn(this.e,e))},w(Nu,"ModelOrderBarycenterHeuristic",669),b(1866,1,Ne,q7n),o.Ne=function(e,t){return Oje(this.a,u(e,10),u(t,10))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Nu,"ModelOrderBarycenterHeuristic/lambda$0$Type",1866),b(1423,1,vr,r8n),o.rg=function(e){var t;return u(e,36),t=DC(Pie),Ke(t,(Vi(),Oc),(tr(),FP)),t},o.Kf=function(e,t){bge((u(e,36),t))};var Pie;w(Nu,"NoCrossingMinimizer",1423),b(809,413,Mrn,Ez),o.tg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m;switch(g=this.g,i.g){case 1:{for(c=0,s=0,d=new C(e.j);d.a1&&(c.j==(en(),Zn)?this.b[e]=!0:c.j==Wn&&e>0&&(this.b[e-1]=!0))},o.f=0,w(Vh,"AllCrossingsCounter",1861),b(595,1,{},ET),o.b=0,o.d=0,w(Vh,"BinaryIndexedTree",595),b(532,1,{},D7);var tln,II;w(Vh,"CrossingsCounter",532),b(1950,1,Ne,U7n),o.Ne=function(e,t){return Kbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$0$Type",1950),b(1951,1,Ne,G7n),o.Ne=function(e,t){return _be(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$1$Type",1951),b(1952,1,Ne,z7n),o.Ne=function(e,t){return Hbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$2$Type",1952),b(1953,1,Ne,X7n),o.Ne=function(e,t){return qbe(this.a,u(e,12),u(t,12))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Vh,"CrossingsCounter/lambda$3$Type",1953),b(1954,1,re,V7n),o.Cd=function(e){q4e(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$4$Type",1954),b(1955,1,De,W7n),o.Mb=function(e){return ble(this.a,u(e,12))},w(Vh,"CrossingsCounter/lambda$5$Type",1955),b(1956,1,re,J7n),o.Cd=function(e){OMn(this,e)},w(Vh,"CrossingsCounter/lambda$6$Type",1956),b(1957,1,re,HCn),o.Cd=function(e){var t;k4(),W1(this.b,(t=this.a,u(e,12),t))},w(Vh,"CrossingsCounter/lambda$7$Type",1957),b(839,1,ph,YU),o.Lb=function(e){return k4(),kt(u(e,12),(W(),Xu))},o.Fb=function(e){return this===e},o.Mb=function(e){return k4(),kt(u(e,12),(W(),Xu))},w(Vh,"CrossingsCounter/lambda$8$Type",839),b(1949,1,{},Q7n),w(Vh,"HyperedgeCrossingsCounter",1949),b(478,1,{34:1,478:1},GAn),o.Fd=function(e){return H8e(this,u(e,478))},o.b=0,o.c=0,o.e=0,o.f=0;var jNe=w(Vh,"HyperedgeCrossingsCounter/Hyperedge",478);b(374,1,{34:1,374:1},CM),o.Fd=function(e){return tMe(this,u(e,374))},o.b=0,o.c=0;var Iie=w(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner",374);b(531,22,{3:1,34:1,22:1,531:1},eX);var n9,e9,Oie=we(Vh,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",531,ke,Gge,e0e),Die;b(1425,1,vr,c8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Lie:null},o.Kf=function(e,t){dke(this,u(e,36),t)};var Lie;w(kr,"InteractiveNodePlacer",1425),b(1426,1,vr,u8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Nie:null},o.Kf=function(e,t){Q9e(this,u(e,36),t)};var Nie,OI,DI;w(kr,"LinearSegmentsNodePlacer",1426),b(261,1,{34:1,261:1},QG),o.Fd=function(e){return The(this,u(e,261))},o.Fb=function(e){var t;return D(e,261)?(t=u(e,261),this.b==t.b):!1},o.Hb=function(){return this.b},o.Ib=function(){return"ls"+ca(this.e)},o.a=0,o.b=0,o.c=-1,o.d=-1,o.g=0;var $ie=w(kr,"LinearSegmentsNodePlacer/LinearSegment",261);b(1428,1,vr,gPn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?xie:null},o.Kf=function(e,t){TLe(this,u(e,36),t)},o.b=0,o.g=0;var xie;w(kr,"NetworkSimplexPlacer",1428),b(1447,1,Ne,n3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/0methodref$compare$Type",1447),b(1449,1,Ne,e3n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(kr,"NetworkSimplexPlacer/1methodref$compare$Type",1449),b(655,1,{655:1},qCn);var ENe=w(kr,"NetworkSimplexPlacer/EdgeRep",655);b(412,1,{412:1},XW),o.b=!1;var CNe=w(kr,"NetworkSimplexPlacer/NodeRep",412);b(515,13,{3:1,4:1,20:1,31:1,56:1,13:1,16:1,15:1,59:1,515:1},Zyn),w(kr,"NetworkSimplexPlacer/Path",515),b(1429,1,{},t3n),o.Kb=function(e){return u(e,18).d.i.k},w(kr,"NetworkSimplexPlacer/Path/lambda$0$Type",1429),b(1430,1,De,i3n),o.Mb=function(e){return u(e,273)==(Vn(),Mi)},w(kr,"NetworkSimplexPlacer/Path/lambda$1$Type",1430),b(1431,1,{},r3n),o.Kb=function(e){return u(e,18).d.i},w(kr,"NetworkSimplexPlacer/Path/lambda$2$Type",1431),b(1432,1,De,Y7n),o.Mb=function(e){return PAn(DBn(u(e,10)))},w(kr,"NetworkSimplexPlacer/Path/lambda$3$Type",1432),b(1433,1,De,c3n),o.Mb=function(e){return Cbe(u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$0$Type",1433),b(1434,1,re,UCn),o.Cd=function(e){c1e(this.a,this.b,u(e,12))},w(kr,"NetworkSimplexPlacer/lambda$1$Type",1434),b(1443,1,re,Z7n),o.Cd=function(e){OEe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$10$Type",1443),b(1444,1,{},u3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$11$Type",1444),b(1445,1,re,nkn),o.Cd=function(e){MAe(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$12$Type",1445),b(1446,1,{},o3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$13$Type",1446),b(1448,1,{},s3n),o.Kb=function(e){return ko(),Y(u(e,125).e)},w(kr,"NetworkSimplexPlacer/lambda$15$Type",1448),b(1450,1,De,f3n),o.Mb=function(e){return ko(),u(e,412).c.k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$17$Type",1450),b(1451,1,De,h3n),o.Mb=function(e){return ko(),u(e,412).c.j.c.length>1},w(kr,"NetworkSimplexPlacer/lambda$18$Type",1451),b(1452,1,re,CIn),o.Cd=function(e){h8e(this.c,this.b,this.d,this.a,u(e,412))},o.c=0,o.d=0,w(kr,"NetworkSimplexPlacer/lambda$19$Type",1452),b(1435,1,{},l3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$2$Type",1435),b(1453,1,re,ekn),o.Cd=function(e){o1e(this.a,u(e,12))},o.a=0,w(kr,"NetworkSimplexPlacer/lambda$20$Type",1453),b(1454,1,{},a3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$21$Type",1454),b(1455,1,re,tkn),o.Cd=function(e){v1e(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$22$Type",1455),b(1456,1,De,d3n),o.Mb=function(e){return PAn(e)},w(kr,"NetworkSimplexPlacer/lambda$23$Type",1456),b(1457,1,{},b3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$24$Type",1457),b(1458,1,De,ikn),o.Mb=function(e){return Sle(this.a,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$25$Type",1458),b(1459,1,re,GCn),o.Cd=function(e){$je(this.a,this.b,u(e,10))},w(kr,"NetworkSimplexPlacer/lambda$26$Type",1459),b(1460,1,De,w3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$27$Type",1460),b(1461,1,De,g3n),o.Mb=function(e){return ko(),!fr(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$28$Type",1461),b(1462,1,{},rkn),o.Ve=function(e,t){return u1e(this.a,u(e,30),u(t,30))},w(kr,"NetworkSimplexPlacer/lambda$29$Type",1462),b(1436,1,{},p3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new ie(ce(Qt(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$3$Type",1436),b(1437,1,De,m3n),o.Mb=function(e){return ko(),xpe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$4$Type",1437),b(1438,1,re,ckn),o.Cd=function(e){NPe(this.a,u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$5$Type",1438),b(1439,1,{},v3n),o.Kb=function(e){return ko(),new Tn(null,new In(u(e,30).a,16))},w(kr,"NetworkSimplexPlacer/lambda$6$Type",1439),b(1440,1,De,k3n),o.Mb=function(e){return ko(),u(e,10).k==(Vn(),zt)},w(kr,"NetworkSimplexPlacer/lambda$7$Type",1440),b(1441,1,{},y3n),o.Kb=function(e){return ko(),new Tn(null,new p0(new ie(ce(Cl(u(e,10)).a.Kc(),new En))))},w(kr,"NetworkSimplexPlacer/lambda$8$Type",1441),b(1442,1,De,j3n),o.Mb=function(e){return ko(),Ebe(u(e,18))},w(kr,"NetworkSimplexPlacer/lambda$9$Type",1442),b(1424,1,vr,o8n),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Fie:null},o.Kf=function(e,t){bIe(u(e,36),t)};var Fie;w(kr,"SimpleNodePlacer",1424),b(185,1,{185:1},Wg),o.Ib=function(){var e;return e="",this.c==(fh(),mb)?e+=f3:this.c==y1&&(e+=s3),this.o==(Pf(),Rd)?e+=_B:this.o==Xf?e+="UP":e+="BALANCED",e},w(da,"BKAlignedLayout",185),b(523,22,{3:1,34:1,22:1,523:1},tX);var y1,mb,Bie=we(da,"BKAlignedLayout/HDirection",523,ke,Xge,t0e),Rie;b(522,22,{3:1,34:1,22:1,522:1},iX);var Rd,Xf,Kie=we(da,"BKAlignedLayout/VDirection",522,ke,Vge,i0e),_ie;b(1699,1,{},zCn),w(da,"BKAligner",1699),b(1702,1,{},iKn),w(da,"BKCompactor",1702),b(663,1,{663:1},E3n),o.a=0,w(da,"BKCompactor/ClassEdge",663),b(467,1,{467:1},Jyn),o.a=null,o.b=0,w(da,"BKCompactor/ClassNode",467),b(1427,1,vr,JCn),o.rg=function(e){return u(v(u(e,36),(W(),Hc)),21).Hc((pr(),cs))?Hie:null},o.Kf=function(e,t){ULe(this,u(e,36),t)},o.d=!1;var Hie;w(da,"BKNodePlacer",1427),b(1700,1,{},C3n),o.d=0,w(da,"NeighborhoodInformation",1700),b(1701,1,Ne,ukn),o.Ne=function(e,t){return mme(this,u(e,42),u(t,42))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(da,"NeighborhoodInformation/NeighborComparator",1701),b(823,1,{}),w(da,"ThresholdStrategy",823),b(1825,823,{},Qyn),o.wg=function(e,t,i){return this.a.o==(Pf(),Xf)?St:li},o.xg=function(){},w(da,"ThresholdStrategy/NullThresholdStrategy",1825),b(587,1,{587:1},QCn),o.c=!1,o.d=!1,w(da,"ThresholdStrategy/Postprocessable",587),b(1826,823,{},Yyn),o.wg=function(e,t,i){var r,c,s;return c=t==i,r=this.a.a[i.p]==t,c||r?(s=e,this.a.c==(fh(),mb)?(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))):(c&&(s=KF(this,t,!0)),!isNaN(s)&&!isFinite(s)&&r&&(s=KF(this,i,!1))),s):e},o.xg=function(){for(var e,t,i,r,c;this.d.b!=0;)c=u(f2e(this.d),587),r=PUn(this,c),r.a&&(e=r.a,i=on(this.a.f[this.a.g[c.b.p].p]),!(!i&&!fr(e)&&e.c.i.c==e.d.i.c)&&(t=NHn(this,c),t||Ole(this.e,c)));for(;this.e.a.c.length!=0;)NHn(this,u($Fn(this.e),587))},w(da,"ThresholdStrategy/SimpleThresholdStrategy",1826),b(645,1,{645:1,188:1,196:1},M3n),o.dg=function(){return Uxn(this)},o.qg=function(){return Uxn(this)};var YH;w(RR,"EdgeRouterFactory",645),b(1485,1,vr,s8n),o.rg=function(e){return eAe(u(e,36))},o.Kf=function(e,t){yIe(u(e,36),t)};var qie,Uie,Gie,zie,Xie,iln,Vie,Wie;w(RR,"OrthogonalEdgeRouter",1485),b(1478,1,vr,WCn),o.rg=function(e){return Eke(u(e,36))},o.Kf=function(e,t){UDe(this,u(e,36),t)};var Jie,Qie,Yie,Zie,Dj,nre;w(RR,"PolylineEdgeRouter",1478),b(1479,1,ph,A3n),o.Lb=function(e){return UQ(u(e,10))},o.Fb=function(e){return this===e},o.Mb=function(e){return UQ(u(e,10))},w(RR,"PolylineEdgeRouter/1",1479),b(1872,1,De,S3n),o.Mb=function(e){return u(e,132).c==(af(),Ea)},w(mf,"HyperEdgeCycleDetector/lambda$0$Type",1872),b(1873,1,{},P3n),o.Ze=function(e){return u(e,132).d},w(mf,"HyperEdgeCycleDetector/lambda$1$Type",1873),b(1874,1,De,I3n),o.Mb=function(e){return u(e,132).c==(af(),Ea)},w(mf,"HyperEdgeCycleDetector/lambda$2$Type",1874),b(1875,1,{},O3n),o.Ze=function(e){return u(e,132).d},w(mf,"HyperEdgeCycleDetector/lambda$3$Type",1875),b(1876,1,{},D3n),o.Ze=function(e){return u(e,132).d},w(mf,"HyperEdgeCycleDetector/lambda$4$Type",1876),b(1877,1,{},T3n),o.Ze=function(e){return u(e,132).d},w(mf,"HyperEdgeCycleDetector/lambda$5$Type",1877),b(118,1,{34:1,118:1},yk),o.Fd=function(e){return Ahe(this,u(e,118))},o.Fb=function(e){var t;return D(e,118)?(t=u(e,118),this.g==t.g):!1},o.Hb=function(){return this.g},o.Ib=function(){var e,t,i,r;for(e=new mo("{"),r=new C(this.n);r.a"+this.b+" ("+z1e(this.c)+")"},o.d=0,w(mf,"HyperEdgeSegmentDependency",132),b(528,22,{3:1,34:1,22:1,528:1},rX);var Ea,zw,ere=we(mf,"HyperEdgeSegmentDependency/DependencyType",528,ke,Wge,r0e),tre;b(1878,1,{},okn),w(mf,"HyperEdgeSegmentSplitter",1878),b(1879,1,{},Zjn),o.a=0,o.b=0,w(mf,"HyperEdgeSegmentSplitter/AreaRating",1879),b(339,1,{339:1},KL),o.a=0,o.b=0,o.c=0,w(mf,"HyperEdgeSegmentSplitter/FreeArea",339),b(1880,1,Ne,L3n),o.Ne=function(e,t){return zae(u(e,118),u(t,118))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(mf,"HyperEdgeSegmentSplitter/lambda$0$Type",1880),b(1881,1,re,MIn),o.Cd=function(e){k3e(this.a,this.d,this.c,this.b,u(e,118))},o.b=0,w(mf,"HyperEdgeSegmentSplitter/lambda$1$Type",1881),b(1882,1,{},N3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(mf,"HyperEdgeSegmentSplitter/lambda$2$Type",1882),b(1883,1,{},$3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(mf,"HyperEdgeSegmentSplitter/lambda$3$Type",1883),b(1884,1,{},x3n),o.Ye=function(e){return $(R(e))},w(mf,"HyperEdgeSegmentSplitter/lambda$4$Type",1884),b(664,1,{},lN),o.a=0,o.b=0,o.c=0,w(mf,"OrthogonalRoutingGenerator",664),b(1703,1,{},F3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).e,16))},w(mf,"OrthogonalRoutingGenerator/lambda$0$Type",1703),b(1704,1,{},B3n),o.Kb=function(e){return new Tn(null,new In(u(e,118).j,16))},w(mf,"OrthogonalRoutingGenerator/lambda$1$Type",1704),b(670,1,{}),w(KR,"BaseRoutingDirectionStrategy",670),b(1870,670,{},tjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),Fe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),Fe(f.a,r),q0(this,f,c,r,!1),s=t+p.o*i,c=p,r=new V(m,s),Fe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),Fe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return en(),ae},o.Bg=function(){return en(),Xn},w(KR,"NorthToSouthRoutingStrategy",1870),b(1871,670,{},ijn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t-e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(g,s),Fe(f.a,r),q0(this,f,c,r,!1),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(m,s),Fe(f.a,r),q0(this,f,c,r,!1),s=t-p.o*i,c=p,r=new V(m,s),Fe(f.a,r),q0(this,f,c,r,!1)),r=new V(j,s),Fe(f.a,r),q0(this,f,c,r,!1)))},o.zg=function(e){return e.i.n.a+e.n.a+e.a.a},o.Ag=function(){return en(),Xn},o.Bg=function(){return en(),ae},w(KR,"SouthToNorthRoutingStrategy",1871),b(1869,670,{},rjn),o.yg=function(e,t,i){var r,c,s,f,h,l,a,d,g,p,m,k,j;if(!(e.r&&!e.q))for(d=t+e.o*i,a=new C(e.n);a.avh&&(s=d,c=e,r=new V(s,g),Fe(f.a,r),q0(this,f,c,r,!0),p=e.r,p&&(m=$(R(Zo(p.e,0))),r=new V(s,m),Fe(f.a,r),q0(this,f,c,r,!0),s=t+p.o*i,c=p,r=new V(s,m),Fe(f.a,r),q0(this,f,c,r,!0)),r=new V(s,j),Fe(f.a,r),q0(this,f,c,r,!0)))},o.zg=function(e){return e.i.n.b+e.n.b+e.a.b},o.Ag=function(){return en(),Zn},o.Bg=function(){return en(),Wn},w(KR,"WestToEastRoutingStrategy",1869),b(828,1,{},Hen),o.Ib=function(){return ca(this.a)},o.b=0,o.c=!1,o.d=!1,o.f=0,w(jw,"NubSpline",828),b(418,1,{418:1},dqn,iOn),w(jw,"NubSpline/PolarCP",418),b(1480,1,vr,WRn),o.rg=function(e){return aye(u(e,36))},o.Kf=function(e,t){fLe(this,u(e,36),t)};var ire,rre,cre,ure,ore;w(jw,"SplineEdgeRouter",1480),b(274,1,{274:1},XM),o.Ib=function(){return this.a+" ->("+this.c+") "+this.b},o.c=0,w(jw,"SplineEdgeRouter/Dependency",274),b(465,22,{3:1,34:1,22:1,465:1},cX);var Ca,I2,sre=we(jw,"SplineEdgeRouter/SideToProcess",465,ke,e2e,c0e),fre;b(1481,1,De,R3n),o.Mb=function(e){return B5(),!u(e,131).o},w(jw,"SplineEdgeRouter/lambda$0$Type",1481),b(1482,1,{},K3n),o.Ze=function(e){return B5(),u(e,131).v+1},w(jw,"SplineEdgeRouter/lambda$1$Type",1482),b(1483,1,re,YCn),o.Cd=function(e){Abe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$2$Type",1483),b(1484,1,re,ZCn),o.Cd=function(e){Sbe(this.a,this.b,u(e,42))},w(jw,"SplineEdgeRouter/lambda$3$Type",1484),b(131,1,{34:1,131:1},A_n,Ven),o.Fd=function(e){return Ihe(this,u(e,131))},o.b=0,o.e=!1,o.f=0,o.g=0,o.j=!1,o.k=!1,o.n=0,o.o=!1,o.p=!1,o.q=!1,o.s=0,o.u=0,o.v=0,o.F=0,w(jw,"SplineSegment",131),b(468,1,{468:1},_3n),o.a=0,o.b=!1,o.c=!1,o.d=!1,o.e=!1,o.f=0,w(jw,"SplineSegment/EdgeInformation",468),b(1198,1,{},H3n),w(Ll,Gtn,1198),b(1199,1,Ne,q3n),o.Ne=function(e,t){return VEe(u(e,121),u(t,121))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Ll,EXn,1199),b(1197,1,{},wEn),w(Ll,"MrTree",1197),b(405,22,{3:1,34:1,22:1,405:1,188:1,196:1},pC),o.dg=function(){return V_n(this)},o.qg=function(){return V_n(this)};var LI,t9,i9,r9,rln=we(Ll,"TreeLayoutPhases",405,ke,i3e,u0e),hre;b(1112,205,yd,qAn),o.rf=function(e,t){var i,r,c,s,f,h,l,a;for(on(un(z(e,(lc(),Pln))))||X7((i=new Xv((c0(),new Qd(e))),i)),f=t.eh(qR),f.Ug("build tGraph",1),h=(l=new tk,Ur(l,e),U(l,(pt(),u9),e),a=new de,_Se(e,l,a),uPe(e,l,a),l),f.Vg(),f=t.eh(qR),f.Ug("Split graph",1),s=XSe(this.a,h),f.Vg(),c=new C(s);c.a"+td(this.c):"e_"+mt(this)},w(h8,"TEdge",65),b(121,137,{3:1,121:1,96:1,137:1},tk),o.Ib=function(){var e,t,i,r,c;for(c=null,r=ge(this.b,0);r.b!=r.d.c;)i=u(be(r),40),c+=(i.c==null||i.c.length==0?"n_"+i.g:"n_"+i.c)+` +`;for(t=ge(this.a,0);t.b!=t.d.c;)e=u(be(t),65),c+=(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e))+` +`;return c};var MNe=w(h8,"TGraph",121);b(643,508,{3:1,508:1,643:1,96:1,137:1}),w(h8,"TShape",643),b(40,643,{3:1,508:1,40:1,643:1,96:1,137:1},q$),o.Ib=function(){return td(this)};var NI=w(h8,"TNode",40);b(236,1,qh,sl),o.Jc=function(e){qi(this,e)},o.Kc=function(){var e;return e=ge(this.a.d,0),new sg(e)},w(h8,"TNode/2",236),b(329,1,Si,sg),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(be(this.a),65).c},o.Ob=function(){return Q9(this.a)},o.Qb=function(){p$(this.a)},w(h8,"TNode/2/1",329),b(1923,1,vt,J3n),o.Kf=function(e,t){RLe(this,u(e,121),t)},w(Rc,"CompactionProcessor",1923),b(1924,1,Ne,akn),o.Ne=function(e,t){return Tve(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$0$Type",1924),b(1925,1,De,eMn),o.Mb=function(e){return Dge(this.b,this.a,u(e,42))},o.a=0,o.b=0,w(Rc,"CompactionProcessor/lambda$1$Type",1925),b(1934,1,Ne,Q3n),o.Ne=function(e,t){return Ewe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$10$Type",1934),b(1935,1,Ne,Y3n),o.Ne=function(e,t){return F1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$11$Type",1935),b(1936,1,Ne,Z3n),o.Ne=function(e,t){return Cwe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$12$Type",1936),b(1926,1,De,dkn),o.Mb=function(e){return k1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$2$Type",1926),b(1927,1,De,bkn),o.Mb=function(e){return y1e(this.a,u(e,42))},o.a=0,w(Rc,"CompactionProcessor/lambda$3$Type",1927),b(1928,1,De,n4n),o.Mb=function(e){return u(e,40).c.indexOf(IS)==-1},w(Rc,"CompactionProcessor/lambda$4$Type",1928),b(1929,1,{},wkn),o.Kb=function(e){return Npe(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$5$Type",1929),b(1930,1,{},gkn),o.Kb=function(e){return H4e(this.a,u(e,40))},o.a=0,w(Rc,"CompactionProcessor/lambda$6$Type",1930),b(1931,1,Ne,pkn),o.Ne=function(e,t){return Z3e(this.a,u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$7$Type",1931),b(1932,1,Ne,mkn),o.Ne=function(e,t){return n4e(this.a,u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$8$Type",1932),b(1933,1,Ne,e4n),o.Ne=function(e,t){return B1e(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Rc,"CompactionProcessor/lambda$9$Type",1933),b(1921,1,vt,t4n),o.Kf=function(e,t){$Ae(u(e,121),t)},w(Rc,"DirectionProcessor",1921),b(1913,1,vt,HAn),o.Kf=function(e,t){rPe(this,u(e,121),t)},w(Rc,"FanProcessor",1913),b(1937,1,vt,i4n),o.Kf=function(e,t){EAe(u(e,121),t)},w(Rc,"GraphBoundsProcessor",1937),b(1938,1,{},r4n),o.Ye=function(e){return u(e,40).e.a},w(Rc,"GraphBoundsProcessor/lambda$0$Type",1938),b(1939,1,{},c4n),o.Ye=function(e){return u(e,40).e.b},w(Rc,"GraphBoundsProcessor/lambda$1$Type",1939),b(1940,1,{},u4n),o.Ye=function(e){return ile(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$2$Type",1940),b(1941,1,{},o4n),o.Ye=function(e){return tle(u(e,40))},w(Rc,"GraphBoundsProcessor/lambda$3$Type",1941),b(262,22,{3:1,34:1,22:1,262:1,196:1},u0),o.dg=function(){switch(this.g){case 0:return new mjn;case 1:return new HAn;case 2:return new pjn;case 3:return new a4n;case 4:return new f4n;case 8:return new s4n;case 5:return new t4n;case 6:return new b4n;case 7:return new J3n;case 9:return new i4n;case 10:return new w4n;default:throw M(new Gn(cR+(this.f!=null?this.f:""+this.g)))}};var cln,uln,oln,sln,fln,hln,lln,aln,dln,bln,ZH,TNe=we(Rc,uR,262,ke,xxn,o0e),lre;b(1920,1,vt,s4n),o.Kf=function(e,t){xDe(u(e,121),t)},w(Rc,"LevelCoordinatesProcessor",1920),b(1918,1,vt,f4n),o.Kf=function(e,t){iTe(this,u(e,121),t)},o.a=0,w(Rc,"LevelHeightProcessor",1918),b(1919,1,qh,h4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"LevelHeightProcessor/1",1919),b(1914,1,vt,pjn),o.Kf=function(e,t){pAe(this,u(e,121),t)},w(Rc,"LevelProcessor",1914),b(1915,1,De,l4n),o.Mb=function(e){return on(un(v(u(e,40),(pt(),Ma))))},w(Rc,"LevelProcessor/lambda$0$Type",1915),b(1916,1,vt,a4n),o.Kf=function(e,t){nEe(this,u(e,121),t)},o.a=0,w(Rc,"NeighborsProcessor",1916),b(1917,1,qh,d4n),o.Jc=function(e){qi(this,e)},o.Kc=function(){return Dn(),l4(),fv},w(Rc,"NeighborsProcessor/1",1917),b(1922,1,vt,b4n),o.Kf=function(e,t){iPe(this,u(e,121),t)},o.a=0,w(Rc,"NodePositionProcessor",1922),b(1912,1,vt,mjn),o.Kf=function(e,t){BIe(this,u(e,121),t)},w(Rc,"RootProcessor",1912),b(1942,1,vt,w4n),o.Kf=function(e,t){N9e(u(e,121),t)},w(Rc,"Untreeifyer",1942),b(392,22,{3:1,34:1,22:1,392:1},eL);var Lj,nq,wln,gln=we(Gy,"EdgeRoutingMode",392,ke,J2e,s0e),are,Nj,Dv,eq,pln,mln,tq,iq,vln,rq,kln,cq,c9,uq,$I,xI,Js,jf,Lv,u9,o9,j1,yln,dre,oq,Ma,$j,xj;b(862,1,ms,f8n),o.hf=function(e){vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Srn),""),wVn),"Turns on Tree compaction which decreases the size of the whole tree by placing nodes of multiple levels in one large level"),(_n(),!1)),(l1(),yi)),Gt),jn((pf(),xn))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Prn),""),"Edge End Texture Length"),"Should be set to the length of the texture at the end of an edge. This value can be used to improve the Edge Routing."),7),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Irn),""),"Tree Level"),"The index for the tree level the node is in"),Y(0)),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Orn),""),wVn),"When set to a positive number this option will force the algorithm to place the node to the specified position within the trees layer if weighting is set to constraint"),Y(-1)),Zr),Gi),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Drn),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),Cln),Pt),xln),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Lrn),""),"Edge Routing Mode"),"Chooses an Edge Routing algorithm."),jln),Pt),gln),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Nrn),""),"Search Order"),"Which search order to use when computing a spanning tree."),Eln),Pt),Bln),jn(xn)))),rzn((new a8n,e))};var bre,wre,gre,jln,pre,mre,Eln,vre,kre,Cln;w(Gy,"MrTreeMetaDataProvider",862),b(1006,1,ms,a8n),o.hf=function(e){rzn(e)};var yre,Mln,Tln,vb,Aln,Sln,sq,jre,Ere,Cre,Mre,Tre,Are,Sre,Pln,Iln,Oln,Pre,O2,FI,Dln,Ire,Lln,fq,Ore,Dre,Lre,Nln,Nre,Sh,$ln;w(Gy,"MrTreeOptions",1006),b(1007,1,{},g4n),o.sf=function(){var e;return e=new qAn,e},o.tf=function(e){},w(Gy,"MrTreeOptions/MrtreeFactory",1007),b(353,22,{3:1,34:1,22:1,353:1},mC);var hq,BI,lq,aq,xln=we(Gy,"OrderWeighting",353,ke,r3e,f0e),$re;b(433,22,{3:1,34:1,22:1,433:1},uX);var Fln,dq,Bln=we(Gy,"TreeifyingOrder",433,ke,Zge,h0e),xre;b(1486,1,vr,d8n),o.rg=function(e){return u(e,121),Fre},o.Kf=function(e,t){bve(this,u(e,121),t)};var Fre;w("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1486),b(1487,1,vr,b8n),o.rg=function(e){return u(e,121),Bre},o.Kf=function(e,t){yAe(this,u(e,121),t)};var Bre;w(Jm,"NodeOrderer",1487),b(1494,1,{},_se),o.td=function(e){return WSn(e)},w(Jm,"NodeOrderer/0methodref$lambda$6$Type",1494),b(1488,1,De,D4n),o.Mb=function(e){return _p(),on(un(v(u(e,40),(pt(),Ma))))},w(Jm,"NodeOrderer/lambda$0$Type",1488),b(1489,1,De,L4n),o.Mb=function(e){return _p(),u(v(u(e,40),(lc(),O2)),17).a<0},w(Jm,"NodeOrderer/lambda$1$Type",1489),b(1490,1,De,kkn),o.Mb=function(e){return qme(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$2$Type",1490),b(1491,1,De,vkn),o.Mb=function(e){return Fpe(this.a,u(e,40))},w(Jm,"NodeOrderer/lambda$3$Type",1491),b(1492,1,Ne,N4n),o.Ne=function(e,t){return ame(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Jm,"NodeOrderer/lambda$4$Type",1492),b(1493,1,De,$4n),o.Mb=function(e){return _p(),u(v(u(e,40),(pt(),iq)),17).a!=0},w(Jm,"NodeOrderer/lambda$5$Type",1493),b(1495,1,vr,l8n),o.rg=function(e){return u(e,121),Rre},o.Kf=function(e,t){ISe(this,u(e,121),t)},o.b=0;var Rre;w("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1495),b(1496,1,vr,h8n),o.rg=function(e){return u(e,121),Kre},o.Kf=function(e,t){lSe(u(e,121),t)};var Kre,ANe=w(po,"EdgeRouter",1496);b(1498,1,Ne,O4n),o.Ne=function(e,t){return jc(u(e,17).a,u(t,17).a)},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/0methodref$compare$Type",1498),b(1503,1,{},m4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/1methodref$doubleValue$Type",1503),b(1505,1,Ne,v4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/2methodref$compare$Type",1505),b(1507,1,Ne,k4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/3methodref$compare$Type",1507),b(1509,1,{},p4n),o.Ye=function(e){return $(R(e))},w(po,"EdgeRouter/4methodref$doubleValue$Type",1509),b(1511,1,Ne,y4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/5methodref$compare$Type",1511),b(1513,1,Ne,j4n),o.Ne=function(e,t){return bt($(R(e)),$(R(t)))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/6methodref$compare$Type",1513),b(1497,1,{},E4n),o.Kb=function(e){return kl(),u(v(u(e,40),(lc(),Sh)),17)},w(po,"EdgeRouter/lambda$0$Type",1497),b(1508,1,{},C4n),o.Kb=function(e){return Q1e(u(e,40))},w(po,"EdgeRouter/lambda$11$Type",1508),b(1510,1,{},tMn),o.Kb=function(e){return Mbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$13$Type",1510),b(1512,1,{},iMn),o.Kb=function(e){return Y1e(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$15$Type",1512),b(1514,1,Ne,M4n),o.Ne=function(e,t){return h9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$17$Type",1514),b(1515,1,Ne,T4n),o.Ne=function(e,t){return l9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$18$Type",1515),b(1516,1,Ne,A4n),o.Ne=function(e,t){return d9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$19$Type",1516),b(1499,1,De,ykn),o.Mb=function(e){return b2e(this.a,u(e,40))},o.a=0,w(po,"EdgeRouter/lambda$2$Type",1499),b(1517,1,Ne,S4n),o.Ne=function(e,t){return a9e(u(e,65),u(t,65))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$20$Type",1517),b(1500,1,Ne,P4n),o.Ne=function(e,t){return lbe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$3$Type",1500),b(1501,1,Ne,I4n),o.Ne=function(e,t){return abe(u(e,40),u(t,40))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"EdgeRouter/lambda$4$Type",1501),b(1502,1,{},x4n),o.Kb=function(e){return Z1e(u(e,40))},w(po,"EdgeRouter/lambda$5$Type",1502),b(1504,1,{},rMn),o.Kb=function(e){return Tbe(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$7$Type",1504),b(1506,1,{},cMn),o.Kb=function(e){return nae(this.b,this.a,u(e,40))},o.a=0,o.b=0,w(po,"EdgeRouter/lambda$9$Type",1506),b(675,1,{675:1},FRn),o.e=0,o.f=!1,o.g=!1,w(po,"MultiLevelEdgeNodeNodeGap",675),b(1943,1,Ne,F4n),o.Ne=function(e,t){return C2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$0$Type",1943),b(1944,1,Ne,B4n),o.Ne=function(e,t){return M2e(u(e,240),u(t,240))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(po,"MultiLevelEdgeNodeNodeGap/lambda$1$Type",1944);var D2;b(501,22,{3:1,34:1,22:1,501:1,188:1,196:1},oX),o.dg=function(){return EBn(this)},o.qg=function(){return EBn(this)};var RI,L2,Rln=we($rn,"RadialLayoutPhases",501,ke,zge,l0e),_re;b(1113,205,yd,bEn),o.rf=function(e,t){var i,r,c,s,f,h;if(i=sqn(this,e),t.Ug("Radial layout",i.c.length),on(un(z(e,(oa(),Jln))))||X7((r=new Xv((c0(),new Qd(e))),r)),h=wye(e),ht(e,(Tg(),D2),h),!h)throw M(new Gn("The given graph is not a tree!"));for(c=$(R(z(e,HI))),c==0&&(c=H_n(e)),ht(e,HI,c),f=new C(sqn(this,e));f.a=3)for(X=u(L(N,0),27),tn=u(L(N,1),27),s=0;s+2=X.f+tn.f+d||tn.f>=_.f+X.f+d){yn=!0;break}else++s;else yn=!0;if(!yn){for(p=N.i,h=new ne(N);h.e!=h.i.gc();)f=u(ue(h),27),ht(f,(He(),Jj),Y(p)),--p;BUn(e,new op),t.Vg();return}for(i=(H7(this.a),hf(this.a,(XT(),Bj),u(z(e,M1n),188)),hf(this.a,qI,u(z(e,v1n),188)),hf(this.a,Mq,u(z(e,j1n),188)),MX(this.a,(Fn=new ii,Ke(Fn,Bj,(rA(),Sq)),Ke(Fn,qI,Aq),on(un(z(e,p1n)))&&Ke(Fn,Bj,Tq),Fn)),gy(this.a,e)),a=1/i.c.length,k=new C(i);k.a0&&XFn((zn(t-1,e.length),e.charCodeAt(t-1)),NXn);)--t;if(r>=t)throw M(new Gn("The given string does not contain any numbers."));if(c=ww((Fi(r,t,e.length),e.substr(r,t-r)),`,|;|\r| +`),c.length!=2)throw M(new Gn("Exactly two numbers are expected, "+c.length+" were found."));try{this.a=sw(fw(c[0])),this.b=sw(fw(c[1]))}catch(s){throw s=It(s),D(s,130)?(i=s,M(new Gn($Xn+i))):M(s)}},o.Ib=function(){return"("+this.a+","+this.b+")"},o.a=0,o.b=0;var Ei=w(Ky,"KVector",8);b(75,67,{3:1,4:1,20:1,31:1,56:1,16:1,67:1,15:1,75:1,423:1},Mu,GE,aAn),o.Pc=function(){return O6e(this)},o.cg=function(e){var t,i,r,c,s,f;r=ww(e,`,|;|\\(|\\)|\\[|\\]|\\{|\\}| | | +`),vo(this);try{for(i=0,s=0,c=0,f=0;i0&&(s%2==0?c=sw(r[i]):f=sw(r[i]),s>0&&s%2!=0&&Fe(this,new V(c,f)),++s),++i}catch(h){throw h=It(h),D(h,130)?(t=h,M(new Gn("The given string does not match the expected format for vectors."+t))):M(h)}},o.Ib=function(){var e,t,i;for(e=new mo("("),t=ge(this,0);t.b!=t.d.c;)i=u(be(t),8),Re(e,i.a+","+i.b),t.b!=t.d.c&&(e.a+="; ");return(e.a+=")",e).a};var san=w(Ky,"KVectorChain",75);b(255,22,{3:1,34:1,22:1,255:1},v6);var Vq,ZI,nO,qj,Uj,eO,fan=we(uo,"Alignment",255,ke,S4e,$0e),yue;b(991,1,ms,E8n),o.hf=function(e){yUn(e)};var han,Wq,jue,lan,aan,Eue,dan,Cue,Mue,ban,wan,Tue;w(uo,"BoxLayouterOptions",991),b(992,1,{},zmn),o.sf=function(){var e;return e=new Wmn,e},o.tf=function(e){},w(uo,"BoxLayouterOptions/BoxFactory",992),b(298,22,{3:1,34:1,22:1,298:1},k6);var w9,Jq,g9,p9,m9,Qq,Yq=we(uo,"ContentAlignment",298,ke,P4e,x0e),Aue;b(699,1,ms,cG),o.hf=function(e){vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,xVn),""),"Layout Algorithm"),"Select a specific layout algorithm."),(l1(),$2)),fn),jn((pf(),xn))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,FVn),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),Vf),INe),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,rrn),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),gan),Pt),fan),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,l3),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,pcn),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Vf),san),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,MS),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),man),L3),Yq),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Uy),""),"Debug Mode"),"Whether additional debug information shall be generated."),(_n(),!1)),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xR),""),Btn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),van),Pt),y9),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qy),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),jan),Pt),aU),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wcn),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,CS),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),Man),Pt),ldn),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,W0),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),Nan),Vf),$on),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,i8),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,AS),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,r8),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,tR),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),Ran),Pt),bdn),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,TS),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Vf),Ei),yt(pi,A(T(Zh,1),G,170,0,[Kd,E1]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,Ny),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),Zr),Gi),yt(pi,A(T(Zh,1),G,170,0,[Ph]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,uS),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,t8),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,wrn),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),Tan),Vf),san),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mrn),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vrn),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,iNe),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),Vf),$Ne),yt(xn,A(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yrn),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),Aan),Vf),Non),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,trn),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),yi),Gt),yt(pi,A(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,BVn),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),Qi),si),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,RVn),""),"Child Area Width"),"The width of the area occupied by the laid out children of a node."),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,KVn),""),"Child Area Height"),"The height of the area occupied by the laid out children of a node."),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$y),""),OVn),"Turns topdown layout on and off. If this option is enabled, hierarchical layout will be computed first for the root node and then for its children recursively. Layouts are then scaled down to fit the area provided by their parents. Graphs must follow a certain structure for topdown layout to work properly. {@link TopdownNodeTypes.PARALLEL_NODE} nodes must have children of type {@link TopdownNodeTypes.HIERARCHICAL_NODE} and must define {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} for their children. Furthermore they need to be laid out using an algorithm that is a {@link TopdownLayoutProvider}. Hierarchical nodes can also be parents of other hierarchical nodes and can optionally use a {@link TopdownSizeApproximator} to dynamically set sizes during topdown layout. In this case {@link topdown.hierarchicalNodeWidth} and {@link topdown.hierarchicalNodeAspectRatio} should be set on the node itself rather than the parent. The values are then used by the size approximator as base values. Hierarchical nodes require the layout option {@link nodeSize.fixedGraphSize} to be true to prevent the algorithm used there from resizing the hierarchical node. This option is not supported if 'Hierarchy Handling' is set to 'INCLUDE_CHILDREN'"),!1),yi),Gt),jn(xn)))),ri(e,$y,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,_Vn),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,HVn),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),Y(100)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,qVn),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,UVn),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),Y(4e3)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,GVn),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),Y(400)),Zr),Gi),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zVn),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,XVn),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,VVn),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WVn),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,gcn),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),pan),Pt),Cdn),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Gin),qf),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zin),qf),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,WB),qf),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xin),qf),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,eR),qf),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,$R),qf),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vin),qf),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Qin),qf),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Win),qf),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Jin),qf),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,yw),qf),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Yin),qf),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),Qi),si),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Zin),qf),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),Qi),si),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,nrn),qf),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Vf),boe),yt(pi,A(T(Zh,1),G,170,0,[Ph,Kd,E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,jrn),qf),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),Jan),Vf),Non),jn(xn)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,BR),YVn),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),Zr),Gi),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),ri(e,BR,FR,xue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,FR),YVn),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),$an),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,orn),ZVn),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),Pan),Vf),$on),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Xm),ZVn),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),Ian),L3),yr),yt(pi,A(T(Zh,1),G,170,0,[E1]))))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,hrn),FS),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),Fan),Pt),M9),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,lrn),FS),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),Pt),M9),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,arn),FS),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),Pt),M9),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,drn),FS),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),Pt),M9),jn(pi)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,brn),FS),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),Pt),M9),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,r2),uK),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Oan),L3),S9),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,a3),uK),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),Lan),L3),gdn),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,d3),uK),"Node Size Minimum"),"The minimal size to which a node can be reduced."),Dan),Vf),Ei),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,zm),uK),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),yi),Gt),jn(xn)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,grn),NR),"Edge Label Placement"),"Gives a hint on where to put edge labels."),kan),Pt),Zan),jn(E1)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,oS),NR),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),yi),Gt),jn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,rNe),"font"),"Font Name"),"Font name used for a label."),$2),fn),jn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,JVn),"font"),"Font Size"),"Font size used for a label."),Zr),Gi),jn(E1)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,krn),oK),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),Vf),Ei),jn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,prn),oK),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),Zr),Gi),jn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,irn),oK),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),Han),Pt),lr),jn(Kd)))),vn(e,new ln(pn(gn(mn(an(wn(dn(bn(new hn,ern),oK),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),Qi),si),jn(Kd)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Vm),kcn),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),Kan),L3),oO),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,srn),kcn),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,frn),kcn),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,xy),Xy),"Topdown Scale Factor"),"The scaling factor to be applied to the nodes laid out within the node in recursive topdown layout. The difference to 'Scale Factor' is that the node itself is not scaled. This value has to be set on hierarchical nodes."),1),Qi),si),jn(xn)))),ri(e,xy,J0,Uue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,mcn),Xy),"Topdown Size Approximator"),"The size approximator to be used to set sizes of hierarchical nodes during topdown layout. The default value is null, which results in nodes keeping whatever size is defined for them e.g. through parent parallel node or by manually setting the size."),null),Pt),dO),jn(pi)))),ri(e,mcn,J0,Gue),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,Fy),Xy),"Topdown Hierarchical Node Width"),"The fixed size of a hierarchical node when using topdown layout. If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),150),Qi),si),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),ri(e,Fy,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,By),Xy),"Topdown Hierarchical Node Aspect Ratio"),"The fixed aspect ratio of a hierarchical node when using topdown layout. Default is 1/sqrt(2). If this value is set on a parallel node it applies to its children, when set on a hierarchical node it applies to the node itself."),1.414),Qi),si),yt(xn,A(T(Zh,1),G,170,0,[pi]))))),ri(e,By,J0,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,J0),Xy),"Topdown Node Type"),"The different node types used for topdown layout. If the node type is set to {@link TopdownNodeTypes.PARALLEL_NODE} the algorithm must be set to a {@link TopdownLayoutProvider} such as {@link TopdownPacking}. The {@link nodeSize.fixedGraphSize} option is technically only required for hierarchical nodes."),null),Pt),mdn),jn(pi)))),ri(e,J0,zm,null),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,vcn),Xy),"Topdown Scale Cap"),"Determines the upper limit for the topdown scale factor. The default value is 1.0 which ensures that nested children never end up appearing larger than their parents in terms of unit sizes such as the font size. If the limit is larger, nodes will fully utilize the available space, but it is counteriniuitive for inner nodes to have a larger scale than outer nodes."),1),Qi),si),jn(xn)))),ri(e,vcn,J0,que),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,crn),nWn),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),yi),Gt),jn(pi)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,urn),nWn),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),yi),Gt),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,JB),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),Qi),si),jn(Ph)))),vn(e,new ln(pn(gn(mn(Sn(an(wn(dn(bn(new hn,QVn),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),Can),Pt),cdn),jn(Ph)))),f6(e,new Np(r6(u4(c4(new tp,Yn),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),f6(e,new Np(r6(u4(c4(new tp,"org.eclipse.elk.orthogonal"),"Orthogonal"),`Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`))),f6(e,new Np(r6(u4(c4(new tp,cu),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),f6(e,new Np(r6(u4(c4(new tp,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),f6(e,new Np(r6(u4(c4(new tp,gVn),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),f6(e,new Np(r6(u4(c4(new tp,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),f6(e,new Np(r6(u4(c4(new tp,es),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),uUn((new C8n,e)),yUn((new E8n,e)),Nqn((new M8n,e))};var $v,Sue,gan,x2,Pue,Iue,pan,F2,B2,Oue,Gj,man,zj,_d,van,Zq,nU,kan,yan,jan,Ean,Can,Due,R2,Man,Lue,Xj,eU,Vj,tU,kb,Tan,xv,Aan,San,Pan,K2,Ian,Hd,Oan,Vw,_2,Dan,Ta,Lan,tO,Wj,C1,Nan,Nue,$an,$ue,xue,xan,Fan,iU,rU,cU,uU,Ban,oo,v9,Ran,oU,sU,Ww,Kan,_an,H2,Han,N3,Jj,fU,q2,Fue,hU,Bue,Rue,qan,Kue,Uan,Gan,$3,zan,iO,Xan,Van,qd,_ue,Wan,Jan,Qan,rO,Qj,k9,x3,Hue,que,cO,Uue,Yan,Gue;w(uo,"CoreOptions",699),b(88,22,{3:1,34:1,22:1,88:1},p7);var Wf,Br,Xr,Jf,us,y9=we(uo,Btn,88,ke,L3e,F0e),zue;b(278,22,{3:1,34:1,22:1,278:1},fL);var Fv,Jw,Bv,Zan=we(uo,"EdgeLabelPlacement",278,ke,spe,B0e),Xue;b(223,22,{3:1,34:1,22:1,223:1},kC);var Rv,Yj,F3,lU,aU=we(uo,"EdgeRouting",223,ke,s3e,R0e),Vue;b(321,22,{3:1,34:1,22:1,321:1},y6);var ndn,edn,tdn,idn,dU,rdn,cdn=we(uo,"EdgeType",321,ke,A4e,K0e),Wue;b(989,1,ms,C8n),o.hf=function(e){uUn(e)};var udn,odn,sdn,fdn,Jue,hdn,j9;w(uo,"FixedLayouterOptions",989),b(990,1,{},Xmn),o.sf=function(){var e;return e=new rvn,e},o.tf=function(e){},w(uo,"FixedLayouterOptions/FixedFactory",990),b(346,22,{3:1,34:1,22:1,346:1},hL);var M1,uO,E9,ldn=we(uo,"HierarchyHandling",346,ke,upe,_0e),Que;b(291,22,{3:1,34:1,22:1,291:1},yC);var nl,Aa,Zj,nE,Yue=we(uo,"LabelSide",291,ke,o3e,H0e),Zue;b(95,22,{3:1,34:1,22:1,95:1},bg);var xl,Qs,Cs,Ys,Lo,Zs,Ms,el,nf,yr=we(uo,"NodeLabelPlacement",95,ke,Sme,q0e),noe;b(256,22,{3:1,34:1,22:1,256:1},m7);var adn,C9,Sa,ddn,eE,M9=we(uo,"PortAlignment",256,ke,V3e,U0e),eoe;b(101,22,{3:1,34:1,22:1,101:1},j6);var Ud,qc,tl,Kv,Qf,Pa,bdn=we(uo,"PortConstraints",101,ke,T4e,G0e),toe;b(279,22,{3:1,34:1,22:1,279:1},E6);var T9,A9,Fl,tE,Ia,B3,oO=we(uo,"PortLabelPlacement",279,ke,M4e,z0e),ioe;b(64,22,{3:1,34:1,22:1,64:1},v7);var Zn,Xn,os,ss,pu,su,Yf,ef,Wu,xu,Uc,Ju,mu,vu,tf,No,$o,Ts,ae,sc,Wn,lr=we(uo,"PortSide",64,ke,N3e,X0e),roe;b(993,1,ms,M8n),o.hf=function(e){Nqn(e)};var coe,uoe,wdn,ooe,soe;w(uo,"RandomLayouterOptions",993),b(994,1,{},Vmn),o.sf=function(){var e;return e=new evn,e},o.tf=function(e){},w(uo,"RandomLayouterOptions/RandomFactory",994),b(386,22,{3:1,34:1,22:1,386:1},jC);var Qw,iE,rE,Gd,S9=we(uo,"SizeConstraint",386,ke,u3e,V0e),foe;b(264,22,{3:1,34:1,22:1,264:1},wg);var cE,sO,_v,bU,uE,P9,fO,hO,lO,gdn=we(uo,"SizeOptions",264,ke,Kme,W0e),hoe;b(280,22,{3:1,34:1,22:1,280:1},lL);var Yw,pdn,aO,mdn=we(uo,"TopdownNodeTypes",280,ke,fpe,J0e),loe;b(347,22,ycn);var vdn,kdn,dO=we(uo,"TopdownSizeApproximator",347,ke,r2e,Y0e);b(987,347,ycn,VSn),o.Tg=function(e){return CRn(e)},we(uo,"TopdownSizeApproximator/1",987,dO,null,null),b(988,347,ycn,LPn),o.Tg=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn,Fn;for(t=u(z(e,(He(),q2)),143),tn=(B1(),m=new Yv,m),uy(tn,e),yn=new de,s=new ne((!e.a&&(e.a=new q(Ye,e,10,11)),e.a));s.e!=s.i.gc();)r=u(ue(s),27),O=(p=new Yv,p),SA(O,tn),uy(O,r),Fn=CRn(r),kg(O,y.Math.max(r.g,Fn.a),y.Math.max(r.f,Fn.b)),Vc(yn.f,r,O);for(c=new ne((!e.a&&(e.a=new q(Ye,e,10,11)),e.a));c.e!=c.i.gc();)for(r=u(ue(c),27),d=new ne((!r.e&&(r.e=new Nn(Vt,r,7,4)),r.e));d.e!=d.i.gc();)a=u(ue(d),74),_=u(Kr(wr(yn.f,r)),27),X=u(ee(yn,L((!a.c&&(a.c=new Nn(he,a,5,8)),a.c),0)),27),N=(g=new HO,g),ve((!N.b&&(N.b=new Nn(he,N,4,7)),N.b),_),ve((!N.c&&(N.c=new Nn(he,N,5,8)),N.c),X),AA(N,At(_)),uy(N,a);j=u(z7(t.f),205);try{j.rf(tn,new ovn),hIn(t.f,j)}catch(Rn){throw Rn=It(Rn),D(Rn,103)?(k=Rn,M(k)):M(Rn)}return Lf(tn,B2)||Lf(tn,F2)||otn(tn),l=$(R(z(tn,B2))),h=$(R(z(tn,F2))),f=l/h,i=$(R(z(tn,Qj)))*y.Math.sqrt((!tn.a&&(tn.a=new q(Ye,tn,10,11)),tn.a).i),kn=u(z(tn,C1),107),I=kn.b+kn.c+1,S=kn.d+kn.a+1,new V(y.Math.max(I,i),y.Math.max(S,i/f))},we(uo,"TopdownSizeApproximator/2",988,dO,null,null);var aoe;b(344,1,{871:1},op),o.Ug=function(e,t){return FKn(this,e,t)},o.Vg=function(){u_n(this)},o.Wg=function(){return this.q},o.Xg=function(){return this.f?TN(this.f):null},o.Yg=function(){return TN(this.a)},o.Zg=function(){return this.p},o.$g=function(){return!1},o._g=function(){return this.n},o.ah=function(){return this.p!=null&&!this.b},o.bh=function(e){var t;this.n&&(t=e,nn(this.f,t))},o.dh=function(e,t){var i,r;this.n&&e&&Cpe(this,(i=new GPn,r=IF(i,e),cDe(i),r),(LT(),gU))},o.eh=function(e){var t;return this.b?null:(t=fme(this,this.g),Fe(this.a,t),t.i=this,this.d=e,t)},o.fh=function(e){e>0&&!this.b&&CQ(this,e)},o.b=!1,o.c=0,o.d=-1,o.e=null,o.f=null,o.g=-1,o.j=!1,o.k=!1,o.n=!1,o.o=0,o.q=0,o.r=0,w(dc,"BasicProgressMonitor",344),b(717,205,yd,Wmn),o.rf=function(e,t){BUn(e,t)},w(dc,"BoxLayoutProvider",717),b(983,1,Ne,Lkn),o.Ne=function(e,t){return cTe(this,u(e,27),u(t,27))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},o.a=!1,w(dc,"BoxLayoutProvider/1",983),b(163,1,{163:1},hT,mAn),o.Ib=function(){return this.c?Een(this.c):ca(this.b)},w(dc,"BoxLayoutProvider/Group",163),b(320,22,{3:1,34:1,22:1,320:1},EC);var ydn,jdn,Edn,wU,Cdn=we(dc,"BoxLayoutProvider/PackingMode",320,ke,f3e,Z0e),doe;b(984,1,Ne,Jmn),o.Ne=function(e,t){return Cge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$0$Type",984),b(985,1,Ne,Qmn),o.Ne=function(e,t){return gge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$1$Type",985),b(986,1,Ne,Ymn),o.Ne=function(e,t){return pge(u(e,163),u(t,163))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(dc,"BoxLayoutProvider/lambda$2$Type",986),b(1384,1,{845:1},Zmn),o.Mg=function(e,t){return nC(),!D(t,167)||vEn((qp(),u(e,167)),t)},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1384),b(1385,1,re,Nkn),o.Cd=function(e){N6e(this.a,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1385),b(1386,1,re,tvn),o.Cd=function(e){u(e,96),nC()},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1386),b(1390,1,re,$kn),o.Cd=function(e){tve(this.a,u(e,96))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1390),b(1388,1,De,fMn),o.Mb=function(e){return w6e(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1388),b(1387,1,De,hMn),o.Mb=function(e){return J1e(this.a,this.b,u(e,845))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1387),b(1389,1,re,lMn),o.Cd=function(e){fwe(this.a,this.b,u(e,149))},w(dc,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1389),b(947,1,{},ivn),o.Kb=function(e){return uTn(e)},o.Fb=function(e){return this===e},w(dc,"ElkUtil/lambda$0$Type",947),b(948,1,re,aMn),o.Cd=function(e){sCe(this.a,this.b,u(e,74))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$1$Type",948),b(949,1,re,dMn),o.Cd=function(e){Zfe(this.a,this.b,u(e,166))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$2$Type",949),b(950,1,re,bMn),o.Cd=function(e){Vle(this.a,this.b,u(e,135))},o.a=0,o.b=0,w(dc,"ElkUtil/lambda$3$Type",950),b(951,1,re,xkn),o.Cd=function(e){Ibe(this.a,u(e,377))},w(dc,"ElkUtil/lambda$4$Type",951),b(325,1,{34:1,325:1},Pfe),o.Fd=function(e){return E1e(this,u(e,242))},o.Fb=function(e){var t;return D(e,325)?(t=u(e,325),this.a==t.a):!1},o.Hb=function(){return wi(this.a)},o.Ib=function(){return this.a+" (exclusive)"},o.a=0,w(dc,"ExclusiveBounds/ExclusiveLowerBound",325),b(1119,205,yd,rvn),o.rf=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I,O,N,_,X,tn,yn,kn;for(t.Ug("Fixed Layout",1),s=u(z(e,(He(),yan)),223),g=0,p=0,O=new ne((!e.a&&(e.a=new q(Ye,e,10,11)),e.a));O.e!=O.i.gc();){for(S=u(ue(O),27),kn=u(z(S,(NT(),j9)),8),kn&&(Ro(S,kn.a,kn.b),u(z(S,odn),181).Hc((go(),Qw))&&(m=u(z(S,fdn),8),m.a>0&&m.b>0&&G0(S,m.a,m.b,!0,!0))),g=y.Math.max(g,S.i+S.g),p=y.Math.max(p,S.j+S.f),a=new ne((!S.n&&(S.n=new q(Ar,S,1,7)),S.n));a.e!=a.i.gc();)h=u(ue(a),135),kn=u(z(h,j9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,S.i+h.i+h.g),p=y.Math.max(p,S.j+h.j+h.f);for(X=new ne((!S.c&&(S.c=new q(Qu,S,9,9)),S.c));X.e!=X.i.gc();)for(_=u(ue(X),123),kn=u(z(_,j9),8),kn&&Ro(_,kn.a,kn.b),tn=S.i+_.i,yn=S.j+_.j,g=y.Math.max(g,tn+_.g),p=y.Math.max(p,yn+_.f),l=new ne((!_.n&&(_.n=new q(Ar,_,1,7)),_.n));l.e!=l.i.gc();)h=u(ue(l),135),kn=u(z(h,j9),8),kn&&Ro(h,kn.a,kn.b),g=y.Math.max(g,tn+h.i+h.g),p=y.Math.max(p,yn+h.j+h.f);for(c=new ie(ce(Al(S).a.Kc(),new En));pe(c);)i=u(fe(c),74),d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b);for(r=new ie(ce(cy(S).a.Kc(),new En));pe(r);)i=u(fe(r),74),At(Kh(i))!=e&&(d=YGn(i),g=y.Math.max(g,d.a),p=y.Math.max(p,d.b))}if(s==(El(),Rv))for(I=new ne((!e.a&&(e.a=new q(Ye,e,10,11)),e.a));I.e!=I.i.gc();)for(S=u(ue(I),27),r=new ie(ce(Al(S).a.Kc(),new En));pe(r);)i=u(fe(r),74),f=hPe(i),f.b==0?ht(i,kb,null):ht(i,kb,f);on(un(z(e,(NT(),sdn))))||(N=u(z(e,Jue),107),j=g+N.b+N.c,k=p+N.d+N.a,G0(e,j,k,!0,!0)),t.Vg()},w(dc,"FixedLayoutProvider",1119),b(385,137,{3:1,423:1,385:1,96:1,137:1},_O,JNn),o.cg=function(e){var t,i,r,c,s,f,h,l,a;if(e)try{for(l=ww(e,";,;"),s=l,f=0,h=s.length;f>16&ui|t^r<<16},o.Kc=function(){return new Fkn(this)},o.Ib=function(){return this.a==null&&this.b==null?"pair(null,null)":this.a==null?"pair(null,"+Jr(this.b)+")":this.b==null?"pair("+Jr(this.a)+",null)":"pair("+Jr(this.a)+","+Jr(this.b)+")"},w(dc,"Pair",42),b(995,1,Si,Fkn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return!this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)},o.Pb=function(){if(!this.c&&!this.b&&this.a.a!=null)return this.b=!0,this.a.a;if(!this.c&&this.a.b!=null)return this.c=!0,this.a.b;throw M(new nc)},o.Qb=function(){throw this.c&&this.a.b!=null?this.a.b=null:this.b&&this.a.a!=null&&(this.a.a=null),M(new Cu)},o.b=!1,o.c=!1,w(dc,"Pair/1",995),b(455,1,{455:1},TIn),o.Fb=function(e){return mc(this.a,u(e,455).a)&&mc(this.c,u(e,455).c)&&mc(this.d,u(e,455).d)&&mc(this.b,u(e,455).b)},o.Hb=function(){return Ik(A(T(ki,1),Bn,1,5,[this.a,this.c,this.d,this.b]))},o.Ib=function(){return"("+this.a+ur+this.c+ur+this.d+ur+this.b+")"},w(dc,"Quadruple",455),b(1108,205,yd,evn),o.rf=function(e,t){var i,r,c,s,f;if(t.Ug("Random Layout",1),(!e.a&&(e.a=new q(Ye,e,10,11)),e.a).i==0){t.Vg();return}s=u(z(e,(YY(),ooe)),17),s&&s.a!=0?c=new qM(s.a):c=new dx,i=J9(R(z(e,coe))),f=J9(R(z(e,soe))),r=u(z(e,uoe),107),SDe(e,c,i,f,r),t.Vg()},w(dc,"RandomLayoutProvider",1108),b(240,1,{240:1},_L),o.Fb=function(e){return mc(this.a,u(e,240).a)&&mc(this.b,u(e,240).b)&&mc(this.c,u(e,240).c)},o.Hb=function(){return Ik(A(T(ki,1),Bn,1,5,[this.a,this.b,this.c]))},o.Ib=function(){return"("+this.a+ur+this.b+ur+this.c+")"},w(dc,"Triple",240);var poe;b(562,1,{}),o.Lf=function(){return new V(this.f.i,this.f.j)},o.of=function(e){return nOn(e,(He(),oo))?z(this.f,moe):z(this.f,e)},o.Mf=function(){return new V(this.f.g,this.f.f)},o.Nf=function(){return this.g},o.pf=function(e){return Lf(this.f,e)},o.Of=function(e){eu(this.f,e.a),tu(this.f,e.b)},o.Pf=function(e){I0(this.f,e.a),P0(this.f,e.b)},o.Qf=function(e){this.g=e},o.g=0;var moe;w(d8,"ElkGraphAdapters/AbstractElkGraphElementAdapter",562),b(563,1,{853:1},DE),o.Rf=function(){var e,t;if(!this.b)for(this.b=RM(jM(this.a).i),t=new ne(jM(this.a));t.e!=t.i.gc();)e=u(ue(t),135),nn(this.b,new pD(e));return this.b},o.b=null,w(d8,"ElkGraphAdapters/ElkEdgeAdapter",563),b(289,562,{},Qd),o.Sf=function(){return zRn(this)},o.a=null,w(d8,"ElkGraphAdapters/ElkGraphAdapter",289),b(640,562,{187:1},pD),w(d8,"ElkGraphAdapters/ElkLabelAdapter",640),b(639,562,{695:1},ML),o.Rf=function(){return w7e(this)},o.Vf=function(){var e;return e=u(z(this.f,(He(),xv)),140),!e&&(e=new Qv),e},o.Xf=function(){return g7e(this)},o.Zf=function(e){var t;t=new qL(e),ht(this.f,(He(),xv),t)},o.$f=function(e){ht(this.f,(He(),C1),new HV(e))},o.Tf=function(){return this.d},o.Uf=function(){var e,t;if(!this.a)for(this.a=new Z,t=new ie(ce(cy(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=new Z,t=new ie(ce(Al(u(this.f,27)).a.Kc(),new En));pe(t);)e=u(fe(t),74),nn(this.c,new DE(e));return this.c},o.Yf=function(){return AM(u(this.f,27)).i!=0||on(un(u(this.f,27).of((He(),Xj))))},o._f=function(){V4e(this,(c0(),poe))},o.a=null,o.b=null,o.c=null,o.d=null,o.e=null,w(d8,"ElkGraphAdapters/ElkNodeAdapter",639),b(1284,562,{852:1},Bkn),o.Rf=function(){return C7e(this)},o.Uf=function(){var e,t;if(!this.a)for(this.a=Dh(u(this.f,123).hh().i),t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)e=u(ue(t),74),nn(this.a,new DE(e));return this.a},o.Wf=function(){var e,t;if(!this.c)for(this.c=Dh(u(this.f,123).ih().i),t=new ne(u(this.f,123).ih());t.e!=t.i.gc();)e=u(ue(t),74),nn(this.c,new DE(e));return this.c},o.ag=function(){return u(u(this.f,123).of((He(),H2)),64)},o.bg=function(){var e,t,i,r,c,s,f,h;for(r=Sf(u(this.f,123)),i=new ne(u(this.f,123).ih());i.e!=i.i.gc();)for(e=u(ue(i),74),h=new ne((!e.c&&(e.c=new Nn(he,e,5,8)),e.c));h.e!=h.i.gc();){if(f=u(ue(h),84),Yb(Gr(f),r))return!0;if(Gr(f)==r&&on(un(z(e,(He(),eU)))))return!0}for(t=new ne(u(this.f,123).hh());t.e!=t.i.gc();)for(e=u(ue(t),74),s=new ne((!e.b&&(e.b=new Nn(he,e,4,7)),e.b));s.e!=s.i.gc();)if(c=u(ue(s),84),Yb(Gr(c),r))return!0;return!1},o.a=null,o.b=null,o.c=null,w(d8,"ElkGraphAdapters/ElkPortAdapter",1284),b(1285,1,Ne,nvn),o.Ne=function(e,t){return tSe(u(e,123),u(t,123))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(d8,"ElkGraphAdapters/PortComparator",1285);var Oa=Nt(ts,"EObject"),Hv=Nt(o2,iWn),xo=Nt(o2,rWn),oE=Nt(o2,cWn),sE=Nt(o2,"ElkShape"),he=Nt(o2,uWn),Vt=Nt(o2,jcn),Mt=Nt(o2,oWn),fE=Nt(ts,sWn),I9=Nt(ts,"EFactory"),voe,pU=Nt(ts,fWn),Ef=Nt(ts,"EPackage"),Ti,koe,yoe,Sdn,bO,joe,Pdn,Idn,Odn,il,Eoe,Coe,Ar=Nt(o2,Ecn),Ye=Nt(o2,Ccn),Qu=Nt(o2,Mcn);b(93,1,hWn),o.th=function(){return this.uh(),null},o.uh=function(){return null},o.vh=function(){return this.uh(),!1},o.wh=function(){return!1},o.xh=function(e){it(this,e)},w(g3,"BasicNotifierImpl",93),b(99,93,bWn),o.Yh=function(){return fo(this)},o.yh=function(e,t){return e},o.zh=function(){throw M(new Pe)},o.Ah=function(e){var t;return t=br(u($n(this.Dh(),this.Fh()),19)),this.Ph().Th(this,t.n,t.f,e)},o.Bh=function(e,t){throw M(new Pe)},o.Ch=function(e,t,i){return So(this,e,t,i)},o.Dh=function(){var e;return this.zh()&&(e=this.zh().Nk(),e)?e:this.ii()},o.Eh=function(){return dF(this)},o.Fh=function(){throw M(new Pe)},o.Gh=function(){var e,t;return t=this.$h().Ok(),!t&&this.zh().Tk(t=(l6(),e=eJ(bh(this.Dh())),e==null?MU:new C7(this,e))),t},o.Hh=function(e,t){return e},o.Ih=function(e){var t;return t=e.pk(),t?e.Lj():Ot(this.Dh(),e)},o.Jh=function(){var e;return e=this.zh(),e?e.Qk():null},o.Kh=function(){return this.zh()?this.zh().Nk():null},o.Lh=function(e,t,i){return tA(this,e,t,i)},o.Mh=function(e){return x4(this,e)},o.Nh=function(e,t){return YN(this,e,t)},o.Oh=function(){var e;return e=this.zh(),!!e&&e.Rk()},o.Ph=function(){throw M(new Pe)},o.Qh=function(){return WT(this)},o.Rh=function(e,t,i,r){return Wp(this,e,t,r)},o.Sh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().zk(this,this.hi(),t-this.ji(),e,i)},o.Th=function(e,t,i,r){return OM(this,e,t,r)},o.Uh=function(e,t,i){var r;return r=u($n(this.Dh(),t),69),r.wk().Ak(this,this.hi(),t-this.ji(),e,i)},o.Vh=function(){return!!this.zh()&&!!this.zh().Pk()},o.Wh=function(e){return Cx(this,e)},o.Xh=function(e){return bOn(this,e)},o.Zh=function(e){return xGn(this,e)},o.$h=function(){throw M(new Pe)},o._h=function(){return this.zh()?this.zh().Pk():null},o.ai=function(){return WT(this)},o.bi=function(e,t){sF(this,e,t)},o.ci=function(e){this.$h().Sk(e)},o.di=function(e){this.$h().Vk(e)},o.ei=function(e){this.$h().Uk(e)},o.fi=function(e,t){var i,r,c,s;return s=this.Jh(),s&&e&&(t=cr(s.El(),this,t),s.Il(this)),r=this.Ph(),r&&(AF(this,this.Ph(),this.Fh()).Bb&hr?(c=r.Qh(),c&&(e?!s&&c.Il(this):c.Hl(this))):(t=(i=this.Fh(),i>=0?this.Ah(t):this.Ph().Th(this,-1-i,null,t)),t=this.Ch(null,-1,t))),this.di(e),t},o.gi=function(e){var t,i,r,c,s,f,h,l;if(i=this.Dh(),s=Ot(i,e),t=this.ji(),s>=t)return u(e,69).wk().Dk(this,this.hi(),s-t);if(s<=-1)if(f=Qg((Du(),zi),i,e),f){if(dr(),u(f,69).xk()||(f=$p(Lr(zi,f))),c=(r=this.Ih(f),u(r>=0?this.Lh(r,!0,!0):H0(this,f,!0),160)),l=f.Ik(),l>1||l==-1)return u(u(c,220).Sl(e,!1),79)}else throw M(new Gn(ba+e.xe()+sK));else if(e.Jk())return r=this.Ih(e),u(r>=0?this.Lh(r,!1,!0):H0(this,e,!1),79);return h=new DMn(this,e),h},o.hi=function(){return uQ(this)},o.ii=function(){return(G1(),Hn).S},o.ji=function(){return se(this.ii())},o.ki=function(e){cF(this,e)},o.Ib=function(){return Hs(this)},w(qn,"BasicEObjectImpl",99);var Moe;b(119,99,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1}),o.li=function(e){var t;return t=cQ(this),t[e]},o.mi=function(e,t){var i;i=cQ(this),$t(i,e,t)},o.ni=function(e){var t;t=cQ(this),$t(t,e,null)},o.th=function(){return u(Un(this,4),129)},o.uh=function(){throw M(new Pe)},o.vh=function(){return(this.Db&4)!=0},o.zh=function(){throw M(new Pe)},o.oi=function(e){Xp(this,2,e)},o.Bh=function(e,t){this.Db=t<<16|this.Db&255,this.oi(e)},o.Dh=function(){return au(this)},o.Fh=function(){return this.Db>>16},o.Gh=function(){var e,t;return l6(),t=eJ(bh((e=u(Un(this,16),29),e||this.ii()))),t==null?MU:new C7(this,t)},o.wh=function(){return(this.Db&1)==0},o.Jh=function(){return u(Un(this,128),2034)},o.Kh=function(){return u(Un(this,16),29)},o.Oh=function(){return(this.Db&32)!=0},o.Ph=function(){return u(Un(this,2),54)},o.Vh=function(){return(this.Db&64)!=0},o.$h=function(){throw M(new Pe)},o._h=function(){return u(Un(this,64),288)},o.ci=function(e){Xp(this,16,e)},o.di=function(e){Xp(this,128,e)},o.ei=function(e){Xp(this,64,e)},o.hi=function(){return iu(this)},o.Db=0,w(qn,"MinimalEObjectImpl",119),b(120,119,{110:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.oi=function(e){this.Cb=e},o.Ph=function(){return this.Cb},w(qn,"MinimalEObjectImpl/Container",120),b(2083,120,{110:1,342:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return yZ(this,e,t,i)},o.Uh=function(e,t,i){return hnn(this,e,t,i)},o.Wh=function(e){return wJ(this,e)},o.bi=function(e,t){uY(this,e,t)},o.ii=function(){return Cc(),Coe},o.ki=function(e){WQ(this,e)},o.nf=function(){return aRn(this)},o.gh=function(){return!this.o&&(this.o=new Iu((Cc(),il),T1,this,0)),this.o},o.of=function(e){return z(this,e)},o.pf=function(e){return Lf(this,e)},o.qf=function(e,t){return ht(this,e,t)},w(Md,"EMapPropertyHolderImpl",2083),b(572,120,{110:1,377:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},yE),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=0;case 1:return this.b!=0}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:aT(this,$(R(t)));return;case 1:lT(this,$(R(t)));return}sF(this,e,t)},o.ii=function(){return Cc(),koe},o.ki=function(e){switch(e){case 0:aT(this,0);return;case 1:lT(this,0);return}cF(this,e)},o.Ib=function(){var e;return this.Db&64?Hs(this):(e=new ls(Hs(this)),e.a+=" (x: ",hg(e,this.a),e.a+=", y: ",hg(e,this.b),e.a+=")",e.a)},o.a=0,o.b=0,w(Md,"ElkBendPointImpl",572),b(739,2083,{110:1,342:1,167:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return PY(this,e,t,i)},o.Sh=function(e,t,i){return Yx(this,e,t,i)},o.Uh=function(e,t,i){return $$(this,e,t,i)},o.Wh=function(e){return qQ(this,e)},o.bi=function(e,t){KZ(this,e,t)},o.ii=function(){return Cc(),joe},o.ki=function(e){kY(this,e)},o.jh=function(){return this.k},o.kh=function(){return jM(this)},o.Ib=function(){return ox(this)},o.k=null,w(Md,"ElkGraphElementImpl",739),b(740,739,{110:1,342:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return FY(this,e,t,i)},o.Wh=function(e){return qY(this,e)},o.bi=function(e,t){_Z(this,e,t)},o.ii=function(){return Cc(),Eoe},o.ki=function(e){JY(this,e)},o.lh=function(){return this.f},o.mh=function(){return this.g},o.nh=function(){return this.i},o.oh=function(){return this.j},o.ph=function(e,t){kg(this,e,t)},o.qh=function(e,t){Ro(this,e,t)},o.rh=function(e){eu(this,e)},o.sh=function(e){tu(this,e)},o.Ib=function(){return iF(this)},o.f=0,o.g=0,o.i=0,o.j=0,w(Md,"ElkShapeImpl",740),b(741,740,{110:1,342:1,84:1,167:1,422:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1}),o.Lh=function(e,t,i){return bZ(this,e,t,i)},o.Sh=function(e,t,i){return NZ(this,e,t,i)},o.Uh=function(e,t,i){return $Z(this,e,t,i)},o.Wh=function(e){return cY(this,e)},o.bi=function(e,t){Vnn(this,e,t)},o.ii=function(){return Cc(),yoe},o.ki=function(e){fZ(this,e)},o.hh=function(){return!this.d&&(this.d=new Nn(Vt,this,8,5)),this.d},o.ih=function(){return!this.e&&(this.e=new Nn(Vt,this,7,4)),this.e},w(Md,"ElkConnectableShapeImpl",741),b(326,739,{110:1,342:1,74:1,167:1,326:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},HO),o.Ah=function(e){return IZ(this,e)},o.Lh=function(e,t,i){switch(e){case 3:return V7(this);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b;case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),this.c;case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),this.a;case 7:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return _n(),!!N5(this);case 9:return _n(),!!_0(this);case 10:return _n(),!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return PY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 3:return this.Cb&&(i=(r=this.Db>>16,r>=0?IZ(this,i):this.Cb.Th(this,-1-r,null,i))),lV(this,u(e,27),i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),Xc(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),Xc(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),Xc(this.a,e,i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 3:return lV(this,null,i);case 4:return!this.b&&(this.b=new Nn(he,this,4,7)),cr(this.b,e,i);case 5:return!this.c&&(this.c=new Nn(he,this,5,8)),cr(this.c,e,i);case 6:return!this.a&&(this.a=new q(Mt,this,6,6)),cr(this.a,e,i)}return $$(this,e,t,i)},o.Wh=function(e){switch(e){case 3:return!!V7(this);case 4:return!!this.b&&this.b.i!=0;case 5:return!!this.c&&this.c.i!=0;case 6:return!!this.a&&this.a.i!=0;case 7:return!this.b&&(this.b=new Nn(he,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i<=1));case 8:return N5(this);case 9:return _0(this);case 10:return!this.b&&(this.b=new Nn(he,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new Nn(he,this,5,8)),this.c.i!=0)}return qQ(this,e)},o.bi=function(e,t){switch(e){case 3:AA(this,u(t,27));return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b),!this.b&&(this.b=new Nn(he,this,4,7)),Bt(this.b,u(t,16));return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c),!this.c&&(this.c=new Nn(he,this,5,8)),Bt(this.c,u(t,16));return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a),!this.a&&(this.a=new q(Mt,this,6,6)),Bt(this.a,u(t,16));return}KZ(this,e,t)},o.ii=function(){return Cc(),Sdn},o.ki=function(e){switch(e){case 3:AA(this,null);return;case 4:!this.b&&(this.b=new Nn(he,this,4,7)),me(this.b);return;case 5:!this.c&&(this.c=new Nn(he,this,5,8)),me(this.c);return;case 6:!this.a&&(this.a=new q(Mt,this,6,6)),me(this.a);return}kY(this,e)},o.Ib=function(){return nGn(this)},w(Md,"ElkEdgeImpl",326),b(452,2083,{110:1,342:1,166:1,452:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},jE),o.Ah=function(e){return TZ(this,e)},o.Lh=function(e,t,i){switch(e){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new ti(xo,this,5)),this.a;case 6:return hOn(this);case 7:return t?Px(this):this.i;case 8:return t?Sx(this):this.f;case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),this.e;case 11:return this.d}return yZ(this,e,t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?TZ(this,i):this.Cb.Th(this,-1-c,null,i))),hV(this,u(e,74),i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),Xc(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),Xc(this.e,e,i)}return s=u($n((r=u(Un(this,16),29),r||(Cc(),bO)),t),69),s.wk().zk(this,iu(this),t-se((Cc(),bO)),e,i)},o.Uh=function(e,t,i){switch(t){case 5:return!this.a&&(this.a=new ti(xo,this,5)),cr(this.a,e,i);case 6:return hV(this,null,i);case 9:return!this.g&&(this.g=new Nn(Mt,this,9,10)),cr(this.g,e,i);case 10:return!this.e&&(this.e=new Nn(Mt,this,10,9)),cr(this.e,e,i)}return hnn(this,e,t,i)},o.Wh=function(e){switch(e){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return!!this.a&&this.a.i!=0;case 6:return!!hOn(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&this.g.i!=0;case 10:return!!this.e&&this.e.i!=0;case 11:return this.d!=null}return wJ(this,e)},o.bi=function(e,t){switch(e){case 1:H4(this,$(R(t)));return;case 2:U4(this,$(R(t)));return;case 3:_4(this,$(R(t)));return;case 4:q4(this,$(R(t)));return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a),!this.a&&(this.a=new ti(xo,this,5)),Bt(this.a,u(t,16));return;case 6:ZHn(this,u(t,74));return;case 7:vT(this,u(t,84));return;case 8:mT(this,u(t,84));return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g),!this.g&&(this.g=new Nn(Mt,this,9,10)),Bt(this.g,u(t,16));return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e),!this.e&&(this.e=new Nn(Mt,this,10,9)),Bt(this.e,u(t,16));return;case 11:OQ(this,Oe(t));return}uY(this,e,t)},o.ii=function(){return Cc(),bO},o.ki=function(e){switch(e){case 1:H4(this,0);return;case 2:U4(this,0);return;case 3:_4(this,0);return;case 4:q4(this,0);return;case 5:!this.a&&(this.a=new ti(xo,this,5)),me(this.a);return;case 6:ZHn(this,null);return;case 7:vT(this,null);return;case 8:mT(this,null);return;case 9:!this.g&&(this.g=new Nn(Mt,this,9,10)),me(this.g);return;case 10:!this.e&&(this.e=new Nn(Mt,this,10,9)),me(this.e);return;case 11:OQ(this,null);return}WQ(this,e)},o.Ib=function(){return dHn(this)},o.b=0,o.c=0,o.d=null,o.j=0,o.k=0,w(Md,"ElkEdgeSectionImpl",452),b(158,120,{110:1,94:1,93:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Lh=function(e,t,i){var r;return e==0?(!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab):zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().zk(this,iu(this),t-se(this.ii()),e,i))},o.Uh=function(e,t,i){var r,c;return t==0?(!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i)):(c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i))},o.Wh=function(e){var t;return e==0?!!this.Ab&&this.Ab.i!=0:Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.Zh=function(e){return ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.di=function(e){Xp(this,128,e)},o.ii=function(){return On(),qoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){this.Bb|=1},o.qi=function(e){return _5(this,e)},o.Bb=0,w(qn,"EModelElementImpl",158),b(720,158,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},oG),o.ri=function(e,t){return PGn(this,e,t)},o.si=function(e){var t,i,r,c,s;if(this.a!=jo(e)||e.Bb&256)throw M(new Gn(hK+e.zb+nb));for(r=Hr(e);Sc(r.a).i!=0;){if(i=u(py(r,0,(t=u(L(Sc(r.a),0),89),s=t.c,D(s,90)?u(s,29):(On(),Is))),29),K0(i))return c=jo(i).wi().si(i),u(c,54).ci(e),c;r=Hr(i)}return(e.D!=null?e.D:e.B)=="java.util.Map$Entry"?new zSn(e):new ZV(e)},o.ti=function(e,t){return z0(this,e,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.a}return zo(this,e-se((On(),$a)),$n((r=u(Un(this,16),29),r||$a),e),t,i)},o.Sh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 1:return this.a&&(i=u(this.a,54).Th(this,4,Ef,i)),vY(this,u(e,241),i)}return c=u($n((r=u(Un(this,16),29),r||(On(),$a)),t),69),c.wk().zk(this,iu(this),t-se((On(),$a)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 1:return vY(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),$a)),t),69),c.wk().Ak(this,iu(this),t-se((On(),$a)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return!!this.a}return Uo(this,e-se((On(),$a)),$n((t=u(Un(this,16),29),t||$a),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:JKn(this,u(t,241));return}Jo(this,e-se((On(),$a)),$n((i=u(Un(this,16),29),i||$a),e),t)},o.ii=function(){return On(),$a},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:JKn(this,null);return}Wo(this,e-se((On(),$a)),$n((t=u(Un(this,16),29),t||$a),e))};var O9,Ddn,Toe;w(qn,"EFactoryImpl",720),b(1037,720,{110:1,2113:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1},fvn),o.ri=function(e,t){switch(e.hk()){case 12:return u(t,149).Pg();case 13:return Jr(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l;switch(e.G==-1&&(e.G=(t=jo(e),t?f1(t.vi(),e):-1)),e.G){case 4:return s=new eG,s;case 6:return f=new Yv,f;case 7:return h=new ez,h;case 8:return r=new HO,r;case 9:return i=new yE,i;case 10:return c=new jE,c;case 11:return l=new hvn,l;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 13:case 12:return null;default:throw M(new Gn(ev+e.xe()+nb))}},w(Md,"ElkGraphFactoryImpl",1037),b(448,158,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1}),o.Gh=function(){var e,t;return t=(e=u(Un(this,16),29),eJ(bh(e||this.ii()))),t==null?(l6(),l6(),MU):new wAn(this,t)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.xe()}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Uoe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.xe=function(){return this.zb},o.ui=function(e){zc(this,e)},o.Ib=function(){return p5(this)},o.zb=null,w(qn,"ENamedElementImpl",448),b(184,448,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},HIn),o.Ah=function(e){return oKn(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Hb(this,Cf,this)),this.rb;case 6:return!this.vb&&(this.vb=new jp(Ef,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?u(this.Cb,241):null:pOn(this)}return zo(this,e-se((On(),I1)),$n((r=u(Un(this,16),29),r||I1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 4:return this.sb&&(i=u(this.sb,54).Th(this,1,I9,i)),jY(this,u(e,480),i);case 5:return!this.rb&&(this.rb=new Hb(this,Cf,this)),Xc(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(Ef,this,6,7)),Xc(this.vb,e,i);case 7:return this.Cb&&(i=(c=this.Db>>16,c>=0?oKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,7,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),s.wk().zk(this,iu(this),t-se((On(),I1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 4:return jY(this,null,i);case 5:return!this.rb&&(this.rb=new Hb(this,Cf,this)),cr(this.rb,e,i);case 6:return!this.vb&&(this.vb=new jp(Ef,this,6,7)),cr(this.vb,e,i);case 7:return So(this,null,7,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),I1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),I1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return!!this.sb;case 5:return!!this.rb&&this.rb.i!=0;case 6:return!!this.vb&&this.vb.i!=0;case 7:return!!pOn(this)}return Uo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.Zh=function(e){var t;return t=pTe(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:MT(this,Oe(t));return;case 3:CT(this,Oe(t));return;case 4:tF(this,u(t,480));return;case 5:!this.rb&&(this.rb=new Hb(this,Cf,this)),me(this.rb),!this.rb&&(this.rb=new Hb(this,Cf,this)),Bt(this.rb,u(t,16));return;case 6:!this.vb&&(this.vb=new jp(Ef,this,6,7)),me(this.vb),!this.vb&&(this.vb=new jp(Ef,this,6,7)),Bt(this.vb,u(t,16));return}Jo(this,e-se((On(),I1)),$n((i=u(Un(this,16),29),i||I1),e),t)},o.ei=function(e){var t,i;if(e&&this.rb)for(i=new ne(this.rb);i.e!=i.i.gc();)t=ue(i),D(t,364)&&(u(t,364).w=null);Xp(this,64,e)},o.ii=function(){return On(),I1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:MT(this,null);return;case 3:CT(this,null);return;case 4:tF(this,null);return;case 5:!this.rb&&(this.rb=new Hb(this,Cf,this)),me(this.rb);return;case 6:!this.vb&&(this.vb=new jp(Ef,this,6,7)),me(this.vb);return}Wo(this,e-se((On(),I1)),$n((t=u(Un(this,16),29),t||I1),e))},o.pi=function(){Hx(this)},o.vi=function(){return!this.rb&&(this.rb=new Hb(this,Cf,this)),this.rb},o.wi=function(){return this.sb},o.xi=function(){return this.ub},o.yi=function(){return this.xb},o.zi=function(){return this.yb},o.Ai=function(e){this.ub=e},o.Ib=function(){var e;return this.Db&64?p5(this):(e=new ls(p5(this)),e.a+=" (nsURI: ",Er(e,this.yb),e.a+=", nsPrefix: ",Er(e,this.xb),e.a+=")",e.a)},o.xb=null,o.yb=null,w(qn,"EPackageImpl",184),b(569,184,{110:1,2115:1,569:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1},jHn),o.q=!1,o.r=!1;var Aoe=!1;w(Md,"ElkGraphPackageImpl",569),b(366,740,{110:1,342:1,167:1,135:1,422:1,366:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},eG),o.Ah=function(e){return AZ(this,e)},o.Lh=function(e,t,i){switch(e){case 7:return mOn(this);case 8:return this.a}return FY(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 7:return this.Cb&&(i=(r=this.Db>>16,r>=0?AZ(this,i):this.Cb.Th(this,-1-r,null,i))),bW(this,u(e,167),i)}return Yx(this,e,t,i)},o.Uh=function(e,t,i){return t==7?bW(this,null,i):$$(this,e,t,i)},o.Wh=function(e){switch(e){case 7:return!!mOn(this);case 8:return!An("",this.a)}return qY(this,e)},o.bi=function(e,t){switch(e){case 7:oen(this,u(t,167));return;case 8:TQ(this,Oe(t));return}_Z(this,e,t)},o.ii=function(){return Cc(),Pdn},o.ki=function(e){switch(e){case 7:oen(this,null);return;case 8:TQ(this,"");return}JY(this,e)},o.Ib=function(){return h_n(this)},o.a="",w(Md,"ElkLabelImpl",366),b(207,741,{110:1,342:1,84:1,167:1,27:1,422:1,207:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},Yv),o.Ah=function(e){return OZ(this,e)},o.Lh=function(e,t,i){switch(e){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),this.c;case 10:return!this.a&&(this.a=new q(Ye,this,10,11)),this.a;case 11:return At(this);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),this.b;case 13:return _n(),!this.a&&(this.a=new q(Ye,this,10,11)),this.a.i>0}return bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),Xc(this.c,e,i);case 10:return!this.a&&(this.a=new q(Ye,this,10,11)),Xc(this.a,e,i);case 11:return this.Cb&&(i=(r=this.Db>>16,r>=0?OZ(this,i):this.Cb.Th(this,-1-r,null,i))),yV(this,u(e,27),i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),Xc(this.b,e,i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){switch(t){case 9:return!this.c&&(this.c=new q(Qu,this,9,9)),cr(this.c,e,i);case 10:return!this.a&&(this.a=new q(Ye,this,10,11)),cr(this.a,e,i);case 11:return yV(this,null,i);case 12:return!this.b&&(this.b=new q(Vt,this,12,3)),cr(this.b,e,i)}return $Z(this,e,t,i)},o.Wh=function(e){switch(e){case 9:return!!this.c&&this.c.i!=0;case 10:return!!this.a&&this.a.i!=0;case 11:return!!At(this);case 12:return!!this.b&&this.b.i!=0;case 13:return!this.a&&(this.a=new q(Ye,this,10,11)),this.a.i>0}return cY(this,e)},o.bi=function(e,t){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c),!this.c&&(this.c=new q(Qu,this,9,9)),Bt(this.c,u(t,16));return;case 10:!this.a&&(this.a=new q(Ye,this,10,11)),me(this.a),!this.a&&(this.a=new q(Ye,this,10,11)),Bt(this.a,u(t,16));return;case 11:SA(this,u(t,27));return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b),!this.b&&(this.b=new q(Vt,this,12,3)),Bt(this.b,u(t,16));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Idn},o.ki=function(e){switch(e){case 9:!this.c&&(this.c=new q(Qu,this,9,9)),me(this.c);return;case 10:!this.a&&(this.a=new q(Ye,this,10,11)),me(this.a);return;case 11:SA(this,null);return;case 12:!this.b&&(this.b=new q(Vt,this,12,3)),me(this.b);return}fZ(this,e)},o.Ib=function(){return Een(this)},w(Md,"ElkNodeImpl",207),b(193,741,{110:1,342:1,84:1,167:1,123:1,422:1,193:1,96:1,94:1,93:1,58:1,114:1,54:1,99:1,119:1,120:1},ez),o.Ah=function(e){return SZ(this,e)},o.Lh=function(e,t,i){return e==9?Sf(this):bZ(this,e,t,i)},o.Sh=function(e,t,i){var r;switch(t){case 9:return this.Cb&&(i=(r=this.Db>>16,r>=0?SZ(this,i):this.Cb.Th(this,-1-r,null,i))),aV(this,u(e,27),i)}return NZ(this,e,t,i)},o.Uh=function(e,t,i){return t==9?aV(this,null,i):$Z(this,e,t,i)},o.Wh=function(e){return e==9?!!Sf(this):cY(this,e)},o.bi=function(e,t){switch(e){case 9:ien(this,u(t,27));return}Vnn(this,e,t)},o.ii=function(){return Cc(),Odn},o.ki=function(e){switch(e){case 9:ien(this,null);return}fZ(this,e)},o.Ib=function(){return Yqn(this)},w(Md,"ElkPortImpl",193);var Soe=Nt(or,"BasicEMap/Entry");b(1122,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,119:1,120:1},hvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.Hb=function(){return l0(this)},o.Di=function(e){AQ(this,u(e,149))},o.Lh=function(e,t,i){switch(e){case 0:return this.b;case 1:return this.c}return tA(this,e,t,i)},o.Wh=function(e){switch(e){case 0:return!!this.b;case 1:return this.c!=null}return Cx(this,e)},o.bi=function(e,t){switch(e){case 0:AQ(this,u(t,149));return;case 1:MQ(this,t);return}sF(this,e,t)},o.ii=function(){return Cc(),il},o.ki=function(e){switch(e){case 0:AQ(this,null);return;case 1:MQ(this,null);return}cF(this,e)},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e?mt(e):0),this.a},o.md=function(){return this.c},o.Ci=function(e){this.a=e},o.nd=function(e){var t;return t=this.c,MQ(this,e),t},o.Ib=function(){var e;return this.Db&64?Hs(this):(e=new x1,Re(Re(Re(e,this.b?this.b.Pg():gu),iR),O6(this.c)),e.a)},o.a=-1,o.c=null;var T1=w(Md,"ElkPropertyToValueMapEntryImpl",1122);b(996,1,{},dvn),w(Ui,"JsonAdapter",996),b(216,63,Pl,eh),w(Ui,"JsonImportException",216),b(868,1,{},sKn),w(Ui,"JsonImporter",868),b(903,1,{},wMn),w(Ui,"JsonImporter/lambda$0$Type",903),b(904,1,{},gMn),w(Ui,"JsonImporter/lambda$1$Type",904),b(912,1,{},Rkn),w(Ui,"JsonImporter/lambda$10$Type",912),b(914,1,{},pMn),w(Ui,"JsonImporter/lambda$11$Type",914),b(915,1,{},mMn),w(Ui,"JsonImporter/lambda$12$Type",915),b(921,1,{},IIn),w(Ui,"JsonImporter/lambda$13$Type",921),b(920,1,{},OIn),w(Ui,"JsonImporter/lambda$14$Type",920),b(916,1,{},vMn),w(Ui,"JsonImporter/lambda$15$Type",916),b(917,1,{},kMn),w(Ui,"JsonImporter/lambda$16$Type",917),b(918,1,{},yMn),w(Ui,"JsonImporter/lambda$17$Type",918),b(919,1,{},jMn),w(Ui,"JsonImporter/lambda$18$Type",919),b(924,1,{},Kkn),w(Ui,"JsonImporter/lambda$19$Type",924),b(905,1,{},_kn),w(Ui,"JsonImporter/lambda$2$Type",905),b(922,1,{},Hkn),w(Ui,"JsonImporter/lambda$20$Type",922),b(923,1,{},qkn),w(Ui,"JsonImporter/lambda$21$Type",923),b(927,1,{},Ukn),w(Ui,"JsonImporter/lambda$22$Type",927),b(925,1,{},Gkn),w(Ui,"JsonImporter/lambda$23$Type",925),b(926,1,{},zkn),w(Ui,"JsonImporter/lambda$24$Type",926),b(929,1,{},Xkn),w(Ui,"JsonImporter/lambda$25$Type",929),b(928,1,{},Vkn),w(Ui,"JsonImporter/lambda$26$Type",928),b(930,1,re,EMn),o.Cd=function(e){O4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$27$Type",930),b(931,1,re,CMn),o.Cd=function(e){D4e(this.b,this.a,Oe(e))},w(Ui,"JsonImporter/lambda$28$Type",931),b(932,1,{},MMn),w(Ui,"JsonImporter/lambda$29$Type",932),b(908,1,{},Wkn),w(Ui,"JsonImporter/lambda$3$Type",908),b(933,1,{},TMn),w(Ui,"JsonImporter/lambda$30$Type",933),b(934,1,{},Jkn),w(Ui,"JsonImporter/lambda$31$Type",934),b(935,1,{},Qkn),w(Ui,"JsonImporter/lambda$32$Type",935),b(936,1,{},Ykn),w(Ui,"JsonImporter/lambda$33$Type",936),b(937,1,{},Zkn),w(Ui,"JsonImporter/lambda$34$Type",937),b(870,1,{},nyn),w(Ui,"JsonImporter/lambda$35$Type",870),b(941,1,{},kSn),w(Ui,"JsonImporter/lambda$36$Type",941),b(938,1,re,eyn),o.Cd=function(e){F3e(this.a,u(e,377))},w(Ui,"JsonImporter/lambda$37$Type",938),b(939,1,re,AMn),o.Cd=function(e){mle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$38$Type",939),b(940,1,re,SMn),o.Cd=function(e){vle(this.a,this.b,u(e,166))},w(Ui,"JsonImporter/lambda$39$Type",940),b(906,1,{},tyn),w(Ui,"JsonImporter/lambda$4$Type",906),b(942,1,re,iyn),o.Cd=function(e){B3e(this.a,u(e,8))},w(Ui,"JsonImporter/lambda$40$Type",942),b(907,1,{},ryn),w(Ui,"JsonImporter/lambda$5$Type",907),b(911,1,{},cyn),w(Ui,"JsonImporter/lambda$6$Type",911),b(909,1,{},uyn),w(Ui,"JsonImporter/lambda$7$Type",909),b(910,1,{},oyn),w(Ui,"JsonImporter/lambda$8$Type",910),b(913,1,{},syn),w(Ui,"JsonImporter/lambda$9$Type",913),b(961,1,re,fyn),o.Cd=function(e){Ip(this.a,new qb(Oe(e)))},w(Ui,"JsonMetaDataConverter/lambda$0$Type",961),b(962,1,re,hyn),o.Cd=function(e){Pwe(this.a,u(e,245))},w(Ui,"JsonMetaDataConverter/lambda$1$Type",962),b(963,1,re,lyn),o.Cd=function(e){S2e(this.a,u(e,143))},w(Ui,"JsonMetaDataConverter/lambda$2$Type",963),b(964,1,re,ayn),o.Cd=function(e){Iwe(this.a,u(e,170))},w(Ui,"JsonMetaDataConverter/lambda$3$Type",964),b(245,22,{3:1,34:1,22:1,245:1},gp);var wO,gO,mU,pO,mO,vO,vU,kU,kO=we(Dy,"GraphFeature",245,ke,dme,tbe),Poe;b(11,1,{34:1,149:1},lt,Dt,Mn,Ni),o.Fd=function(e){return C1e(this,u(e,149))},o.Fb=function(e){return nOn(this,e)},o.Sg=function(){return rn(this)},o.Pg=function(){return this.b},o.Hb=function(){return t1(this.b)},o.Ib=function(){return this.b},w(Dy,"Property",11),b(671,1,Ne,tD),o.Ne=function(e,t){return N5e(this,u(e,96),u(t,96))},o.Fb=function(e){return this===e},o.Oe=function(){return new Te(this)},w(Dy,"PropertyHolderComparator",671),b(709,1,Si,xG),o.Nb=function(e){_i(this,e)},o.Pb=function(){return $4e(this)},o.Qb=function(){sEn()},o.Ob=function(){return!!this.a},w(_S,"ElkGraphUtil/AncestorIterator",709);var Ldn=Nt(or,"EList");b(70,56,{20:1,31:1,56:1,16:1,15:1,70:1,61:1}),o.bd=function(e,t){v5(this,e,t)},o.Fc=function(e){return ve(this,e)},o.cd=function(e,t){return JQ(this,e,t)},o.Gc=function(e){return Bt(this,e)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new M7(this)},o.Ki=function(e){return pk(this,e)},o.Li=function(){return!0},o.Mi=function(e,t){},o.Ni=function(){},o.Oi=function(e,t){t$(this,e,t)},o.Pi=function(e,t,i){},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Fb=function(e){return xqn(this,e)},o.Hb=function(){return zQ(this)},o.Si=function(){return!1},o.Kc=function(){return new ne(this)},o.ed=function(){return new kp(this)},o.fd=function(e){var t;if(t=this.gc(),e<0||e>t)throw M(new Kb(e,t));return new oN(this,e)},o.Ui=function(e,t){this.Ti(e,this.dd(t))},o.Mc=function(e){return rT(this,e)},o.Wi=function(e,t){return t},o.hd=function(e,t){return Rg(this,e,t)},o.Ib=function(){return KY(this)},o.Yi=function(){return!0},o.Zi=function(e,t){return rm(this,t)},w(or,"AbstractEList",70),b(66,70,Ch,EE,S0,KQ),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Dk(this,e,t)},o.Hi=function(e){ek(this,e)},o.$i=function(e){return nQ(this,e)},o.$b=function(){e5(this)},o.Hc=function(e){return km(this,e)},o.Xb=function(e){return L(this,e)},o._i=function(e){var t,i,r;++this.j,i=this.g==null?0:this.g.length,e>i&&(r=this.g,t=i+(i/2|0)+4,t=0?(this.gd(t),!0):!1},o.Xi=function(e,t){return this.Dj(e,this.Zi(e,t))},o.gc=function(){return this.Ej()},o.Pc=function(){return this.Fj()},o.Qc=function(e){return this.Gj(e)},o.Ib=function(){return this.Hj()},w(or,"DelegatingEList",2093),b(2094,2093,YWn),o.Ei=function(e,t){return $en(this,e,t)},o.Fi=function(e){return this.Ei(this.Ej(),e)},o.Gi=function(e,t){EHn(this,e,t)},o.Hi=function(e){lHn(this,e)},o.Li=function(){return!this.Mj()},o.$b=function(){X5(this)},o.Ij=function(e,t,i,r,c){return new ZIn(this,e,t,i,r,c)},o.Jj=function(e){it(this.jj(),e)},o.Kj=function(){return null},o.Lj=function(){return-1},o.jj=function(){return null},o.Mj=function(){return!1},o.Nj=function(e,t){return t},o.Oj=function(e,t){return t},o.Pj=function(){return!1},o.Qj=function(){return!this.Aj()},o.Ti=function(e,t){var i,r;return this.Pj()?(r=this.Qj(),i=onn(this,e,t),this.Jj(this.Ij(7,Y(t),i,e,r)),i):onn(this,e,t)},o.gd=function(e){var t,i,r,c;return this.Pj()?(i=null,r=this.Qj(),t=this.Ij(4,c=tM(this,e),null,e,r),this.Mj()&&c?(i=this.Oj(c,i),i?(i.nj(t),i.oj()):this.Jj(t)):i?(i.nj(t),i.oj()):this.Jj(t),c):(c=tM(this,e),this.Mj()&&c&&(i=this.Oj(c,null),i&&i.oj()),c)},o.Xi=function(e,t){return IUn(this,e,t)},w(g3,"DelegatingNotifyingListImpl",2094),b(152,1,Wy),o.nj=function(e){return zZ(this,e)},o.oj=function(){h$(this)},o.gj=function(){return this.d},o.Kj=function(){return null},o.Rj=function(){return null},o.hj=function(e){return-1},o.ij=function(){return pqn(this)},o.jj=function(){return null},o.kj=function(){return aen(this)},o.lj=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},o.Sj=function(){return!1},o.mj=function(e){var t,i,r,c,s,f,h,l,a,d,g;switch(this.d){case 1:case 2:switch(c=e.gj(),c){case 1:case 2:if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0}case 4:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null))return a=Yen(this),l=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,f=e.lj(),this.d=6,g=new S0(2),l<=f?(ve(g,this.n),ve(g,e.kj()),this.g=A(T(ye,1),_e,28,15,[this.o=l,f+1])):(ve(g,e.kj()),ve(g,this.n),this.g=A(T(ye,1),_e,28,15,[this.o=f,l])),this.n=g,a||(this.o=-2-this.o-1),!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.jj())&&this.hj(null)==e.hj(null)){for(a=Yen(this),f=e.lj(),d=u(this.g,53),r=K(ye,_e,28,d.length+1,15,1),t=0;t>>0,t.toString(16))),r.a+=" (eventType: ",this.d){case 1:{r.a+="SET";break}case 2:{r.a+="UNSET";break}case 3:{r.a+="ADD";break}case 5:{r.a+="ADD_MANY";break}case 4:{r.a+="REMOVE";break}case 6:{r.a+="REMOVE_MANY";break}case 7:{r.a+="MOVE";break}case 8:{r.a+="REMOVING_ADAPTER";break}case 9:{r.a+="RESOLVE";break}default:{TD(r,this.d);break}}if(rUn(this)&&(r.a+=", touch: true"),r.a+=", position: ",TD(r,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),r.a+=", notifier: ",M6(r,this.jj()),r.a+=", feature: ",M6(r,this.Kj()),r.a+=", oldValue: ",M6(r,aen(this)),r.a+=", newValue: ",this.d==6&&D(this.g,53)){for(i=u(this.g,53),r.a+="[",e=0;e10?((!this.b||this.c.j!=this.a)&&(this.b=new F6(this),this.a=this.j),sf(this.b,e)):km(this,e)},o.Yi=function(){return!0},o.a=0,w(or,"AbstractEList/1",966),b(302,77,AB,Kb),w(or,"AbstractEList/BasicIndexOutOfBoundsException",302),b(37,1,Si,ne),o.Nb=function(e){_i(this,e)},o.Xj=function(){if(this.i.j!=this.f)throw M(new Bo)},o.Yj=function(){return ue(this)},o.Ob=function(){return this.e!=this.i.gc()},o.Pb=function(){return this.Yj()},o.Qb=function(){O5(this)},o.e=0,o.f=0,o.g=-1,w(or,"AbstractEList/EIterator",37),b(286,37,Hh,kp,oN),o.Qb=function(){O5(this)},o.Rb=function(e){OBn(this,e)},o.Zj=function(){var e;try{return e=this.d.Xb(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),D(t,77)?(this.Xj(),M(new nc)):M(t)}},o.$j=function(e){xRn(this,e)},o.Sb=function(){return this.e!=0},o.Tb=function(){return this.e},o.Ub=function(){return this.Zj()},o.Vb=function(){return this.e-1},o.Wb=function(e){this.$j(e)},w(or,"AbstractEList/EListIterator",286),b(355,37,Si,yp),o.Yj=function(){return Mx(this)},o.Qb=function(){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEIterator",355),b(398,286,Hh,M7,SV),o.Rb=function(e){throw M(new Pe)},o.Yj=function(){var e;try{return e=this.c.Vi(this.e),this.Xj(),this.g=this.e++,e}catch(t){throw t=It(t),D(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Zj=function(){var e;try{return e=this.c.Vi(--this.e),this.Xj(),this.g=this.e,e}catch(t){throw t=It(t),D(t,77)?(this.Xj(),M(new nc)):M(t)}},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"AbstractEList/NonResolvingEListIterator",398),b(2080,70,ZWn),o.Ei=function(e,t){var i,r,c,s,f,h,l,a,d,g,p;if(c=t.gc(),c!=0){for(a=u(Un(this.a,4),129),d=a==null?0:a.length,p=d+c,r=V$(this,p),g=d-e,g>0&&Ic(a,e,r,e+c,g),l=t.Kc(),f=0;fi)throw M(new Kb(e,i));return new yIn(this,e)},o.$b=function(){var e,t;++this.j,e=u(Un(this.a,4),129),t=e==null?0:e.length,gm(this,null),t$(this,t,e)},o.Hc=function(e){var t,i,r,c,s;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(r=t,c=0,s=r.length;c=i)throw M(new Kb(e,i));return t[e]},o.dd=function(e){var t,i,r;if(t=u(Un(this.a,4),129),t!=null){if(e!=null){for(i=0,r=t.length;ii)throw M(new Kb(e,i));return new kIn(this,e)},o.Ti=function(e,t){var i,r,c;if(i=_Bn(this),c=i==null?0:i.length,e>=c)throw M(new Ir(vK+e+Td+c));if(t>=c)throw M(new Ir(kK+t+Td+c));return r=i[t],e!=t&&(e0&&Ic(e,0,t,0,i),t},o.Qc=function(e){var t,i,r;return t=u(Un(this.a,4),129),r=t==null?0:t.length,r>0&&(e.lengthr&&$t(e,r,null),e};var Ioe;w(or,"ArrayDelegatingEList",2080),b(1051,37,Si,jLn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.Qb=function(){O5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EIterator",1051),b(722,286,Hh,NPn,kIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},o.$j=function(e){xRn(this,e),this.a=u(Un(this.b.a,4),129)},o.Qb=function(){O5(this),this.a=u(Un(this.b.a,4),129)},w(or,"ArrayDelegatingEList/EListIterator",722),b(1052,355,Si,ELn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEIterator",1052),b(723,398,Hh,$Pn,yIn),o.Xj=function(){if(this.b.j!=this.f||x(u(Un(this.b.a,4),129))!==x(this.a))throw M(new Bo)},w(or,"ArrayDelegatingEList/NonResolvingEListIterator",723),b(615,302,AB,aL),w(or,"BasicEList/BasicIndexOutOfBoundsException",615),b(710,66,Ch,gX),o.bd=function(e,t){throw M(new Pe)},o.Fc=function(e){throw M(new Pe)},o.cd=function(e,t){throw M(new Pe)},o.Gc=function(e){throw M(new Pe)},o.$b=function(){throw M(new Pe)},o._i=function(e){throw M(new Pe)},o.Kc=function(){return this.Ii()},o.ed=function(){return this.Ji()},o.fd=function(e){return this.Ki(e)},o.Ti=function(e,t){throw M(new Pe)},o.Ui=function(e,t){throw M(new Pe)},o.gd=function(e){throw M(new Pe)},o.Mc=function(e){throw M(new Pe)},o.hd=function(e,t){throw M(new Pe)},w(or,"BasicEList/UnmodifiableEList",710),b(721,1,{3:1,20:1,16:1,15:1,61:1,597:1}),o.bd=function(e,t){a1e(this,e,u(t,44))},o.Fc=function(e){return cae(this,u(e,44))},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return u(L(this.c,e),136)},o.Ti=function(e,t){return u(this.c.Ti(e,t),44)},o.Ui=function(e,t){d1e(this,e,u(t,44))},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return u(this.c.gd(e),44)},o.hd=function(e,t){return Swe(this,e,u(t,44))},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.cd=function(e,t){return this.c.cd(e,t)},o.Gc=function(e){return this.c.Gc(e)},o.$b=function(){this.c.$b()},o.Hc=function(e){return this.c.Hc(e)},o.Ic=function(e){return Ek(this.c,e)},o._j=function(){var e,t,i;if(this.d==null){for(this.d=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),136),uA(this,e);this.e=i}},o.Fb=function(e){return sSn(this,e)},o.Hb=function(){return zQ(this.c)},o.dd=function(e){return this.c.dd(e)},o.ak=function(){this.c=new dyn(this)},o.dc=function(){return this.f==0},o.Kc=function(){return this.c.Kc()},o.ed=function(){return this.c.ed()},o.fd=function(e){return this.c.fd(e)},o.bk=function(){return rk(this)},o.ck=function(e,t,i){return new ySn(e,t,i)},o.dk=function(){return new pvn},o.Mc=function(e){return V$n(this,e)},o.gc=function(){return this.f},o.kd=function(e,t){return new Jl(this.c,e,t)},o.Pc=function(){return this.c.Pc()},o.Qc=function(e){return this.c.Qc(e)},o.Ib=function(){return KY(this.c)},o.e=0,o.f=0,w(or,"BasicEMap",721),b(1046,66,Ch,dyn),o.Mi=function(e,t){Ufe(this,u(t,136))},o.Pi=function(e,t,i){var r;++(r=this,u(t,136),r).a.e},o.Qi=function(e,t){Gfe(this,u(t,136))},o.Ri=function(e,t,i){U1e(this,u(t,136),u(i,136))},o.Oi=function(e,t){_xn(this.a)},w(or,"BasicEMap/1",1046),b(1047,66,Ch,pvn),o.aj=function(e){return K(DNe,nJn,621,e,0,1)},w(or,"BasicEMap/2",1047),b(1048,Kf,Lu,byn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return wx(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Jjn(this.a)},o.Mc=function(e){var t;return t=this.a.f,VT(this.a,e),this.a.f!=t},o.gc=function(){return this.a.f},w(or,"BasicEMap/3",1048),b(1049,31,pw,wyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){return Fqn(this.a,e)},o.Kc=function(){return this.a.f==0?(m4(),aE.a):new Qjn(this.a)},o.gc=function(){return this.a.f},w(or,"BasicEMap/4",1049),b(1050,Kf,Lu,gyn),o.$b=function(){this.a.c.$b()},o.Hc=function(e){var t,i,r,c,s,f,h,l,a;if(this.a.f>0&&D(e,44)&&(this.a._j(),l=u(e,44),h=l.ld(),c=h==null?0:mt(h),s=dV(this.a,c),t=this.a.d[s],t)){for(i=u(t.g,379),a=t.i,f=0;f"+this.c},o.a=0;var DNe=w(or,"BasicEMap/EntryImpl",621);b(546,1,{},CE),w(or,"BasicEMap/View",546);var aE;b(783,1,{}),o.Fb=function(e){return Wnn((Dn(),sr),e)},o.Hb=function(){return rY((Dn(),sr))},o.Ib=function(){return ca((Dn(),sr))},w(or,"ECollections/BasicEmptyUnmodifiableEList",783),b(1348,1,Hh,mvn),o.Nb=function(e){_i(this,e)},o.Rb=function(e){throw M(new Pe)},o.Ob=function(){return!1},o.Sb=function(){return!1},o.Pb=function(){throw M(new nc)},o.Tb=function(){return 0},o.Ub=function(){throw M(new nc)},o.Vb=function(){return-1},o.Qb=function(){throw M(new Pe)},o.Wb=function(e){throw M(new Pe)},w(or,"ECollections/BasicEmptyUnmodifiableEList/1",1348),b(1346,783,{20:1,16:1,15:1,61:1},ujn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),A5(sr,e)},w(or,"ECollections/EmptyUnmodifiableEList",1346),b(1347,783,{20:1,16:1,15:1,61:1,597:1},ojn),o.bd=function(e,t){yEn()},o.Fc=function(e){return jEn()},o.cd=function(e,t){return EEn()},o.Gc=function(e){return CEn()},o.$b=function(){MEn()},o.Hc=function(e){return!1},o.Ic=function(e){return!1},o.Jc=function(e){qi(this,e)},o.Xb=function(e){return vX((Dn(),e)),null},o.dd=function(e){return-1},o.dc=function(){return!0},o.Kc=function(){return this.a},o.ed=function(){return this.a},o.fd=function(e){return this.a},o.Ti=function(e,t){return TEn()},o.Ui=function(e,t){AEn()},o.Lc=function(){return new Tn(null,new In(this,16))},o.gd=function(e){return SEn()},o.Mc=function(e){return PEn()},o.hd=function(e,t){return IEn()},o.gc=function(){return 0},o.jd=function(e){ud(this,e)},o.Nc=function(){return new In(this,16)},o.Oc=function(){return new Tn(null,new In(this,16))},o.kd=function(e,t){return Dn(),new Jl(sr,e,t)},o.Pc=function(){return gW((Dn(),sr))},o.Qc=function(e){return Dn(),A5(sr,e)},o.bk=function(){return Dn(),Dn(),Wh},w(or,"ECollections/EmptyUnmodifiableEMap",1347);var xdn=Nt(or,"Enumerator"),yO;b(288,1,{288:1},jF),o.Fb=function(e){var t;return this===e?!0:D(e,288)?(t=u(e,288),this.f==t.f&&Ube(this.i,t.i)&&WL(this.a,this.f&256?t.f&256?t.a:null:t.f&256?null:t.a)&&WL(this.d,t.d)&&WL(this.g,t.g)&&WL(this.e,t.e)&&b9e(this,t)):!1},o.Hb=function(){return this.f},o.Ib=function(){return gUn(this)},o.f=0;var Ooe=0,Doe=0,Loe=0,Noe=0,Fdn=0,Bdn=0,Rdn=0,Kdn=0,_dn=0,$oe,D9=0,L9=0,xoe=0,Foe=0,jO,Hdn;w(or,"URI",288),b(1121,45,n2,sjn),o.zc=function(e,t){return u(Dr(this,Oe(e),u(t,288)),288)},w(or,"URI/URICache",1121),b(506,66,Ch,avn,sM),o.Si=function(){return!0},w(or,"UniqueEList",506),b(590,63,Pl,eT),w(or,"WrappedException",590);var Ue=Nt(ts,iJn),Zw=Nt(ts,rJn),ku=Nt(ts,cJn),ng=Nt(ts,uJn),Cf=Nt(ts,oJn),As=Nt(ts,"EClass"),EU=Nt(ts,"EDataType"),Boe;b(1233,45,n2,fjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1233);var EO=Nt(ts,"EEnum"),Bl=Nt(ts,sJn),jr=Nt(ts,fJn),Ss=Nt(ts,hJn),Ps,yb=Nt(ts,lJn),eg=Nt(ts,aJn);b(1042,1,{},lvn),o.Ib=function(){return"NIL"},w(ts,"EStructuralFeature/Internal/DynamicValueHolder/1",1042);var Roe;b(1041,45,n2,hjn),o.xc=function(e){return Ai(e)?Nc(this,e):Kr(wr(this.f,e))},w(ts,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1041);var fu=Nt(ts,dJn),R3=Nt(ts,"EValidator/PatternMatcher"),qdn,Udn,Hn,A1,tg,La,Koe,_oe,Hoe,Na,S1,$a,jb,Zf,qoe,Uoe,Is,P1,Goe,I1,ig,U2,ar,zoe,Xoe,Eb,CO=Nt(Tt,"FeatureMap/Entry");b(545,1,{76:1},MC),o.Lk=function(){return this.a},o.md=function(){return this.b},w(qn,"BasicEObjectImpl/1",545),b(1040,1,TK,DMn),o.Fk=function(e){return YN(this.a,this.b,e)},o.Qj=function(){return bOn(this.a,this.b)},o.Wb=function(e){rJ(this.a,this.b,e)},o.Gk=function(){_we(this.a,this.b)},w(qn,"BasicEObjectImpl/4",1040),b(2081,1,{114:1}),o.Mk=function(e){this.e=e==0?Voe:K(ki,Bn,1,e,5,1)},o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Nk=function(){return this.c},o.Ok=function(){throw M(new Pe)},o.Pk=function(){throw M(new Pe)},o.Qk=function(){return this.d},o.Rk=function(){return this.e!=null},o.Sk=function(e){this.c=e},o.Tk=function(e){throw M(new Pe)},o.Uk=function(e){throw M(new Pe)},o.Vk=function(e){this.d=e};var Voe;w(qn,"BasicEObjectImpl/EPropertiesHolderBaseImpl",2081),b(192,2081,{114:1},uf),o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},w(qn,"BasicEObjectImpl/EPropertiesHolderImpl",192),b(516,99,bWn,ME),o.uh=function(){return this.f},o.zh=function(){return this.k},o.Bh=function(e,t){this.g=e,this.i=t},o.Dh=function(){return this.j&2?this.$h().Nk():this.ii()},o.Fh=function(){return this.i},o.wh=function(){return(this.j&1)!=0},o.Ph=function(){return this.g},o.Vh=function(){return(this.j&4)!=0},o.$h=function(){return!this.k&&(this.k=new uf),this.k},o.ci=function(e){this.$h().Sk(e),e?this.j|=2:this.j&=-3},o.ei=function(e){this.$h().Uk(e),e?this.j|=4:this.j&=-5},o.ii=function(){return(G1(),Hn).S},o.i=0,o.j=1,w(qn,"EObjectImpl",516),b(798,516,{110:1,94:1,93:1,58:1,114:1,54:1,99:1},ZV),o.li=function(e){return this.e[e]},o.mi=function(e,t){this.e[e]=t},o.ni=function(e){this.e[e]=null},o.Dh=function(){return this.d},o.Ih=function(e){return Ot(this.d,e)},o.Kh=function(){return this.d},o.Oh=function(){return this.e!=null},o.$h=function(){return!this.k&&(this.k=new vvn),this.k},o.ci=function(e){this.d=e},o.hi=function(){var e;return this.e==null&&(e=se(this.d),this.e=e==0?Woe:K(ki,Bn,1,e,5,1)),this},o.ji=function(){return 0};var Woe;w(qn,"DynamicEObjectImpl",798),b(1522,798,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1},zSn),o.Fb=function(e){return this===e},o.Hb=function(){return l0(this)},o.ci=function(e){this.d=e,this.b=oy(e,"key"),this.c=oy(e,g8)},o.Bi=function(){var e;return this.a==-1&&(e=l$(this,this.b),this.a=e==null?0:mt(e)),this.a},o.ld=function(){return l$(this,this.b)},o.md=function(){return l$(this,this.c)},o.Ci=function(e){this.a=e},o.Di=function(e){rJ(this,this.b,e)},o.nd=function(e){var t;return t=l$(this,this.c),rJ(this,this.c,e),t},o.a=0,w(qn,"DynamicEObjectImpl/BasicEMapEntry",1522),b(1523,1,{114:1},vvn),o.Mk=function(e){throw M(new Pe)},o.li=function(e){throw M(new Pe)},o.mi=function(e,t){throw M(new Pe)},o.ni=function(e){throw M(new Pe)},o.Nk=function(){throw M(new Pe)},o.Ok=function(){return this.a},o.Pk=function(){return this.b},o.Qk=function(){return this.c},o.Rk=function(){throw M(new Pe)},o.Sk=function(e){throw M(new Pe)},o.Tk=function(e){this.a=e},o.Uk=function(e){this.b=e},o.Vk=function(e){this.c=e},w(qn,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1523),b(519,158,{110:1,94:1,93:1,598:1,155:1,58:1,114:1,54:1,99:1,519:1,158:1,119:1,120:1},tG),o.Ah=function(e){return PZ(this,e)},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.d;case 2:return i?(!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b):(!this.b&&(this.b=new lo((On(),ar),pc,this)),rk(this.b));case 3:return vOn(this);case 4:return!this.a&&(this.a=new ti(Oa,this,4)),this.a;case 5:return!this.c&&(this.c=new Eg(Oa,this,5)),this.c}return zo(this,e-se((On(),A1)),$n((r=u(Un(this,16),29),r||A1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 3:return this.Cb&&(i=(c=this.Db>>16,c>=0?PZ(this,i):this.Cb.Th(this,-1-c,null,i))),wW(this,u(e,155),i)}return s=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),s.wk().zk(this,iu(this),t-se((On(),A1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 2:return!this.b&&(this.b=new lo((On(),ar),pc,this)),UC(this.b,e,i);case 3:return wW(this,null,i);case 4:return!this.a&&(this.a=new ti(Oa,this,4)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),A1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),A1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return!!this.b&&this.b.f!=0;case 3:return!!vOn(this);case 4:return!!this.a&&this.a.i!=0;case 5:return!!this.c&&this.c.i!=0}return Uo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:Obe(this,Oe(t));return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),TT(this.b,t);return;case 3:rqn(this,u(t,155));return;case 4:!this.a&&(this.a=new ti(Oa,this,4)),me(this.a),!this.a&&(this.a=new ti(Oa,this,4)),Bt(this.a,u(t,16));return;case 5:!this.c&&(this.c=new Eg(Oa,this,5)),me(this.c),!this.c&&(this.c=new Eg(Oa,this,5)),Bt(this.c,u(t,16));return}Jo(this,e-se((On(),A1)),$n((i=u(Un(this,16),29),i||A1),e),t)},o.ii=function(){return On(),A1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:IQ(this,null);return;case 2:!this.b&&(this.b=new lo((On(),ar),pc,this)),this.b.c.$b();return;case 3:rqn(this,null);return;case 4:!this.a&&(this.a=new ti(Oa,this,4)),me(this.a);return;case 5:!this.c&&(this.c=new Eg(Oa,this,5)),me(this.c);return}Wo(this,e-se((On(),A1)),$n((t=u(Un(this,16),29),t||A1),e))},o.Ib=function(){return sBn(this)},o.d=null,w(qn,"EAnnotationImpl",519),b(141,721,Ucn,Iu),o.Gi=function(e,t){Wle(this,e,u(t,44))},o.Wk=function(e,t){return Qae(this,u(e,44),t)},o.$i=function(e){return u(u(this.c,71).$i(e),136)},o.Ii=function(){return u(this.c,71).Ii()},o.Ji=function(){return u(this.c,71).Ji()},o.Ki=function(e){return u(this.c,71).Ki(e)},o.Xk=function(e,t){return UC(this,e,t)},o.Fk=function(e){return u(this.c,79).Fk(e)},o.ak=function(){},o.Qj=function(){return u(this.c,79).Qj()},o.ck=function(e,t,i){var r;return r=u(jo(this.b).wi().si(this.b),136),r.Ci(e),r.Di(t),r.nd(i),r},o.dk=function(){return new BG(this)},o.Wb=function(e){TT(this,e)},o.Gk=function(){u(this.c,79).Gk()},w(Tt,"EcoreEMap",141),b(165,141,Ucn,lo),o._j=function(){var e,t,i,r,c,s;if(this.d==null){for(s=K(Ndn,qcn,66,2*this.f+1,0,1),i=this.c.Kc();i.e!=i.i.gc();)t=u(i.Yj(),136),r=t.Bi(),c=(r&et)%s.length,e=s[c],!e&&(e=s[c]=new BG(this)),e.Fc(t);this.d=s}},w(qn,"EAnnotationImpl/1",165),b(292,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,481:1,54:1,99:1,158:1,292:1,119:1,120:1}),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:this.ui(Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Bf(this,u(t,89),null),r&&r.oj();return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Xoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:this.ui(null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Bf(this,null,null),i&&i.oj();return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){gs(this),this.Bb|=1},o.Hk=function(){return gs(this)},o.Ik=function(){return this.t},o.Jk=function(){var e;return e=this.t,e>1||e==-1},o.Si=function(){return(this.Bb&512)!=0},o.Yk=function(e,t){return EY(this,e,t)},o.Zk=function(e){Zb(this,e)},o.Ib=function(){return Knn(this)},o.s=0,o.t=1,w(qn,"ETypedElementImpl",292),b(462,292,{110:1,94:1,93:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,462:1,292:1,119:1,120:1,692:1}),o.Ah=function(e){return QRn(this,e)},o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!this.Jk();case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Gs);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this)}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 17:return this.Cb&&(i=(c=this.Db>>16,c>=0?QRn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,17,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 17:return So(this,null,17,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.Jk();case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Gs)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this)}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:this.Zk(u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Bf(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),zoe},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.Zk(1);return;case 8:ad(this,null);return;case 9:i=Bf(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.pi=function(){P4(Lr((Du(),zi),this)),gs(this),this.Bb|=1},o.pk=function(){return this.f},o.ik=function(){return Tm(this)},o.qk=function(){return Gb(this)},o.uk=function(){return null},o.$k=function(){return this.k},o.Lj=function(){return this.n},o.vk=function(){return bA(this)},o.wk=function(){var e,t,i,r,c,s,f,h,l;return this.p||(i=Gb(this),(i.i==null&&bh(i),i.i).length,r=this.uk(),r&&se(Gb(r)),c=gs(this),f=c.kk(),e=f?f.i&1?f==so?Gt:f==ye?Gi:f==cg?sv:f==Pi?si:f==Fa?tb:f==V2?ib:f==Fu?p3:A8:f:null,t=Tm(this),h=c.ik(),G5e(this),this.Bb&wh&&((s=xZ((Du(),zi),i))&&s!=this||(s=$p(Lr(zi,this))))?this.p=new NMn(this,s):this.Jk()?this.al()?r?this.Bb&$u?e?this.bl()?this.p=new Za(47,e,this,r):this.p=new Za(5,e,this,r):this.bl()?this.p=new rd(46,this,r):this.p=new rd(4,this,r):e?this.bl()?this.p=new Za(49,e,this,r):this.p=new Za(7,e,this,r):this.bl()?this.p=new rd(48,this,r):this.p=new rd(6,this,r):this.Bb&$u?e?e==Pd?this.p=new Xl(50,Soe,this):this.bl()?this.p=new Xl(43,e,this):this.p=new Xl(1,e,this):this.bl()?this.p=new Wl(42,this):this.p=new Wl(0,this):e?e==Pd?this.p=new Xl(41,Soe,this):this.bl()?this.p=new Xl(45,e,this):this.p=new Xl(3,e,this):this.bl()?this.p=new Wl(44,this):this.p=new Wl(2,this):D(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&512?this.Bb&$u?e?this.p=new Xl(9,e,this):this.p=new Wl(8,this):e?this.p=new Xl(11,e,this):this.p=new Wl(10,this):this.Bb&$u?e?this.p=new Xl(13,e,this):this.p=new Wl(12,this):e?this.p=new Xl(15,e,this):this.p=new Wl(14,this):r?(l=r.t,l>1||l==-1?this.bl()?this.Bb&$u?e?this.p=new Za(25,e,this,r):this.p=new rd(24,this,r):e?this.p=new Za(27,e,this,r):this.p=new rd(26,this,r):this.Bb&$u?e?this.p=new Za(29,e,this,r):this.p=new rd(28,this,r):e?this.p=new Za(31,e,this,r):this.p=new rd(30,this,r):this.bl()?this.Bb&$u?e?this.p=new Za(33,e,this,r):this.p=new rd(32,this,r):e?this.p=new Za(35,e,this,r):this.p=new rd(34,this,r):this.Bb&$u?e?this.p=new Za(37,e,this,r):this.p=new rd(36,this,r):e?this.p=new Za(39,e,this,r):this.p=new rd(38,this,r)):this.bl()?this.Bb&$u?e?this.p=new Xl(17,e,this):this.p=new Wl(16,this):e?this.p=new Xl(19,e,this):this.p=new Wl(18,this):this.Bb&$u?e?this.p=new Xl(21,e,this):this.p=new Wl(20,this):e?this.p=new Xl(23,e,this):this.p=new Wl(22,this):this._k()?this.bl()?this.p=new jSn(u(c,29),this,r):this.p=new tJ(u(c,29),this,r):D(c,156)?e==CO?this.p=new Wl(40,this):this.Bb&$u?e?this.p=new yPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==Fa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==V2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new NIn(u(c,156),t,h,this):e?this.p=new kPn(t,h,this,(gx(),f==ye?Qdn:f==so?zdn:f==Fa?Ydn:f==cg?Jdn:f==Pi?Wdn:f==V2?Zdn:f==Fu?Xdn:f==fs?Vdn:TU)):this.p=new LIn(u(c,156),t,h,this):this.al()?r?this.Bb&$u?this.bl()?this.p=new CSn(u(c,29),this,r):this.p=new _V(u(c,29),this,r):this.bl()?this.p=new ESn(u(c,29),this,r):this.p=new HL(u(c,29),this,r):this.Bb&$u?this.bl()?this.p=new kAn(u(c,29),this):this.p=new eV(u(c,29),this):this.bl()?this.p=new vAn(u(c,29),this):this.p=new PL(u(c,29),this):this.bl()?r?this.Bb&$u?this.p=new MSn(u(c,29),this,r):this.p=new RV(u(c,29),this,r):this.Bb&$u?this.p=new yAn(u(c,29),this):this.p=new tV(u(c,29),this):r?this.Bb&$u?this.p=new TSn(u(c,29),this,r):this.p=new KV(u(c,29),this,r):this.Bb&$u?this.p=new jAn(u(c,29),this):this.p=new oM(u(c,29),this)),this.p},o.rk=function(){return(this.Bb&Gs)!=0},o._k=function(){return!1},o.al=function(){return!1},o.sk=function(){return(this.Bb&wh)!=0},o.xk=function(){return a$(this)},o.bl=function(){return!1},o.tk=function(){return(this.Bb&$u)!=0},o.cl=function(e){this.k=e},o.ui=function(e){FN(this,e)},o.Ib=function(){return $A(this)},o.e=!1,o.n=0,w(qn,"EStructuralFeatureImpl",462),b(331,462,{110:1,94:1,93:1,35:1,155:1,197:1,58:1,179:1,69:1,114:1,481:1,54:1,99:1,331:1,158:1,462:1,292:1,119:1,120:1,692:1},fD),o.Lh=function(e,t,i){var r,c;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),!!Nnn(this);case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Gs);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return t?x$(this):FLn(this)}return zo(this,e-se((On(),tg)),$n((r=u(Un(this,16),29),r||tg),e),t,i)},o.Wh=function(e){var t,i;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return Nnn(this);case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Gs)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return!!FLn(this)}return Uo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:nEn(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Bf(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:sx(this,on(un(t)));return}Jo(this,e-se((On(),tg)),$n((i=u(Un(this,16),29),i||tg),e),t)},o.ii=function(){return On(),tg},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:this.b=0,Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Bf(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:sx(this,!1);return}Wo(this,e-se((On(),tg)),$n((t=u(Un(this,16),29),t||tg),e))},o.pi=function(){x$(this),P4(Lr((Du(),zi),this)),gs(this),this.Bb|=1},o.Jk=function(){return Nnn(this)},o.Yk=function(e,t){return this.b=0,this.a=null,EY(this,e,t)},o.Zk=function(e){nEn(this,e)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (iD: ",ql(e,(this.Bb&kc)!=0),e.a+=")",e.a)},o.b=0,w(qn,"EAttributeImpl",331),b(364,448,{110:1,94:1,93:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,364:1,158:1,119:1,120:1,691:1}),o.dl=function(e){return e.Dh()==this},o.Ah=function(e){return _x(this,e)},o.Bh=function(e,t){this.w=null,this.Db=t<<16|this.Db&255,this.Cb=e},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return this.ik();case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A}return zo(this,e-se(this.ii()),$n((r=u(Un(this,16),29),r||this.ii()),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i)}return s=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),s.wk().zk(this,iu(this),t-se(this.ii()),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i)}return c=u($n((r=u(Un(this,16),29),r||this.ii()),t),69),c.wk().Ak(this,iu(this),t-se(this.ii()),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return this.ik()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0}return Uo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return}Jo(this,e-se(this.ii()),$n((i=u(Un(this,16),29),i||this.ii()),e),t)},o.ii=function(){return On(),Koe},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return}Wo(this,e-se(this.ii()),$n((t=u(Un(this,16),29),t||this.ii()),e))},o.hk=function(){var e;return this.G==-1&&(this.G=(e=jo(this),e?f1(e.vi(),this):-1)),this.G},o.ik=function(){return null},o.jk=function(){return jo(this)},o.el=function(){return this.v},o.kk=function(){return K0(this)},o.lk=function(){return this.D!=null?this.D:this.B},o.mk=function(){return this.F},o.fk=function(e){return OF(this,e)},o.fl=function(e){this.v=e},o.gl=function(e){yxn(this,e)},o.hl=function(e){this.C=e},o.ui=function(e){xM(this,e)},o.Ib=function(){return UT(this)},o.C=null,o.D=null,o.G=-1,w(qn,"EClassifierImpl",364),b(90,364,{110:1,94:1,93:1,29:1,142:1,155:1,197:1,58:1,114:1,54:1,99:1,90:1,364:1,158:1,482:1,119:1,120:1,691:1},uG),o.dl=function(e){return Nae(this,e.Dh())},o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return K0(this);case 4:return null;case 5:return this.F;case 6:return t?jo(this):D4(this);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),this.A;case 8:return _n(),!!(this.Bb&256);case 9:return _n(),!!(this.Bb&512);case 10:return Hr(this);case 11:return!this.q&&(this.q=new q(Ss,this,11,10)),this.q;case 12:return Jg(this);case 13:return U5(this);case 14:return U5(this),this.r;case 15:return Jg(this),this.k;case 16:return Enn(this);case 17:return $F(this);case 18:return bh(this);case 19:return TA(this);case 20:return Jg(this),this.o;case 21:return!this.s&&(this.s=new q(ku,this,21,17)),this.s;case 22:return Sc(this);case 23:return yF(this)}return zo(this,e-se((On(),La)),$n((r=u(Un(this,16),29),r||La),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 6:return this.Cb&&(i=(c=this.Db>>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 11:return!this.q&&(this.q=new q(Ss,this,11,10)),Xc(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),Xc(this.s,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),s.wk().zk(this,iu(this),t-se((On(),La)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 11:return!this.q&&(this.q=new q(Ss,this,11,10)),cr(this.q,e,i);case 21:return!this.s&&(this.s=new q(ku,this,21,17)),cr(this.s,e,i);case 22:return cr(Sc(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),La)),t),69),c.wk().Ak(this,iu(this),t-se((On(),La)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!1;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)!=0;case 9:return(this.Bb&512)!=0;case 10:return!!this.u&&Sc(this.u.a).i!=0&&!(this.n&&Ix(this.n));case 11:return!!this.q&&this.q.i!=0;case 12:return Jg(this).i!=0;case 13:return U5(this).i!=0;case 14:return U5(this),this.r.i!=0;case 15:return Jg(this),this.k.i!=0;case 16:return Enn(this).i!=0;case 17:return $F(this).i!=0;case 18:return bh(this).i!=0;case 19:return TA(this).i!=0;case 20:return Jg(this),!!this.o;case 21:return!!this.s&&this.s.i!=0;case 22:return!!this.n&&Ix(this.n);case 23:return yF(this).i!=0}return Uo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.Zh=function(e){var t;return t=this.i==null||this.q&&this.q.i!=0?null:oy(this,e),t||ctn(this,e)},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:CY(this,on(un(t)));return;case 9:MY(this,on(un(t)));return;case 10:X5(Hr(this)),Bt(Hr(this),u(t,16));return;case 11:!this.q&&(this.q=new q(Ss,this,11,10)),me(this.q),!this.q&&(this.q=new q(Ss,this,11,10)),Bt(this.q,u(t,16));return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s),!this.s&&(this.s=new q(ku,this,21,17)),Bt(this.s,u(t,16));return;case 22:me(Sc(this)),Bt(Sc(this),u(t,16));return}Jo(this,e-se((On(),La)),$n((i=u(Un(this,16),29),i||La),e),t)},o.ii=function(){return On(),La},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:CY(this,!1);return;case 9:MY(this,!1);return;case 10:this.u&&X5(this.u);return;case 11:!this.q&&(this.q=new q(Ss,this,11,10)),me(this.q);return;case 21:!this.s&&(this.s=new q(ku,this,21,17)),me(this.s);return;case 22:this.n&&me(this.n);return}Wo(this,e-se((On(),La)),$n((t=u(Un(this,16),29),t||La),e))},o.pi=function(){var e,t;if(Jg(this),U5(this),Enn(this),$F(this),bh(this),TA(this),yF(this),e5(ube(Zu(this))),this.s)for(e=0,t=this.s.i;e=0;--t)L(this,t);return WY(this,e)},o.Gk=function(){me(this)},o.Zi=function(e,t){return q$n(this,e,t)},w(Tt,"EcoreEList",632),b(505,632,Qr,F7),o.Li=function(){return!1},o.Lj=function(){return this.c},o.Mj=function(){return!1},o.ol=function(){return!0},o.Si=function(){return!0},o.Wi=function(e,t){return t},o.Yi=function(){return!1},o.c=0,w(Tt,"EObjectEList",505),b(83,505,Qr,ti),o.Mj=function(){return!0},o.ml=function(){return!1},o.al=function(){return!0},w(Tt,"EObjectContainmentEList",83),b(555,83,Qr,$C),o.Ni=function(){this.b=!0},o.Qj=function(){return this.b},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.b,this.b=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.b=!1},o.b=!1,w(Tt,"EObjectContainmentEList/Unsettable",555),b(1161,555,Qr,mPn),o.Ti=function(e,t){var i,r;return i=u(k5(this,e,t),89),fo(this.e)&&t4(this,new ck(this.a,7,(On(),_oe),Y(t),(r=i.c,D(r,90)?u(r,29):Is),e)),i},o.Uj=function(e,t){return A8e(this,u(e,89),t)},o.Vj=function(e,t){return T8e(this,u(e,89),t)},o.Wj=function(e,t,i){return Ike(this,u(e,89),u(t,89),i)},o.Ij=function(e,t,i,r,c){switch(e){case 3:return W6(this,e,t,i,r,this.i>1);case 5:return W6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ix(this)},o.Gk=function(){me(this)},w(qn,"EClassImpl/1",1161),b(1175,1174,Hcn),o.dj=function(e){var t,i,r,c,s,f,h;if(i=e.gj(),i!=8){if(r=s9e(e),r==0)switch(i){case 1:case 9:{h=e.kj(),h!=null&&(t=Zu(u(h,482)),!t.c&&(t.c=new W3),rT(t.c,e.jj())),f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 3:{f=e.ij(),f!=null&&(c=u(f,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29))));break}case 5:{if(f=e.ij(),f!=null)for(s=u(f,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),ve(t.c,u(e.jj(),29)));break}case 4:{h=e.kj(),h!=null&&(c=u(h,482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj())));break}case 6:{if(h=e.kj(),h!=null)for(s=u(h,16).Kc();s.Ob();)c=u(s.Pb(),482),c.Bb&1||(t=Zu(c),!t.c&&(t.c=new W3),rT(t.c,e.jj()));break}}this.ql(r)}},o.ql=function(e){Uqn(this,e)},o.b=63,w(qn,"ESuperAdapter",1175),b(1176,1175,Hcn,myn),o.ql=function(e){hw(this,e)},w(qn,"EClassImpl/10",1176),b(1165,710,Qr),o.Ei=function(e,t){return Zx(this,e,t)},o.Fi=function(e){return LRn(this,e)},o.Gi=function(e,t){Dk(this,e,t)},o.Hi=function(e){ek(this,e)},o.$i=function(e){return nQ(this,e)},o.Xi=function(e,t){return d$(this,e,t)},o.Wk=function(e,t){throw M(new Pe)},o.Ii=function(){return new yp(this)},o.Ji=function(){return new M7(this)},o.Ki=function(e){return pk(this,e)},o.Xk=function(e,t){throw M(new Pe)},o.Fk=function(e){return this},o.Qj=function(){return this.i!=0},o.Wb=function(e){throw M(new Pe)},o.Gk=function(){throw M(new Pe)},w(Tt,"EcoreEList/UnmodifiableEList",1165),b(328,1165,Qr,pg),o.Yi=function(){return!1},w(Tt,"EcoreEList/UnmodifiableEList/FastCompare",328),b(1168,328,Qr,bFn),o.dd=function(e){var t,i,r;if(D(e,179)&&(t=u(e,179),i=t.Lj(),i!=-1)){for(r=this.i;i4)if(this.fk(e)){if(this.al()){if(r=u(e,54),i=r.Eh(),h=i==this.b&&(this.ml()?r.yh(r.Fh(),u($n(au(this.b),this.Lj()).Hk(),29).kk())==br(u($n(au(this.b),this.Lj()),19)).n:-1-r.Fh()==this.Lj()),this.nl()&&!h&&!i&&r.Jh()){for(c=0;c1||r==-1)):!1},o.ml=function(){var e,t,i;return t=$n(au(this.b),this.Lj()),D(t,102)?(e=u(t,19),i=br(e),!!i):!1},o.nl=function(){var e,t;return t=$n(au(this.b),this.Lj()),D(t,102)?(e=u(t,19),(e.Bb&hr)!=0):!1},o.dd=function(e){var t,i,r,c;if(r=this.zj(e),r>=0)return r;if(this.ol()){for(i=0,c=this.Ej();i=0;--e)py(this,e,this.xj(e));return this.Fj()},o.Qc=function(e){var t;if(this.nl())for(t=this.Ej()-1;t>=0;--t)py(this,t,this.xj(t));return this.Gj(e)},o.Gk=function(){X5(this)},o.Zi=function(e,t){return kNn(this,e,t)},w(Tt,"DelegatingEcoreEList",756),b(1171,756,zcn,NAn),o.qj=function(e,t){rae(this,e,u(t,29))},o.rj=function(e){zle(this,u(e,29))},o.xj=function(e){var t,i;return t=u(L(Sc(this.a),e),89),i=t.c,D(i,90)?u(i,29):(On(),Is)},o.Cj=function(e){var t,i;return t=u(dw(Sc(this.a),e),89),i=t.c,D(i,90)?u(i,29):(On(),Is)},o.Dj=function(e,t){return e7e(this,e,u(t,29))},o.Li=function(){return!1},o.Ij=function(e,t,i,r,c){return null},o.sj=function(){return new yyn(this)},o.tj=function(){me(Sc(this.a))},o.uj=function(e){return hBn(this,e)},o.vj=function(e){var t,i;for(i=e.Kc();i.Ob();)if(t=i.Pb(),!hBn(this,t))return!1;return!0},o.wj=function(e){var t,i,r;if(D(e,15)&&(r=u(e,15),r.gc()==Sc(this.a).i)){for(t=r.Kc(),i=new ne(this);t.Ob();)if(x(t.Pb())!==x(ue(i)))return!1;return!0}return!1},o.yj=function(){var e,t,i,r,c;for(i=1,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ue(t),89),r=(c=e.c,D(c,90)?u(c,29):(On(),Is)),i=31*i+(r?l0(r):0);return i},o.zj=function(e){var t,i,r,c;for(r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();){if(t=u(ue(i),89),x(e)===x((c=t.c,D(c,90)?u(c,29):(On(),Is))))return r;++r}return-1},o.Aj=function(){return Sc(this.a).i==0},o.Bj=function(){return null},o.Ej=function(){return Sc(this.a).i},o.Fj=function(){var e,t,i,r,c,s;for(s=Sc(this.a).i,c=K(ki,Bn,1,s,5,1),i=0,t=new ne(Sc(this.a));t.e!=t.i.gc();)e=u(ue(t),89),c[i++]=(r=e.c,D(r,90)?u(r,29):(On(),Is));return c},o.Gj=function(e){var t,i,r,c,s,f,h;for(h=Sc(this.a).i,e.lengthh&&$t(e,h,null),r=0,i=new ne(Sc(this.a));i.e!=i.i.gc();)t=u(ue(i),89),s=(f=t.c,D(f,90)?u(f,29):(On(),Is)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=Sc(this.a),t=0,r=Sc(this.a).i;t>16,c>=0?_x(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,6,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),Xc(this.a,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),s.wk().zk(this,iu(this),t-se((On(),Na)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 6:return So(this,null,6,i);case 7:return!this.A&&(this.A=new Tu(fu,this,7)),cr(this.A,e,i);case 9:return!this.a&&(this.a=new q(Bl,this,9,5)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Na)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Na)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return!!K0(this);case 4:return!!aY(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return!!D4(this);case 7:return!!this.A&&this.A.i!=0;case 8:return(this.Bb&256)==0;case 9:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:xM(this,Oe(t));return;case 2:wL(this,Oe(t));return;case 5:Lm(this,Oe(t));return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A),!this.A&&(this.A=new Tu(fu,this,7)),Bt(this.A,u(t,16));return;case 8:BT(this,on(un(t)));return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a),!this.a&&(this.a=new q(Bl,this,9,5)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),Na)),$n((i=u(Un(this,16),29),i||Na),e),t)},o.ii=function(){return On(),Na},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,184)&&(u(this.Cb,184).tb=null),zc(this,null);return;case 2:um(this,null),G4(this,this.D);return;case 5:Lm(this,null);return;case 7:!this.A&&(this.A=new Tu(fu,this,7)),me(this.A);return;case 8:BT(this,!0);return;case 9:!this.a&&(this.a=new q(Bl,this,9,5)),me(this.a);return}Wo(this,e-se((On(),Na)),$n((t=u(Un(this,16),29),t||Na),e))},o.pi=function(){var e,t;if(this.a)for(e=0,t=this.a.i;e>16==5?u(this.Cb,685):null}return zo(this,e-se((On(),S1)),$n((r=u(Un(this,16),29),r||S1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 5:return this.Cb&&(i=(c=this.Db>>16,c>=0?uKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,5,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),s.wk().zk(this,iu(this),t-se((On(),S1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 5:return So(this,null,5,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),S1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),S1)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return!!this.b;case 4:return this.c!=null;case 5:return!!(this.Db>>16==5&&u(this.Cb,685))}return Uo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:v$(this,u(t,17).a);return;case 3:iHn(this,u(t,2039));return;case 4:y$(this,Oe(t));return}Jo(this,e-se((On(),S1)),$n((i=u(Un(this,16),29),i||S1),e),t)},o.ii=function(){return On(),S1},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:v$(this,0);return;case 3:iHn(this,null);return;case 4:y$(this,null);return}Wo(this,e-se((On(),S1)),$n((t=u(Un(this,16),29),t||S1),e))},o.Ib=function(){var e;return e=this.c,e??this.zb},o.b=null,o.c=null,o.d=0,w(qn,"EEnumLiteralImpl",582);var LNe=Nt(qn,"EFactoryImpl/InternalEDateTimeFormat");b(499,1,{2114:1},X9),w(qn,"EFactoryImpl/1ClientInternalEDateTimeFormat",499),b(248,120,{110:1,94:1,93:1,89:1,58:1,114:1,54:1,99:1,248:1,119:1,120:1},Jd),o.Ch=function(e,t,i){var r;return i=So(this,e,t,i),this.e&&D(e,179)&&(r=MA(this,this.e),r!=this.c&&(i=Nm(this,r,i))),i},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.f;case 1:return!this.d&&(this.d=new ti(jr,this,1)),this.d;case 2:return t?BA(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?Lx(this):this.a}return zo(this,e-se((On(),jb)),$n((r=u(Un(this,16),29),r||jb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return QFn(this,null,i);case 1:return!this.d&&(this.d=new ti(jr,this,1)),cr(this.d,e,i);case 3:return YFn(this,null,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),jb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),jb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.f;case 1:return!!this.d&&this.d.i!=0;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return Uo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.bi=function(e,t){var i;switch(e){case 0:MKn(this,u(t,89));return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d),!this.d&&(this.d=new ti(jr,this,1)),Bt(this.d,u(t,16));return;case 3:UZ(this,u(t,89));return;case 4:fnn(this,u(t,850));return;case 5:K4(this,u(t,142));return}Jo(this,e-se((On(),jb)),$n((i=u(Un(this,16),29),i||jb),e),t)},o.ii=function(){return On(),jb},o.ki=function(e){var t;switch(e){case 0:MKn(this,null);return;case 1:!this.d&&(this.d=new ti(jr,this,1)),me(this.d);return;case 3:UZ(this,null);return;case 4:fnn(this,null);return;case 5:K4(this,null);return}Wo(this,e-se((On(),jb)),$n((t=u(Un(this,16),29),t||jb),e))},o.Ib=function(){var e;return e=new mo(Hs(this)),e.a+=" (expression: ",_F(this,e),e.a+=")",e.a};var Gdn;w(qn,"EGenericTypeImpl",248),b(2067,2062,zS),o.Gi=function(e,t){OAn(this,e,t)},o.Wk=function(e,t){return OAn(this,this.gc(),e),t},o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.Ji()},o.pj=function(){return new Myn(this)},o.Ji=function(){return this.Ki(0)},o.Ki=function(e){return this.pj().fd(e)},o.Xk=function(e,t){return iw(this,e,!0),t},o.Ti=function(e,t){var i,r;return r=Ux(this,t),i=this.fd(e),i.Rb(r),r},o.Ui=function(e,t){var i;iw(this,t,!0),i=this.fd(e),i.Rb(t)},w(Tt,"AbstractSequentialInternalEList",2067),b(496,2067,zS,C7),o.$i=function(e){return Zo(this.pj(),e)},o.Ii=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.pj=function(){return new JMn(this.a,this.b)},o.Ji=function(){return this.b==null?(Gl(),Gl(),dE):this.sl()},o.Ki=function(e){var t,i;if(this.b==null){if(e<0||e>1)throw M(new Ir(p8+e+", size=0"));return Gl(),Gl(),dE}for(i=this.sl(),t=0;t0;)if(t=this.c[--this.d],(!this.e||t.pk()!=Hv||t.Lj()!=0)&&(!this.vl()||this.b.Xh(t))){if(s=this.b.Nh(t,this.ul()),this.f=(dr(),u(t,69).xk()),this.f||t.Jk()){if(this.ul()?(r=u(s,15),this.k=r):(r=u(s,71),this.k=this.j=r),D(this.k,59)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j.Ki(this.k.gc()):this.k.fd(this.k.gc()),this.p?v_n(this,this.p):I_n(this))return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}else if(s!=null)return this.k=null,this.p=null,i=s,this.i=i,this.g=-2,!0}return this.k=null,this.p=null,this.g=-1,!1}else return c=this.p?this.p.Ub():this.j?this.j.$i(--this.n):this.k.Xb(--this.n),this.f?(e=u(c,76),e.Lk(),i=e.md(),this.i=i):(i=c,this.i=i),this.g=-3,!0}},o.Pb=function(){return PT(this)},o.Tb=function(){return this.a},o.Ub=function(){var e;if(this.g<-1||this.Sb())return--this.a,this.g=0,e=this.i,this.Sb(),e;throw M(new nc)},o.Vb=function(){return this.a-1},o.Qb=function(){throw M(new Pe)},o.ul=function(){return!1},o.Wb=function(e){throw M(new Pe)},o.vl=function(){return!0},o.a=0,o.d=0,o.f=!1,o.g=0,o.n=0,o.o=0;var dE;w(Tt,"EContentsEList/FeatureIteratorImpl",287),b(711,287,XS,nV),o.ul=function(){return!0},w(Tt,"EContentsEList/ResolvingFeatureIteratorImpl",711),b(1178,711,XS,gAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/1",1178),b(1179,287,XS,pAn),o.vl=function(){return!1},w(qn,"ENamedElementImpl/1/2",1179),b(39,152,Wy,Vb,UN,Ci,c$,ml,Rs,dQ,JOn,bQ,QOn,OJ,YOn,pQ,ZOn,DJ,nDn,wQ,eDn,H6,ck,MN,gQ,tDn,LJ,iDn),o.Kj=function(){return JJ(this)},o.Rj=function(){var e;return e=JJ(this),e?e.ik():null},o.hj=function(e){return this.b==-1&&this.a&&(this.b=this.c.Hh(this.a.Lj(),this.a.pk())),this.c.yh(this.b,e)},o.jj=function(){return this.c},o.Sj=function(){var e;return e=JJ(this),e?e.tk():!1},o.b=-1,w(qn,"ENotificationImpl",39),b(411,292,{110:1,94:1,93:1,155:1,197:1,58:1,62:1,114:1,481:1,54:1,99:1,158:1,411:1,292:1,119:1,120:1},hD),o.Ah=function(e){return fKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,29):null;case 11:return!this.d&&(this.d=new Tu(fu,this,11)),this.d;case 12:return!this.c&&(this.c=new q(yb,this,12,10)),this.c;case 13:return!this.a&&(this.a=new P7(this,this)),this.a;case 14:return no(this)}return zo(this,e-se((On(),P1)),$n((r=u(Un(this,16),29),r||P1),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?fKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),Xc(this.c,e,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),s.wk().zk(this,iu(this),t-se((On(),P1)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i);case 11:return!this.d&&(this.d=new Tu(fu,this,11)),cr(this.d,e,i);case 12:return!this.c&&(this.c=new q(yb,this,12,10)),cr(this.c,e,i);case 14:return cr(no(this),e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),P1)),t),69),c.wk().Ak(this,iu(this),t-se((On(),P1)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,29));case 11:return!!this.d&&this.d.i!=0;case 12:return!!this.c&&this.c.i!=0;case 13:return!!this.a&&no(this.a.a).i!=0&&!(this.b&&Ox(this.b));case 14:return!!this.b&&Ox(this.b)}return Uo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Bf(this,u(t,89),null),r&&r.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d),!this.d&&(this.d=new Tu(fu,this,11)),Bt(this.d,u(t,16));return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c),!this.c&&(this.c=new q(yb,this,12,10)),Bt(this.c,u(t,16));return;case 13:!this.a&&(this.a=new P7(this,this)),X5(this.a),!this.a&&(this.a=new P7(this,this)),Bt(this.a,u(t,16));return;case 14:me(no(this)),Bt(no(this),u(t,16));return}Jo(this,e-se((On(),P1)),$n((i=u(Un(this,16),29),i||P1),e),t)},o.ii=function(){return On(),P1},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Bf(this,null,null),i&&i.oj();return;case 11:!this.d&&(this.d=new Tu(fu,this,11)),me(this.d);return;case 12:!this.c&&(this.c=new q(yb,this,12,10)),me(this.c);return;case 13:this.a&&X5(this.a);return;case 14:this.b&&me(this.b);return}Wo(this,e-se((On(),P1)),$n((t=u(Un(this,16),29),t||P1),e))},o.pi=function(){var e,t;if(this.c)for(e=0,t=this.c.i;eh&&$t(e,h,null),r=0,i=new ne(no(this.a));i.e!=i.i.gc();)t=u(ue(i),89),s=(f=t.c,f||(On(),Zf)),$t(e,r++,s);return e},o.Hj=function(){var e,t,i,r,c;for(c=new Hl,c.a+="[",e=no(this.a),t=0,r=no(this.a).i;t1);case 5:return W6(this,e,t,i,r,this.i-u(i,15).gc()>0);default:return new ml(this.e,e,this.c,t,i,r,!0)}},o.Tj=function(){return!0},o.Qj=function(){return Ox(this)},o.Gk=function(){me(this)},w(qn,"EOperationImpl/2",1377),b(507,1,{2037:1,507:1},LMn),w(qn,"EPackageImpl/1",507),b(14,83,Qr,q),o.il=function(){return this.d},o.jl=function(){return this.b},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectContainmentWithInverseEList",14),b(365,14,Qr,jp),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Resolving",365),b(308,365,Qr,Hb),o.Ni=function(){this.a.tb=null},w(qn,"EPackageImpl/2",308),b(1278,1,{},qse),w(qn,"EPackageImpl/3",1278),b(733,45,n2,tz),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},w(qn,"EPackageRegistryImpl",733),b(518,292,{110:1,94:1,93:1,155:1,197:1,58:1,2116:1,114:1,481:1,54:1,99:1,158:1,518:1,292:1,119:1,120:1},lD),o.Ah=function(e){return hKn(this,e)},o.Lh=function(e,t,i){var r,c,s;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),s=this.t,s>1||s==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?u(this.Cb,62):null}return zo(this,e-se((On(),ig)),$n((r=u(Un(this,16),29),r||ig),e),t,i)},o.Sh=function(e,t,i){var r,c,s;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Xc(this.Ab,e,i);case 10:return this.Cb&&(i=(c=this.Db>>16,c>=0?hKn(this,i):this.Cb.Th(this,-1-c,null,i))),So(this,e,10,i)}return s=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),s.wk().zk(this,iu(this),t-se((On(),ig)),e,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 9:return hN(this,i);case 10:return So(this,null,10,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),ig)),t),69),c.wk().Ak(this,iu(this),t-se((On(),ig)),e,i)},o.Wh=function(e){var t,i,r;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return r=this.t,r>1||r==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return!!(this.Db>>16==10&&u(this.Cb,62))}return Uo(this,e-se((On(),ig)),$n((t=u(Un(this,16),29),t||ig),e))},o.ii=function(){return On(),ig},w(qn,"EParameterImpl",518),b(102,462,{110:1,94:1,93:1,155:1,197:1,58:1,19:1,179:1,69:1,114:1,481:1,54:1,99:1,158:1,102:1,462:1,292:1,119:1,120:1,692:1},cV),o.Lh=function(e,t,i){var r,c,s,f;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return _n(),!!(this.Bb&256);case 3:return _n(),!!(this.Bb&512);case 4:return Y(this.s);case 5:return Y(this.t);case 6:return _n(),f=this.t,f>1||f==-1;case 7:return _n(),c=this.s,c>=1;case 8:return t?gs(this):this.r;case 9:return this.q;case 10:return _n(),!!(this.Bb&Gs);case 11:return _n(),!!(this.Bb&Tw);case 12:return _n(),!!(this.Bb&vw);case 13:return this.j;case 14:return Tm(this);case 15:return _n(),!!(this.Bb&$u);case 16:return _n(),!!(this.Bb&wh);case 17:return Gb(this);case 18:return _n(),!!(this.Bb&kc);case 19:return _n(),s=br(this),!!(s&&s.Bb&kc);case 20:return _n(),!!(this.Bb&hr);case 21:return t?br(this):this.b;case 22:return t?tY(this):ALn(this);case 23:return!this.a&&(this.a=new Eg(ng,this,23)),this.a}return zo(this,e-se((On(),U2)),$n((r=u(Un(this,16),29),r||U2),e),t,i)},o.Wh=function(e){var t,i,r,c;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return(this.Bb&256)==0;case 3:return(this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return c=this.t,c>1||c==-1;case 7:return i=this.s,i>=1;case 8:return!!this.r&&!this.q.e&&v0(this.q).i==0;case 9:return!!this.q&&!(this.r&&!this.q.e&&v0(this.q).i==0);case 10:return(this.Bb&Gs)==0;case 11:return(this.Bb&Tw)!=0;case 12:return(this.Bb&vw)!=0;case 13:return this.j!=null;case 14:return Tm(this)!=null;case 15:return(this.Bb&$u)!=0;case 16:return(this.Bb&wh)!=0;case 17:return!!Gb(this);case 18:return(this.Bb&kc)!=0;case 19:return r=br(this),!!r&&(r.Bb&kc)!=0;case 20:return(this.Bb&hr)==0;case 21:return!!this.b;case 22:return!!ALn(this);case 23:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),U2)),$n((t=u(Un(this,16),29),t||U2),e))},o.bi=function(e,t){var i,r;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:FN(this,Oe(t));return;case 2:c1(this,on(un(t)));return;case 3:u1(this,on(un(t)));return;case 4:e1(this,u(t,17).a);return;case 5:Zb(this,u(t,17).a);return;case 8:ad(this,u(t,142));return;case 9:r=Bf(this,u(t,89),null),r&&r.oj();return;case 10:fm(this,on(un(t)));return;case 11:am(this,on(un(t)));return;case 12:hm(this,on(un(t)));return;case 13:wX(this,Oe(t));return;case 15:lm(this,on(un(t)));return;case 16:dm(this,on(un(t)));return;case 18:A2e(this,on(un(t)));return;case 20:NY(this,on(un(t)));return;case 21:DQ(this,u(t,19));return;case 23:!this.a&&(this.a=new Eg(ng,this,23)),me(this.a),!this.a&&(this.a=new Eg(ng,this,23)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),U2)),$n((i=u(Un(this,16),29),i||U2),e),t)},o.ii=function(){return On(),U2},o.ki=function(e){var t,i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:D(this.Cb,90)&&hw(Zu(u(this.Cb,90)),4),zc(this,null);return;case 2:c1(this,!0);return;case 3:u1(this,!0);return;case 4:e1(this,0);return;case 5:Zb(this,1);return;case 8:ad(this,null);return;case 9:i=Bf(this,null,null),i&&i.oj();return;case 10:fm(this,!0);return;case 11:am(this,!1);return;case 12:hm(this,!1);return;case 13:this.i=null,kT(this,null);return;case 15:lm(this,!1);return;case 16:dm(this,!1);return;case 18:LY(this,!1),D(this.Cb,90)&&hw(Zu(u(this.Cb,90)),2);return;case 20:NY(this,!0);return;case 21:DQ(this,null);return;case 23:!this.a&&(this.a=new Eg(ng,this,23)),me(this.a);return}Wo(this,e-se((On(),U2)),$n((t=u(Un(this,16),29),t||U2),e))},o.pi=function(){tY(this),P4(Lr((Du(),zi),this)),gs(this),this.Bb|=1},o.uk=function(){return br(this)},o._k=function(){var e;return e=br(this),!!e&&(e.Bb&kc)!=0},o.al=function(){return(this.Bb&kc)!=0},o.bl=function(){return(this.Bb&hr)!=0},o.Yk=function(e,t){return this.c=null,EY(this,e,t)},o.Ib=function(){var e;return this.Db&64?$A(this):(e=new ls($A(this)),e.a+=" (containment: ",ql(e,(this.Bb&kc)!=0),e.a+=", resolveProxies: ",ql(e,(this.Bb&hr)!=0),e.a+=")",e.a)},w(qn,"EReferenceImpl",102),b(561,120,{110:1,44:1,94:1,93:1,136:1,58:1,114:1,54:1,99:1,561:1,119:1,120:1},Mvn),o.Fb=function(e){return this===e},o.ld=function(){return this.b},o.md=function(){return this.c},o.Hb=function(){return l0(this)},o.Di=function(e){Dbe(this,Oe(e))},o.nd=function(e){return pbe(this,Oe(e))},o.Lh=function(e,t,i){var r;switch(e){case 0:return this.b;case 1:return this.c}return zo(this,e-se((On(),ar)),$n((r=u(Un(this,16),29),r||ar),e),t,i)},o.Wh=function(e){var t;switch(e){case 0:return this.b!=null;case 1:return this.c!=null}return Uo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.bi=function(e,t){var i;switch(e){case 0:Lbe(this,Oe(t));return;case 1:PQ(this,Oe(t));return}Jo(this,e-se((On(),ar)),$n((i=u(Un(this,16),29),i||ar),e),t)},o.ii=function(){return On(),ar},o.ki=function(e){var t;switch(e){case 0:SQ(this,null);return;case 1:PQ(this,null);return}Wo(this,e-se((On(),ar)),$n((t=u(Un(this,16),29),t||ar),e))},o.Bi=function(){var e;return this.a==-1&&(e=this.b,this.a=e==null?0:t1(e)),this.a},o.Ci=function(e){this.a=e},o.Ib=function(){var e;return this.Db&64?Hs(this):(e=new ls(Hs(this)),e.a+=" (key: ",Er(e,this.b),e.a+=", value: ",Er(e,this.c),e.a+=")",e.a)},o.a=-1,o.b=null,o.c=null;var pc=w(qn,"EStringToStringMapEntryImpl",561),Qoe=Nt(Tt,"FeatureMap/Entry/Internal");b(576,1,VS),o.xl=function(e){return this.yl(u(e,54))},o.yl=function(e){return this.xl(e)},o.Fb=function(e){var t,i;return this===e?!0:D(e,76)?(t=u(e,76),t.Lk()==this.c?(i=this.md(),i==null?t.md()==null:rt(i,t.md())):!1):!1},o.Lk=function(){return this.c},o.Hb=function(){var e;return e=this.md(),mt(this.c)^(e==null?0:mt(e))},o.Ib=function(){var e,t;return e=this.c,t=jo(e.qk()).yi(),e.xe(),(t!=null&&t.length!=0?t+":"+e.xe():e.xe())+"="+this.md()},w(qn,"EStructuralFeatureImpl/BasicFeatureMapEntry",576),b(791,576,VS,bV),o.yl=function(e){return new bV(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return gve(this,e,this.a,t,i)},o.Al=function(e,t,i){return pve(this,e,this.a,t,i)},w(qn,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",791),b(1350,1,{},NMn),o.yk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Yl(this.a).Fk(r)},o.zk=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Pl(this.a,r,c)},o.Ak=function(e,t,i,r,c){var s;return s=u(x4(e,this.b),220),s.Ql(this.a,r,c)},o.Bk=function(e,t,i){var r;return r=u(x4(e,this.b),220),r.Yl(this.a).Qj()},o.Ck=function(e,t,i,r){var c;c=u(x4(e,this.b),220),c.Yl(this.a).Wb(r)},o.Dk=function(e,t,i){return u(x4(e,this.b),220).Yl(this.a)},o.Ek=function(e,t,i){var r;r=u(x4(e,this.b),220),r.Yl(this.a).Gk()},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1350),b(91,1,{},Xl,Za,Wl,rd),o.yk=function(e,t,i,r,c){var s;if(s=t.li(i),s==null&&t.mi(i,s=XA(this,e)),!c)switch(this.e){case 50:case 41:return u(s,597).bk();case 40:return u(s,220).Vl()}return s},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),f==null&&t.mi(i,f=XA(this,e)),s=u(f,71).Wk(r,c),s},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),s!=null&&(c=u(s,71).Xk(r,c)),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&u(r,79).Qj()},o.Ck=function(e,t,i,r){var c;c=u(t.li(i),79),!c&&t.mi(i,c=XA(this,e)),c.Wb(r)},o.Dk=function(e,t,i){var r,c;return c=t.li(i),c==null&&t.mi(i,c=XA(this,e)),D(c,79)?u(c,79):(r=u(t.li(i),15),new Eyn(r))},o.Ek=function(e,t,i){var r;r=u(t.li(i),79),!r&&t.mi(i,r=XA(this,e)),r.Gk()},o.b=0,o.e=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateMany",91),b(512,1,{}),o.zk=function(e,t,i,r,c){throw M(new Pe)},o.Ak=function(e,t,i,r,c){throw M(new Pe)},o.Dk=function(e,t,i){return new DIn(this,e,t,i)};var rl;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle",512),b(1367,1,TK,DIn),o.Fk=function(e){return this.a.yk(this.c,this.d,this.b,e,!0)},o.Qj=function(){return this.a.Bk(this.c,this.d,this.b)},o.Wb=function(e){this.a.Ck(this.c,this.d,this.b,e)},o.Gk=function(){this.a.Ek(this.c,this.d,this.b)},o.b=0,w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1367),b(784,512,{},tJ),o.yk=function(e,t,i,r,c){return AF(e,e.Ph(),e.Fh())==this.b?this.bl()&&r?dF(e):e.Ph():null},o.zk=function(e,t,i,r,c){var s,f;return e.Ph()&&(c=(s=e.Fh(),s>=0?e.Ah(c):e.Ph().Th(e,-1-s,null,c))),f=Ot(e.Dh(),this.e),e.Ch(r,f,c)},o.Ak=function(e,t,i,r,c){var s;return s=Ot(e.Dh(),this.e),e.Ch(null,s,c)},o.Bk=function(e,t,i){var r;return r=Ot(e.Dh(),this.e),!!e.Ph()&&e.Fh()==r},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(D(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));if(c=e.Ph(),f=Ot(e.Dh(),this.e),x(r)!==x(c)||e.Fh()!=f&&r!=null){if(mm(e,u(r,58)))throw M(new Gn(w8+e.Ib()));l=null,c&&(l=(s=e.Fh(),s>=0?e.Ah(l):e.Ph().Th(e,-1-s,null,l))),h=u(r,54),h&&(l=h.Rh(e,Ot(h.Dh(),this.b),null,l)),l=e.Ch(h,f,l),l&&l.oj()}else e.vh()&&e.wh()&&it(e,new Ci(e,1,f,r,r))},o.Ek=function(e,t,i){var r,c,s,f;r=e.Ph(),r?(f=(c=e.Fh(),c>=0?e.Ah(null):e.Ph().Th(e,-1-c,null,null)),s=Ot(e.Dh(),this.e),f=e.Ch(null,s,f),f&&f.oj()):e.vh()&&e.wh()&&it(e,new H6(e,1,this.e,null,null))},o.bl=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",784),b(1351,784,{},jSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1351),b(574,512,{}),o.yk=function(e,t,i,r,c){var s;return s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null&&(x(r)===x(rl)||!rt(r,this.b))},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=(s=t.li(i),s==null?this.b:x(s)===x(rl)?null:s),r==null?this.c!=null?(t.mi(i,null),r=this.b):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r)),it(e,this.d.Cl(e,1,this.e,c,r))):r==null?this.c!=null?t.mi(i,null):this.b!=null?t.mi(i,rl):t.mi(i,null):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=(c=t.li(i),c==null?this.b:x(c)===x(rl)?null:c),t.ni(i),it(e,this.d.Cl(e,1,this.e,r,this.b))):t.ni(i)},o.Bl=function(e){throw M(new Nyn)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",574),b(h2,1,{},Tvn),o.Cl=function(e,t,i,r,c){return new H6(e,t,i,r,c)},o.Dl=function(e,t,i,r,c,s){return new MN(e,t,i,r,c,s)};var zdn,Xdn,Vdn,Wdn,Jdn,Qdn,Ydn,TU,Zdn;w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",h2),b(1368,h2,{},Avn),o.Cl=function(e,t,i,r,c){return new LJ(e,t,i,on(un(r)),on(un(c)))},o.Dl=function(e,t,i,r,c,s){return new iDn(e,t,i,on(un(r)),on(un(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1368),b(1369,h2,{},Svn),o.Cl=function(e,t,i,r,c){return new dQ(e,t,i,u(r,222).a,u(c,222).a)},o.Dl=function(e,t,i,r,c,s){return new JOn(e,t,i,u(r,222).a,u(c,222).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1369),b(1370,h2,{},Pvn),o.Cl=function(e,t,i,r,c){return new bQ(e,t,i,u(r,180).a,u(c,180).a)},o.Dl=function(e,t,i,r,c,s){return new QOn(e,t,i,u(r,180).a,u(c,180).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1370),b(1371,h2,{},Ivn),o.Cl=function(e,t,i,r,c){return new OJ(e,t,i,$(R(r)),$(R(c)))},o.Dl=function(e,t,i,r,c,s){return new YOn(e,t,i,$(R(r)),$(R(c)),s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1371),b(1372,h2,{},Ovn),o.Cl=function(e,t,i,r,c){return new pQ(e,t,i,u(r,161).a,u(c,161).a)},o.Dl=function(e,t,i,r,c,s){return new ZOn(e,t,i,u(r,161).a,u(c,161).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1372),b(1373,h2,{},Dvn),o.Cl=function(e,t,i,r,c){return new DJ(e,t,i,u(r,17).a,u(c,17).a)},o.Dl=function(e,t,i,r,c,s){return new nDn(e,t,i,u(r,17).a,u(c,17).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1373),b(1374,h2,{},Lvn),o.Cl=function(e,t,i,r,c){return new wQ(e,t,i,u(r,168).a,u(c,168).a)},o.Dl=function(e,t,i,r,c,s){return new eDn(e,t,i,u(r,168).a,u(c,168).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1374),b(1375,h2,{},Nvn),o.Cl=function(e,t,i,r,c){return new gQ(e,t,i,u(r,191).a,u(c,191).a)},o.Dl=function(e,t,i,r,c,s){return new tDn(e,t,i,u(r,191).a,u(c,191).a,s)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1375),b(1353,574,{},LIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1353),b(1354,574,{},kPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1354),b(785,574,{}),o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s;e.vh()&&e.wh()?(c=!0,s=t.li(i),s==null?(c=!1,s=this.b):x(s)===x(rl)&&(s=null),r==null?this.c!=null?(t.mi(i,null),r=this.b):t.mi(i,rl):(this.Bl(r),t.mi(i,r)),it(e,this.d.Dl(e,1,this.e,s,r,!c))):r==null?this.c!=null?t.mi(i,null):t.mi(i,rl):(this.Bl(r),t.mi(i,r))},o.Ek=function(e,t,i){var r,c;e.vh()&&e.wh()?(r=!0,c=t.li(i),c==null?(r=!1,c=this.b):x(c)===x(rl)&&(c=null),t.ni(i),it(e,this.d.Dl(e,2,this.e,c,this.b,r))):t.ni(i)},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",785),b(1355,785,{},NIn),o.Bl=function(e){if(!this.a.fk(e))throw M(new i4(WS+wo(e)+JS+this.a+"'"))},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1355),b(1356,785,{},yPn),o.Bl=function(e){},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1356),b(410,512,{},oM),o.yk=function(e,t,i,r,c){var s,f,h,l,a;if(a=t.li(i),this.tk()&&x(a)===x(rl))return null;if(this.bl()&&r&&a!=null){if(h=u(a,54),h.Vh()&&(l=ea(e,h),h!=l)){if(!OF(this.a,l))throw M(new i4(WS+wo(l)+JS+this.a+"'"));t.mi(i,a=l),this.al()&&(s=u(l,54),f=h.Th(e,this.b?Ot(h.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,null),!s.Ph()&&(f=s.Rh(e,this.b?Ot(s.Dh(),this.b):-1-Ot(e.Dh(),this.e),null,f)),f&&f.oj()),e.vh()&&e.wh()&&it(e,new H6(e,9,this.e,h,l))}return a}else return a},o.zk=function(e,t,i,r,c){var s,f;return f=t.li(i),x(f)===x(rl)&&(f=null),t.mi(i,r),this.Mj()?x(f)!==x(r)&&f!=null&&(s=u(f,54),c=s.Th(e,Ot(s.Dh(),this.b),null,c)):this.al()&&f!=null&&(c=u(f,54).Th(e,-1-Ot(e.Dh(),this.e),null,c)),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),c.nj(new H6(e,1,this.e,f,r))),c},o.Ak=function(e,t,i,r,c){var s;return s=t.li(i),x(s)===x(rl)&&(s=null),t.ni(i),e.vh()&&e.wh()&&(!c&&(c=new F1(4)),this.tk()?c.nj(new H6(e,2,this.e,s,null)):c.nj(new H6(e,1,this.e,s,null))),c},o.Bk=function(e,t,i){var r;return r=t.li(i),r!=null},o.Ck=function(e,t,i,r){var c,s,f,h,l;if(r!=null&&!OF(this.a,r))throw M(new i4(WS+(D(r,58)?qZ(u(r,58).Dh()):fQ(wo(r)))+JS+this.a+"'"));l=t.li(i),h=l!=null,this.tk()&&x(l)===x(rl)&&(l=null),f=null,this.Mj()?x(l)!==x(r)&&(l!=null&&(c=u(l,54),f=c.Th(e,Ot(c.Dh(),this.b),null,f)),r!=null&&(c=u(r,54),f=c.Rh(e,Ot(c.Dh(),this.b),null,f))):this.al()&&x(l)!==x(r)&&(l!=null&&(f=u(l,54).Th(e,-1-Ot(e.Dh(),this.e),null,f)),r!=null&&(f=u(r,54).Rh(e,-1-Ot(e.Dh(),this.e),null,f))),r==null&&this.tk()?t.mi(i,rl):t.mi(i,r),e.vh()&&e.wh()?(s=new MN(e,1,this.e,l,r,this.tk()&&!h),f?(f.nj(s),f.oj()):it(e,s)):f&&f.oj()},o.Ek=function(e,t,i){var r,c,s,f,h;h=t.li(i),f=h!=null,this.tk()&&x(h)===x(rl)&&(h=null),s=null,h!=null&&(this.Mj()?(r=u(h,54),s=r.Th(e,Ot(r.Dh(),this.b),null,s)):this.al()&&(s=u(h,54).Th(e,-1-Ot(e.Dh(),this.e),null,s))),t.ni(i),e.vh()&&e.wh()?(c=new MN(e,this.tk()?2:1,this.e,h,null,f),s?(s.nj(c),s.oj()):it(e,c)):s&&s.oj()},o.Mj=function(){return!1},o.al=function(){return!1},o.bl=function(){return!1},o.tk=function(){return!1},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",410),b(575,410,{},PL),o.al=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",575),b(1359,575,{},vAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1359),b(787,575,{},eV),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",787),b(1361,787,{},kAn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1361),b(650,575,{},HL),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",650),b(1360,650,{},ESn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1360),b(788,650,{},_V),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",788),b(1362,788,{},CSn),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1362),b(651,410,{},tV),o.bl=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",651),b(1363,651,{},yAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1363),b(789,651,{},RV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",789),b(1364,789,{},MSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1364),b(1357,410,{},jAn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1357),b(786,410,{},KV),o.Mj=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",786),b(1358,786,{},TSn),o.tk=function(){return!0},w(qn,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1358),b(790,576,VS,FW),o.yl=function(e){return new FW(this.a,this.c,e)},o.md=function(){return this.b},o.zl=function(e,t,i){return b4e(this,e,this.b,i)},o.Al=function(e,t,i){return w4e(this,e,this.b,i)},w(qn,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",790),b(1365,1,TK,Eyn),o.Fk=function(e){return this.a},o.Qj=function(){return D(this.a,97)?u(this.a,97).Qj():!this.a.dc()},o.Wb=function(e){this.a.$b(),this.a.Gc(u(e,15))},o.Gk=function(){D(this.a,97)?u(this.a,97).Gk():this.a.$b()},w(qn,"EStructuralFeatureImpl/SettingMany",1365),b(1366,576,VS,VDn),o.xl=function(e){return new DL((at(),F9),this.b.ri(this.a,e))},o.md=function(){return null},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1366),b(652,576,VS,DL),o.xl=function(e){return new DL(this.c,e)},o.md=function(){return this.a},o.zl=function(e,t,i){return i},o.Al=function(e,t,i){return i},w(qn,"EStructuralFeatureImpl/SimpleFeatureMapEntry",652),b(403,506,Ch,W3),o.aj=function(e){return K(As,Bn,29,e,0,1)},o.Yi=function(){return!1},w(qn,"ESuperAdapter/1",403),b(457,448,{110:1,94:1,93:1,155:1,197:1,58:1,114:1,850:1,54:1,99:1,158:1,457:1,119:1,120:1},UO),o.Lh=function(e,t,i){var r;switch(e){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new B6(this,jr,this)),this.a}return zo(this,e-se((On(),Eb)),$n((r=u(Un(this,16),29),r||Eb),e),t,i)},o.Uh=function(e,t,i){var r,c;switch(t){case 0:return!this.Ab&&(this.Ab=new q(Ue,this,0,3)),cr(this.Ab,e,i);case 2:return!this.a&&(this.a=new B6(this,jr,this)),cr(this.a,e,i)}return c=u($n((r=u(Un(this,16),29),r||(On(),Eb)),t),69),c.wk().Ak(this,iu(this),t-se((On(),Eb)),e,i)},o.Wh=function(e){var t;switch(e){case 0:return!!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return!!this.a&&this.a.i!=0}return Uo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},o.bi=function(e,t){var i;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab),!this.Ab&&(this.Ab=new q(Ue,this,0,3)),Bt(this.Ab,u(t,16));return;case 1:zc(this,Oe(t));return;case 2:!this.a&&(this.a=new B6(this,jr,this)),me(this.a),!this.a&&(this.a=new B6(this,jr,this)),Bt(this.a,u(t,16));return}Jo(this,e-se((On(),Eb)),$n((i=u(Un(this,16),29),i||Eb),e),t)},o.ii=function(){return On(),Eb},o.ki=function(e){var t;switch(e){case 0:!this.Ab&&(this.Ab=new q(Ue,this,0,3)),me(this.Ab);return;case 1:zc(this,null);return;case 2:!this.a&&(this.a=new B6(this,jr,this)),me(this.a);return}Wo(this,e-se((On(),Eb)),$n((t=u(Un(this,16),29),t||Eb),e))},w(qn,"ETypeParameterImpl",457),b(458,83,Qr,B6),o.Nj=function(e,t){return Pye(this,u(e,89),t)},o.Oj=function(e,t){return Iye(this,u(e,89),t)},w(qn,"ETypeParameterImpl/1",458),b(647,45,n2,aD),o.ec=function(){return new NE(this)},w(qn,"ETypeParameterImpl/2",647),b(570,Kf,Lu,NE),o.Fc=function(e){return VAn(this,u(e,89))},o.Gc=function(e){var t,i,r;for(r=!1,i=e.Kc();i.Ob();)t=u(i.Pb(),89),Ve(this.a,t,"")==null&&(r=!0);return r},o.$b=function(){Hu(this.a)},o.Hc=function(e){return Zc(this.a,e)},o.Kc=function(){var e;return e=new sd(new Ua(this.a).a),new $E(e)},o.Mc=function(e){return BLn(this,e)},o.gc=function(){return c6(this.a)},w(qn,"ETypeParameterImpl/2/1",570),b(571,1,Si,$E),o.Nb=function(e){_i(this,e)},o.Pb=function(){return u(L0(this.a).ld(),89)},o.Ob=function(){return this.a.b},o.Qb=function(){XNn(this.a)},w(qn,"ETypeParameterImpl/2/1/1",571),b(1329,45,n2,djn),o._b=function(e){return Ai(e)?AN(this,e):!!wr(this.f,e)},o.xc=function(e){var t,i;return t=Ai(e)?Nc(this,e):Kr(wr(this.f,e)),D(t,851)?(i=u(t,851),t=i.Kk(),Ve(this,u(e,241),t),t):t??(e==null?(OD(),Zoe):null)},w(qn,"EValidatorRegistryImpl",1329),b(1349,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,2040:1,54:1,99:1,158:1,119:1,120:1},$vn),o.ri=function(e,t){switch(e.hk()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return t==null?null:Jr(t);case 25:return Tme(t);case 27:return K4e(t);case 28:return _4e(t);case 29:return t==null?null:MTn(O9[0],u(t,206));case 41:return t==null?"":Xa(u(t,297));case 42:return Jr(t);case 50:return Oe(t);default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s,f,h,l,a,d,g,p,m,k,j,S;switch(e.G==-1&&(e.G=(p=jo(e),p?f1(p.vi(),e):-1)),e.G){case 0:return i=new fD,i;case 1:return t=new tG,t;case 2:return r=new uG,r;case 4:return c=new xE,c;case 5:return s=new ajn,s;case 6:return f=new Fyn,f;case 7:return h=new oG,h;case 10:return a=new ME,a;case 11:return d=new hD,d;case 12:return g=new HIn,g;case 13:return m=new lD,m;case 14:return k=new cV,k;case 17:return j=new Mvn,j;case 18:return l=new Jd,l;case 19:return S=new UO,S;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){switch(e.hk()){case 20:return t==null?null:new Az(t);case 21:return t==null?null:new H1(t);case 23:case 22:return t==null?null:R8e(t);case 26:case 24:return t==null?null:ak(Ao(t,-128,127)<<24>>24);case 25:return rMe(t);case 27:return T7e(t);case 28:return A7e(t);case 29:return Jye(t);case 32:case 31:return t==null?null:sw(t);case 38:case 37:return t==null?null:new UG(t);case 40:case 39:return t==null?null:Y(Ao(t,Wi,et));case 41:return null;case 42:return t==null,null;case 44:case 43:return t==null?null:Ml(zA(t));case 49:case 48:return t==null?null:sm(Ao(t,QS,32767)<<16>>16);case 50:return t;default:throw M(new Gn(ev+e.xe()+nb))}},w(qn,"EcoreFactoryImpl",1349),b(560,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,2038:1,54:1,99:1,158:1,184:1,560:1,119:1,120:1,690:1},aIn),o.gb=!1,o.hb=!1;var n0n,Yoe=!1;w(qn,"EcorePackageImpl",560),b(1234,1,{851:1},xvn),o.Kk=function(){return BTn(),nse},w(qn,"EcorePackageImpl/1",1234),b(1243,1,ze,Fvn),o.fk=function(e){return D(e,155)},o.gk=function(e){return K(fE,Bn,155,e,0,1)},w(qn,"EcorePackageImpl/10",1243),b(1244,1,ze,Bvn),o.fk=function(e){return D(e,197)},o.gk=function(e){return K(pU,Bn,197,e,0,1)},w(qn,"EcorePackageImpl/11",1244),b(1245,1,ze,Rvn),o.fk=function(e){return D(e,58)},o.gk=function(e){return K(Oa,Bn,58,e,0,1)},w(qn,"EcorePackageImpl/12",1245),b(1246,1,ze,Kvn),o.fk=function(e){return D(e,411)},o.gk=function(e){return K(Ss,Gcn,62,e,0,1)},w(qn,"EcorePackageImpl/13",1246),b(1247,1,ze,_vn),o.fk=function(e){return D(e,241)},o.gk=function(e){return K(Ef,Bn,241,e,0,1)},w(qn,"EcorePackageImpl/14",1247),b(1248,1,ze,Hvn),o.fk=function(e){return D(e,518)},o.gk=function(e){return K(yb,Bn,2116,e,0,1)},w(qn,"EcorePackageImpl/15",1248),b(1249,1,ze,qvn),o.fk=function(e){return D(e,102)},o.gk=function(e){return K(eg,f2,19,e,0,1)},w(qn,"EcorePackageImpl/16",1249),b(1250,1,ze,Uvn),o.fk=function(e){return D(e,179)},o.gk=function(e){return K(ku,f2,179,e,0,1)},w(qn,"EcorePackageImpl/17",1250),b(1251,1,ze,Gvn),o.fk=function(e){return D(e,481)},o.gk=function(e){return K(Zw,Bn,481,e,0,1)},w(qn,"EcorePackageImpl/18",1251),b(1252,1,ze,zvn),o.fk=function(e){return D(e,561)},o.gk=function(e){return K(pc,nJn,561,e,0,1)},w(qn,"EcorePackageImpl/19",1252),b(1235,1,ze,Xvn),o.fk=function(e){return D(e,331)},o.gk=function(e){return K(ng,f2,35,e,0,1)},w(qn,"EcorePackageImpl/2",1235),b(1253,1,ze,Vvn),o.fk=function(e){return D(e,248)},o.gk=function(e){return K(jr,pJn,89,e,0,1)},w(qn,"EcorePackageImpl/20",1253),b(1254,1,ze,Wvn),o.fk=function(e){return D(e,457)},o.gk=function(e){return K(fu,Bn,850,e,0,1)},w(qn,"EcorePackageImpl/21",1254),b(1255,1,ze,Jvn),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(qn,"EcorePackageImpl/22",1255),b(1256,1,ze,Qvn),o.fk=function(e){return D(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(qn,"EcorePackageImpl/23",1256),b(1257,1,ze,Yvn),o.fk=function(e){return D(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(qn,"EcorePackageImpl/24",1257),b(1258,1,ze,Zvn),o.fk=function(e){return D(e,180)},o.gk=function(e){return K(A8,J,180,e,0,1)},w(qn,"EcorePackageImpl/25",1258),b(1259,1,ze,n6n),o.fk=function(e){return D(e,206)},o.gk=function(e){return K(oP,J,206,e,0,1)},w(qn,"EcorePackageImpl/26",1259),b(1260,1,ze,e6n),o.fk=function(e){return!1},o.gk=function(e){return K(m0n,Bn,2215,e,0,1)},w(qn,"EcorePackageImpl/27",1260),b(1261,1,ze,t6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(qn,"EcorePackageImpl/28",1261),b(1262,1,ze,i6n),o.fk=function(e){return D(e,61)},o.gk=function(e){return K(Ldn,kw,61,e,0,1)},w(qn,"EcorePackageImpl/29",1262),b(1236,1,ze,r6n),o.fk=function(e){return D(e,519)},o.gk=function(e){return K(Ue,{3:1,4:1,5:1,2033:1},598,e,0,1)},w(qn,"EcorePackageImpl/3",1236),b(1263,1,ze,c6n),o.fk=function(e){return D(e,582)},o.gk=function(e){return K(xdn,Bn,2039,e,0,1)},w(qn,"EcorePackageImpl/30",1263),b(1264,1,ze,u6n),o.fk=function(e){return D(e,160)},o.gk=function(e){return K(c0n,kw,160,e,0,1)},w(qn,"EcorePackageImpl/31",1264),b(1265,1,ze,o6n),o.fk=function(e){return D(e,76)},o.gk=function(e){return K(CO,TJn,76,e,0,1)},w(qn,"EcorePackageImpl/32",1265),b(1266,1,ze,s6n),o.fk=function(e){return D(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(qn,"EcorePackageImpl/33",1266),b(1267,1,ze,f6n),o.fk=function(e){return D(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(qn,"EcorePackageImpl/34",1267),b(1268,1,ze,h6n),o.fk=function(e){return D(e,297)},o.gk=function(e){return K(run,Bn,297,e,0,1)},w(qn,"EcorePackageImpl/35",1268),b(1269,1,ze,l6n),o.fk=function(e){return D(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(qn,"EcorePackageImpl/36",1269),b(1270,1,ze,a6n),o.fk=function(e){return D(e,85)},o.gk=function(e){return K(cun,Bn,85,e,0,1)},w(qn,"EcorePackageImpl/37",1270),b(1271,1,ze,d6n),o.fk=function(e){return D(e,599)},o.gk=function(e){return K(e0n,Bn,599,e,0,1)},w(qn,"EcorePackageImpl/38",1271),b(1272,1,ze,b6n),o.fk=function(e){return!1},o.gk=function(e){return K(v0n,Bn,2216,e,0,1)},w(qn,"EcorePackageImpl/39",1272),b(1237,1,ze,w6n),o.fk=function(e){return D(e,90)},o.gk=function(e){return K(As,Bn,29,e,0,1)},w(qn,"EcorePackageImpl/4",1237),b(1273,1,ze,g6n),o.fk=function(e){return D(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(qn,"EcorePackageImpl/40",1273),b(1274,1,ze,p6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(qn,"EcorePackageImpl/41",1274),b(1275,1,ze,m6n),o.fk=function(e){return D(e,596)},o.gk=function(e){return K($dn,Bn,596,e,0,1)},w(qn,"EcorePackageImpl/42",1275),b(1276,1,ze,v6n),o.fk=function(e){return!1},o.gk=function(e){return K(k0n,J,2217,e,0,1)},w(qn,"EcorePackageImpl/43",1276),b(1277,1,ze,k6n),o.fk=function(e){return D(e,44)},o.gk=function(e){return K(Pd,WA,44,e,0,1)},w(qn,"EcorePackageImpl/44",1277),b(1238,1,ze,y6n),o.fk=function(e){return D(e,142)},o.gk=function(e){return K(Cf,Bn,142,e,0,1)},w(qn,"EcorePackageImpl/5",1238),b(1239,1,ze,j6n),o.fk=function(e){return D(e,156)},o.gk=function(e){return K(EU,Bn,156,e,0,1)},w(qn,"EcorePackageImpl/6",1239),b(1240,1,ze,E6n),o.fk=function(e){return D(e,469)},o.gk=function(e){return K(EO,Bn,685,e,0,1)},w(qn,"EcorePackageImpl/7",1240),b(1241,1,ze,C6n),o.fk=function(e){return D(e,582)},o.gk=function(e){return K(Bl,Bn,694,e,0,1)},w(qn,"EcorePackageImpl/8",1241),b(1242,1,ze,M6n),o.fk=function(e){return D(e,480)},o.gk=function(e){return K(I9,Bn,480,e,0,1)},w(qn,"EcorePackageImpl/9",1242),b(1038,2080,ZWn,Njn),o.Mi=function(e,t){b5e(this,u(t,424))},o.Qi=function(e,t){S_n(this,e,u(t,424))},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1038),b(1039,152,Wy,tIn),o.jj=function(){return this.a.a},w(qn,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1039),b(1067,1066,{},gTn),w("org.eclipse.emf.ecore.plugin","EcorePlugin",1067);var e0n=Nt(AJn,"Resource");b(799,1524,SJn),o.Hl=function(e){},o.Il=function(e){},o.El=function(){return!this.a&&(this.a=new iD(this)),this.a},o.Fl=function(e){var t,i,r,c,s;if(r=e.length,r>0)if(zn(0,e.length),e.charCodeAt(0)==47){for(s=new Gc(4),c=1,t=1;t0&&(e=(Fi(0,i,e.length),e.substr(0,i))));return qEe(this,e)},o.Gl=function(){return this.c},o.Ib=function(){var e;return Xa(this.Rm)+"@"+(e=mt(this)>>>0,e.toString(16))+" uri='"+this.d+"'"},o.b=!1,w(AK,"ResourceImpl",799),b(1525,799,SJn,Cyn),w(AK,"BinaryResourceImpl",1525),b(1190,708,yK),o.bj=function(e){return D(e,58)?Nge(this,u(e,58)):D(e,599)?new ne(u(e,599).El()):x(e)===x(this.f)?u(e,16).Kc():(m4(),aE.a)},o.Ob=function(){return Fnn(this)},o.a=!1,w(Tt,"EcoreUtil/ContentTreeIterator",1190),b(1526,1190,yK,DPn),o.bj=function(e){return x(e)===x(this.f)?u(e,15).Kc():new PDn(u(e,58))},w(AK,"ResourceImpl/5",1526),b(658,2092,gJn,iD),o.Hc=function(e){return this.i<=4?km(this,e):D(e,54)&&u(e,54).Jh()==this.a},o.Mi=function(e,t){e==this.i-1&&(this.a.b||(this.a.b=!0))},o.Oi=function(e,t){e==0?this.a.b||(this.a.b=!0):t$(this,e,t)},o.Qi=function(e,t){},o.Ri=function(e,t,i){},o.Lj=function(){return 2},o.jj=function(){return this.a},o.Mj=function(){return!0},o.Nj=function(e,t){var i;return i=u(e,54),t=i.fi(this.a,t),t},o.Oj=function(e,t){var i;return i=u(e,54),i.fi(null,t)},o.Pj=function(){return!1},o.Si=function(){return!0},o.aj=function(e){return K(Oa,Bn,58,e,0,1)},o.Yi=function(){return!1},w(AK,"ResourceImpl/ContentsEList",658),b(970,2062,Rm,Myn),o.fd=function(e){return this.a.Ki(e)},o.gc=function(){return this.a.gc()},w(Tt,"AbstractSequentialInternalEList/1",970);var t0n,i0n,zi,r0n;b(634,1,{},NSn);var MO,TO;w(Tt,"BasicExtendedMetaData",634),b(1181,1,{},xMn),o.Jl=function(){return null},o.Kl=function(){return this.a==-2&&dfe(this,qye(this.d,this.b)),this.a},o.Ll=function(){return null},o.Ml=function(){return Dn(),Dn(),sr},o.xe=function(){return this.c==rv&&bfe(this,YBn(this.d,this.b)),this.c},o.Nl=function(){return 0},o.a=-2,o.c=rv,w(Tt,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1181),b(1182,1,{},cDn),o.Jl=function(){return this.a==($4(),MO)&&pfe(this,HAe(this.f,this.b)),this.a},o.Kl=function(){return 0},o.Ll=function(){return this.c==($4(),MO)&&wfe(this,qAe(this.f,this.b)),this.c},o.Ml=function(){return!this.d&&vfe(this,APe(this.f,this.b)),this.d},o.xe=function(){return this.e==rv&&yfe(this,YBn(this.f,this.b)),this.e},o.Nl=function(){return this.g==-2&&Efe(this,sye(this.f,this.b)),this.g},o.e=rv,o.g=-2,w(Tt,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1182),b(1180,1,{},FMn),o.b=!1,o.c=!1,w(Tt,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1180),b(1183,1,{},uDn),o.c=-2,o.e=rv,o.f=rv,w(Tt,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1183),b(593,632,Qr,QC),o.Lj=function(){return this.c},o.ol=function(){return!1},o.Wi=function(e,t){return t},o.c=0,w(Tt,"EDataTypeEList",593);var c0n=Nt(Tt,"FeatureMap");b(78,593,{3:1,4:1,20:1,31:1,56:1,16:1,15:1,59:1,70:1,66:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},Rt),o.bd=function(e,t){oTe(this,e,u(t,76))},o.Fc=function(e){return MMe(this,u(e,76))},o.Hi=function(e){Owe(this,u(e,76))},o.Nj=function(e,t){return Yae(this,u(e,76),t)},o.Oj=function(e,t){return PV(this,u(e,76),t)},o.Ti=function(e,t){return LSe(this,e,t)},o.Wi=function(e,t){return vOe(this,e,u(t,76))},o.hd=function(e,t){return VTe(this,e,u(t,76))},o.Uj=function(e,t){return Zae(this,u(e,76),t)},o.Vj=function(e,t){return fSn(this,u(e,76),t)},o.Wj=function(e,t,i){return Wke(this,u(e,76),u(t,76),i)},o.Zi=function(e,t){return Jx(this,e,u(t,76))},o.Ol=function(e,t){return Sen(this,e,t)},o.cd=function(e,t){var i,r,c,s,f,h,l,a,d;for(a=new S0(t.gc()),c=t.Kc();c.Ob();)if(r=u(c.Pb(),76),s=r.Lk(),Sl(this.e,s))(!s.Si()||!_M(this,s,r.md())&&!km(a,r))&&ve(a,r);else{for(d=ru(this.e.Dh(),s),i=u(this.g,124),f=!0,h=0;h=0;)if(t=e[this.c],this.k.am(t.Lk()))return this.j=this.f?t:t.md(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},w(Tt,"BasicFeatureMap/FeatureEIterator",420),b(676,420,Hh,dL),o.ul=function(){return!0},w(Tt,"BasicFeatureMap/ResolvingFeatureEIterator",676),b(968,496,zS,TTn),o.pj=function(){return this},w(Tt,"EContentsEList/1",968),b(969,496,zS,JMn),o.ul=function(){return!1},w(Tt,"EContentsEList/2",969),b(967,287,XS,ATn),o.wl=function(e){},o.Ob=function(){return!1},o.Sb=function(){return!1},w(Tt,"EContentsEList/FeatureIteratorImpl/1",967),b(840,593,Qr,xX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EDataTypeEList/Unsettable",840),b(1958,593,Qr,NTn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList",1958),b(1959,840,Qr,$Tn),o.Si=function(){return!0},w(Tt,"EDataTypeUniqueEList/Unsettable",1959),b(147,83,Qr,Tu),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Resolving",147),b(1184,555,Qr,xTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentEList/Unsettable/Resolving",1184),b(766,14,Qr,jV),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectContainmentWithInverseEList/Unsettable",766),b(1222,766,Qr,WAn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1222),b(757,505,Qr,FX),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectEList/Unsettable",757),b(338,505,Qr,Eg),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList",338),b(1844,757,Qr,FTn),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectResolvingEList/Unsettable",1844),b(1527,1,{},T6n);var Zoe;w(Tt,"EObjectValidator",1527),b(559,505,Qr,bM),o.il=function(){return this.d},o.jl=function(){return this.b},o.Mj=function(){return!0},o.ml=function(){return!0},o.b=0,w(Tt,"EObjectWithInverseEList",559),b(1225,559,Qr,JAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/ManyInverse",1225),b(635,559,Qr,NL),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EObjectWithInverseEList/Unsettable",635),b(1224,635,Qr,QAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseEList/Unsettable/ManyInverse",1224),b(767,559,Qr,EV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList",767),b(32,767,Qr,Nn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/ManyInverse",32),b(768,635,Qr,CV),o.nl=function(){return!0},o.Wi=function(e,t){return e3(this,e,u(t,58))},w(Tt,"EObjectWithInverseResolvingEList/Unsettable",768),b(1223,768,Qr,YAn),o.ll=function(){return!0},w(Tt,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1223),b(1185,632,Qr),o.Li=function(){return(this.b&1792)==0},o.Ni=function(){this.b|=1},o.kl=function(){return(this.b&4)!=0},o.Mj=function(){return(this.b&40)!=0},o.ll=function(){return(this.b&16)!=0},o.ml=function(){return(this.b&8)!=0},o.nl=function(){return(this.b&Tw)!=0},o.al=function(){return(this.b&32)!=0},o.ol=function(){return(this.b&Gs)!=0},o.fk=function(e){return this.d?BDn(this.d,e):this.Lk().Hk().fk(e)},o.Qj=function(){return this.b&2?(this.b&1)!=0:this.i!=0},o.Si=function(){return(this.b&128)!=0},o.Gk=function(){var e;me(this),this.b&2&&(fo(this.e)?(e=(this.b&1)!=0,this.b&=-2,t4(this,new Rs(this.e,2,Ot(this.e.Dh(),this.Lk()),e,!1))):this.b&=-2)},o.Yi=function(){return(this.b&1536)==0},o.b=0,w(Tt,"EcoreEList/Generic",1185),b(1186,1185,Qr,UIn),o.Lk=function(){return this.a},w(Tt,"EcoreEList/Dynamic",1186),b(765,66,Ch,BG),o.aj=function(e){return gk(this.a.a,e)},w(Tt,"EcoreEMap/1",765),b(764,83,Qr,jW),o.Mi=function(e,t){uA(this.b,u(t,136))},o.Oi=function(e,t){_xn(this.b)},o.Pi=function(e,t,i){var r;++(r=this.b,u(t,136),r).e},o.Qi=function(e,t){cx(this.b,u(t,136))},o.Ri=function(e,t,i){cx(this.b,u(i,136)),x(i)===x(t)&&u(i,136).Ci(Jle(u(t,136).ld())),uA(this.b,u(t,136))},w(Tt,"EcoreEMap/DelegateEObjectContainmentEList",764),b(1220,141,Ucn,rxn),w(Tt,"EcoreEMap/Unsettable",1220),b(1221,764,Qr,ZAn),o.Ni=function(){this.a=!0},o.Qj=function(){return this.a},o.Gk=function(){var e;me(this),fo(this.e)?(e=this.a,this.a=!1,it(this.e,new Rs(this.e,2,this.c,e,!1))):this.a=!1},o.a=!1,w(Tt,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1221),b(1189,215,n2,GPn),o.a=!1,o.b=!1,w(Tt,"EcoreUtil/Copier",1189),b(759,1,Si,PDn),o.Nb=function(e){_i(this,e)},o.Ob=function(){return FBn(this)},o.Pb=function(){var e;return FBn(this),e=this.b,this.b=null,e},o.Qb=function(){this.a.Qb()},w(Tt,"EcoreUtil/ProperContentIterator",759),b(1528,1527,{},T8n);var nse;w(Tt,"EcoreValidator",1528);var ese;Nt(Tt,"FeatureMapUtil/Validator"),b(1295,1,{2041:1},A6n),o.am=function(e){return!0},w(Tt,"FeatureMapUtil/1",1295),b(773,1,{2041:1},rtn),o.am=function(e){var t;return this.c==e?!0:(t=un(ee(this.a,e)),t==null?WAe(this,e)?(PLn(this.a,e,(_n(),ov)),!0):(PLn(this.a,e,(_n(),ga)),!1):t==(_n(),ov))},o.e=!1;var AU;w(Tt,"FeatureMapUtil/BasicValidator",773),b(774,45,n2,NX),w(Tt,"FeatureMapUtil/BasicValidator/Cache",774),b(509,56,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,71:1,97:1},k7),o.bd=function(e,t){mqn(this.c,this.b,e,t)},o.Fc=function(e){return Sen(this.c,this.b,e)},o.cd=function(e,t){return gIe(this.c,this.b,e,t)},o.Gc=function(e){return P6(this,e)},o.Gi=function(e,t){lme(this.c,this.b,e,t)},o.Wk=function(e,t){return ken(this.c,this.b,e,t)},o.$i=function(e){return _A(this.c,this.b,e,!1)},o.Ii=function(){return sTn(this.c,this.b)},o.Ji=function(){return Fle(this.c,this.b)},o.Ki=function(e){return g4e(this.c,this.b,e)},o.Xk=function(e,t){return DAn(this,e,t)},o.$b=function(){cp(this)},o.Hc=function(e){return _M(this.c,this.b,e)},o.Ic=function(e){return wve(this.c,this.b,e)},o.Xb=function(e){return _A(this.c,this.b,e,!0)},o.Fk=function(e){return this},o.dd=function(e){return E3e(this.c,this.b,e)},o.dc=function(){return TC(this)},o.Qj=function(){return!Fk(this.c,this.b)},o.Kc=function(){return eme(this.c,this.b)},o.ed=function(){return tme(this.c,this.b)},o.fd=function(e){return L5e(this.c,this.b,e)},o.Ti=function(e,t){return LUn(this.c,this.b,e,t)},o.Ui=function(e,t){v4e(this.c,this.b,e,t)},o.gd=function(e){return l_n(this.c,this.b,e)},o.Mc=function(e){return mSe(this.c,this.b,e)},o.hd=function(e,t){return HUn(this.c,this.b,e,t)},o.Wb=function(e){jA(this.c,this.b),P6(this,u(e,15))},o.gc=function(){return D5e(this.c,this.b)},o.Pc=function(){return Mpe(this.c,this.b)},o.Qc=function(e){return C3e(this.c,this.b,e)},o.Ib=function(){var e,t;for(t=new Hl,t.a+="[",e=sTn(this.c,this.b);W$(e);)Er(t,O6(iA(e))),W$(e)&&(t.a+=ur);return t.a+="]",t.a},o.Gk=function(){jA(this.c,this.b)},w(Tt,"FeatureMapUtil/FeatureEList",509),b(644,39,Wy,GN),o.hj=function(e){return m5(this,e)},o.mj=function(e){var t,i,r,c,s,f,h;switch(this.d){case 1:case 2:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return this.g=e.ij(),e.gj()==1&&(this.d=1),!0;break}case 3:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return this.d=5,t=new S0(2),ve(t,this.g),ve(t,e.ij()),this.g=t,!0;break}}break}case 5:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return i=u(this.g,16),i.Fc(e.ij()),!0;break}}break}case 4:{switch(c=e.gj(),c){case 3:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return this.d=1,this.g=e.ij(),!0;break}case 4:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return this.d=6,h=new S0(2),ve(h,this.n),ve(h,e.kj()),this.n=h,f=A(T(ye,1),_e,28,15,[this.o,e.lj()]),this.g=f,!0;break}}break}case 6:{switch(c=e.gj(),c){case 4:{if(s=e.jj(),x(s)===x(this.c)&&m5(this,null)==e.hj(null))return i=u(this.n,16),i.Fc(e.kj()),f=u(this.g,53),r=K(ye,_e,28,f.length+1,15,1),Ic(f,0,r,0,f.length),r[f.length]=e.lj(),this.g=r,!0;break}}break}}return!1},w(Tt,"FeatureMapUtil/FeatureENotificationImpl",644),b(564,509,{20:1,31:1,56:1,16:1,15:1,61:1,79:1,160:1,220:1,2036:1,71:1,97:1},eM),o.Ol=function(e,t){return Sen(this.c,e,t)},o.Pl=function(e,t,i){return ken(this.c,e,t,i)},o.Ql=function(e,t,i){return zen(this.c,e,t,i)},o.Rl=function(){return this},o.Sl=function(e,t){return wy(this.c,e,t)},o.Tl=function(e){return u(_A(this.c,this.b,e,!1),76).Lk()},o.Ul=function(e){return u(_A(this.c,this.b,e,!1),76).md()},o.Vl=function(){return this.a},o.Wl=function(e){return!Fk(this.c,e)},o.Xl=function(e,t){HA(this.c,e,t)},o.Yl=function(e){return oxn(this.c,e)},o.Zl=function(e){RRn(this.c,e)},w(Tt,"FeatureMapUtil/FeatureFeatureMap",564),b(1294,1,TK,$Mn),o.Fk=function(e){return _A(this.b,this.a,-1,e)},o.Qj=function(){return!Fk(this.b,this.a)},o.Wb=function(e){HA(this.b,this.a,e)},o.Gk=function(){jA(this.b,this.a)},w(Tt,"FeatureMapUtil/FeatureValue",1294);var K3,SU,PU,_3,tse,bE=Nt(eP,"AnyType");b(680,63,Pl,kD),w(eP,"InvalidDatatypeValueException",680);var AO=Nt(eP,IJn),wE=Nt(eP,OJn),u0n=Nt(eP,DJn),ise,yc,o0n,zd,rse,cse,use,ose,sse,fse,hse,lse,ase,dse,bse,G2,wse,z2,$9,gse,Cb,gE,pE,pse,x9,F9;b(844,516,{110:1,94:1,93:1,58:1,54:1,99:1,857:1},iz),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b)}return zo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():this.ii(),e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.c&&(this.c=new Rt(this,0)),ly(this.c,e,i);case 1:return(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),71)).Xk(e,i);case 2:return!this.b&&(this.b=new Rt(this,2)),ly(this.b,e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():this.ii(),t),69),r.wk().Ak(this,uQ(this),t-se(this.ii()),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0}return Uo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():this.ii(),e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),K7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),K7(this.b,t);return}Jo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():this.ii(),e),t)},o.ii=function(){return at(),o0n},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return}Wo(this,e-se(this.ii()),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():this.ii(),e))},o.Ib=function(){var e;return this.j&4?Hs(this):(e=new ls(Hs(this)),e.a+=" (mixed: ",M6(e,this.c),e.a+=", anyAttribute: ",M6(e,this.b),e.a+=")",e.a)},w(oi,"AnyTypeImpl",844),b(681,516,{110:1,94:1,93:1,58:1,54:1,99:1,2119:1,681:1},B6n),o.Lh=function(e,t,i){switch(e){case 0:return this.a;case 1:return this.b}return zo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():G2,e),t,i)},o.Wh=function(e){switch(e){case 0:return this.a!=null;case 1:return this.b!=null}return Uo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():G2,e))},o.bi=function(e,t){switch(e){case 0:Tfe(this,Oe(t));return;case 1:Sfe(this,Oe(t));return}Jo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():G2,e),t)},o.ii=function(){return at(),G2},o.ki=function(e){switch(e){case 0:this.a=null;return;case 1:this.b=null;return}Wo(this,e-se((at(),G2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():G2,e))},o.Ib=function(){var e;return this.j&4?Hs(this):(e=new ls(Hs(this)),e.a+=" (data: ",Er(e,this.a),e.a+=", target: ",Er(e,this.b),e.a+=")",e.a)},o.a=null,o.b=null,w(oi,"ProcessingInstructionImpl",681),b(682,844,{110:1,94:1,93:1,58:1,54:1,99:1,857:1,2120:1,682:1},bjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.c&&(this.c=new Rt(this,0)),this.c):(!this.c&&(this.c=new Rt(this,0)),this.c.b);case 1:return i?(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)):(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Vl();case 2:return i?(!this.b&&(this.b=new Rt(this,2)),this.b):(!this.b&&(this.b=new Rt(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),$9),!0));case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),$9),!0))));case 5:return this.a}return zo(this,e-se((at(),z2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():z2,e),t,i)},o.Wh=function(e){switch(e){case 0:return!!this.c&&this.c.i!=0;case 1:return!(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).dc();case 2:return!!this.b&&this.b.i!=0;case 3:return!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),$9),!0))!=null;case 4:return TV(this.a,(!this.c&&(this.c=new Rt(this,0)),Oe(wy(this.c,(at(),$9),!0))))!=null;case 5:return!!this.a}return Uo(this,e-se((at(),z2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():z2,e))},o.bi=function(e,t){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),K7(this.c,t);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u(u($c(this.c,(at(),zd)),160),220)).Wb(t);return;case 2:!this.b&&(this.b=new Rt(this,2)),K7(this.b,t);return;case 3:bJ(this,Oe(t));return;case 4:bJ(this,MV(this.a,t));return;case 5:Afe(this,u(t,156));return}Jo(this,e-se((at(),z2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():z2,e),t)},o.ii=function(){return at(),z2},o.ki=function(e){switch(e){case 0:!this.c&&(this.c=new Rt(this,0)),me(this.c);return;case 1:(!this.c&&(this.c=new Rt(this,0)),u($c(this.c,(at(),zd)),160)).$b();return;case 2:!this.b&&(this.b=new Rt(this,2)),me(this.b);return;case 3:!this.c&&(this.c=new Rt(this,0)),HA(this.c,(at(),$9),null);return;case 4:bJ(this,MV(this.a,null));return;case 5:this.a=null;return}Wo(this,e-se((at(),z2)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():z2,e))},w(oi,"SimpleAnyTypeImpl",682),b(683,516,{110:1,94:1,93:1,58:1,54:1,99:1,2121:1,683:1},wjn),o.Lh=function(e,t,i){switch(e){case 0:return i?(!this.a&&(this.a=new Rt(this,0)),this.a):(!this.a&&(this.a=new Rt(this,0)),this.a.b);case 1:return i?(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b):(!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),rk(this.b));case 2:return i?(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c):(!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),rk(this.c));case 3:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),gE));case 4:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),pE));case 5:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),x9));case 6:return!this.a&&(this.a=new Rt(this,0)),$c(this.a,(at(),F9))}return zo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():Cb,e),t,i)},o.Uh=function(e,t,i){var r;switch(t){case 0:return!this.a&&(this.a=new Rt(this,0)),ly(this.a,e,i);case 1:return!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),UC(this.b,e,i);case 2:return!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),UC(this.c,e,i);case 5:return!this.a&&(this.a=new Rt(this,0)),DAn($c(this.a,(at(),x9)),e,i)}return r=u($n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():(at(),Cb),t),69),r.wk().Ak(this,uQ(this),t-se((at(),Cb)),e,i)},o.Wh=function(e){switch(e){case 0:return!!this.a&&this.a.i!=0;case 1:return!!this.b&&this.b.f!=0;case 2:return!!this.c&&this.c.f!=0;case 3:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),gE)));case 4:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),pE)));case 5:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),x9)));case 6:return!this.a&&(this.a=new Rt(this,0)),!TC($c(this.a,(at(),F9)))}return Uo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():Cb,e))},o.bi=function(e,t){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),K7(this.a,t);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),TT(this.b,t);return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),TT(this.c,t);return;case 3:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),gE))),!this.a&&(this.a=new Rt(this,0)),P6($c(this.a,gE),u(t,16));return;case 4:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),pE))),!this.a&&(this.a=new Rt(this,0)),P6($c(this.a,pE),u(t,16));return;case 5:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),x9))),!this.a&&(this.a=new Rt(this,0)),P6($c(this.a,x9),u(t,16));return;case 6:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),F9))),!this.a&&(this.a=new Rt(this,0)),P6($c(this.a,F9),u(t,16));return}Jo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():Cb,e),t)},o.ii=function(){return at(),Cb},o.ki=function(e){switch(e){case 0:!this.a&&(this.a=new Rt(this,0)),me(this.a);return;case 1:!this.b&&(this.b=new Iu((On(),ar),pc,this,1)),this.b.c.$b();return;case 2:!this.c&&(this.c=new Iu((On(),ar),pc,this,2)),this.c.c.$b();return;case 3:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),gE)));return;case 4:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),pE)));return;case 5:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),x9)));return;case 6:!this.a&&(this.a=new Rt(this,0)),cp($c(this.a,(at(),F9)));return}Wo(this,e-se((at(),Cb)),$n(this.j&2?(!this.k&&(this.k=new uf),this.k).Nk():Cb,e))},o.Ib=function(){var e;return this.j&4?Hs(this):(e=new ls(Hs(this)),e.a+=" (mixed: ",M6(e,this.a),e.a+=")",e.a)},w(oi,"XMLTypeDocumentRootImpl",683),b(2028,720,{110:1,94:1,93:1,480:1,155:1,58:1,114:1,54:1,99:1,158:1,119:1,120:1,2122:1},S6n),o.ri=function(e,t){switch(e.hk()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return t==null?null:Jr(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return Oe(t);case 6:return fae(u(t,195));case 12:case 47:case 49:case 11:return PGn(this,e,t);case 13:return t==null?null:kIe(u(t,247));case 15:case 14:return t==null?null:Mwe($(R(t)));case 17:return TKn((at(),t));case 18:return TKn(t);case 21:case 20:return t==null?null:Twe(u(t,161).a);case 27:return hae(u(t,195));case 30:return KRn((at(),u(t,15)));case 31:return KRn(u(t,15));case 40:return aae((at(),t));case 42:return AKn((at(),t));case 43:return AKn(t);case 59:case 48:return lae((at(),t));default:throw M(new Gn(ev+e.xe()+nb))}},o.si=function(e){var t,i,r,c,s;switch(e.G==-1&&(e.G=(i=jo(e),i?f1(i.vi(),e):-1)),e.G){case 0:return t=new iz,t;case 1:return r=new B6n,r;case 2:return c=new bjn,c;case 3:return s=new wjn,s;default:throw M(new Gn(hK+e.zb+nb))}},o.ti=function(e,t){var i,r,c,s,f,h,l,a,d,g,p,m,k,j,S,I;switch(e.hk()){case 5:case 52:case 4:return t;case 6:return m9e(t);case 8:case 7:return t==null?null:rye(t);case 9:return t==null?null:ak(Ao((r=Fc(t,!0),r.length>0&&(zn(0,r.length),r.charCodeAt(0)==43)?(zn(1,r.length+1),r.substr(1)):r),-128,127)<<24>>24);case 10:return t==null?null:ak(Ao((c=Fc(t,!0),c.length>0&&(zn(0,c.length),c.charCodeAt(0)==43)?(zn(1,c.length+1),c.substr(1)):c),-128,127)<<24>>24);case 11:return Oe(z0(this,(at(),use),t));case 12:return Oe(z0(this,(at(),ose),t));case 13:return t==null?null:new Az(Fc(t,!0));case 15:case 14:return AMe(t);case 16:return Oe(z0(this,(at(),sse),t));case 17:return HBn((at(),t));case 18:return HBn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Fc(t,!0);case 21:case 20:return FMe(t);case 22:return Oe(z0(this,(at(),fse),t));case 23:return Oe(z0(this,(at(),hse),t));case 24:return Oe(z0(this,(at(),lse),t));case 25:return Oe(z0(this,(at(),ase),t));case 26:return Oe(z0(this,(at(),dse),t));case 27:return u9e(t);case 30:return qBn((at(),t));case 31:return qBn(t);case 32:return t==null?null:Y(Ao((d=Fc(t,!0),d.length>0&&(zn(0,d.length),d.charCodeAt(0)==43)?(zn(1,d.length+1),d.substr(1)):d),Wi,et));case 33:return t==null?null:new H1((g=Fc(t,!0),g.length>0&&(zn(0,g.length),g.charCodeAt(0)==43)?(zn(1,g.length+1),g.substr(1)):g));case 34:return t==null?null:Y(Ao((p=Fc(t,!0),p.length>0&&(zn(0,p.length),p.charCodeAt(0)==43)?(zn(1,p.length+1),p.substr(1)):p),Wi,et));case 36:return t==null?null:Ml(zA((m=Fc(t,!0),m.length>0&&(zn(0,m.length),m.charCodeAt(0)==43)?(zn(1,m.length+1),m.substr(1)):m)));case 37:return t==null?null:Ml(zA((k=Fc(t,!0),k.length>0&&(zn(0,k.length),k.charCodeAt(0)==43)?(zn(1,k.length+1),k.substr(1)):k)));case 40:return i7e((at(),t));case 42:return UBn((at(),t));case 43:return UBn(t);case 44:return t==null?null:new H1((j=Fc(t,!0),j.length>0&&(zn(0,j.length),j.charCodeAt(0)==43)?(zn(1,j.length+1),j.substr(1)):j));case 45:return t==null?null:new H1((S=Fc(t,!0),S.length>0&&(zn(0,S.length),S.charCodeAt(0)==43)?(zn(1,S.length+1),S.substr(1)):S));case 46:return Fc(t,!1);case 47:return Oe(z0(this,(at(),bse),t));case 59:case 48:return t7e((at(),t));case 49:return Oe(z0(this,(at(),wse),t));case 50:return t==null?null:sm(Ao((I=Fc(t,!0),I.length>0&&(zn(0,I.length),I.charCodeAt(0)==43)?(zn(1,I.length+1),I.substr(1)):I),QS,32767)<<16>>16);case 51:return t==null?null:sm(Ao((s=Fc(t,!0),s.length>0&&(zn(0,s.length),s.charCodeAt(0)==43)?(zn(1,s.length+1),s.substr(1)):s),QS,32767)<<16>>16);case 53:return Oe(z0(this,(at(),gse),t));case 55:return t==null?null:sm(Ao((f=Fc(t,!0),f.length>0&&(zn(0,f.length),f.charCodeAt(0)==43)?(zn(1,f.length+1),f.substr(1)):f),QS,32767)<<16>>16);case 56:return t==null?null:sm(Ao((h=Fc(t,!0),h.length>0&&(zn(0,h.length),h.charCodeAt(0)==43)?(zn(1,h.length+1),h.substr(1)):h),QS,32767)<<16>>16);case 57:return t==null?null:Ml(zA((l=Fc(t,!0),l.length>0&&(zn(0,l.length),l.charCodeAt(0)==43)?(zn(1,l.length+1),l.substr(1)):l)));case 58:return t==null?null:Ml(zA((a=Fc(t,!0),a.length>0&&(zn(0,a.length),a.charCodeAt(0)==43)?(zn(1,a.length+1),a.substr(1)):a)));case 60:return t==null?null:Y(Ao((i=Fc(t,!0),i.length>0&&(zn(0,i.length),i.charCodeAt(0)==43)?(zn(1,i.length+1),i.substr(1)):i),Wi,et));case 61:return t==null?null:Y(Ao(Fc(t,!0),Wi,et));default:throw M(new Gn(ev+e.xe()+nb))}};var mse,s0n,vse,f0n;w(oi,"XMLTypeFactoryImpl",2028),b(594,184,{110:1,94:1,93:1,155:1,197:1,58:1,241:1,114:1,54:1,99:1,158:1,184:1,119:1,120:1,690:1,2044:1,594:1},dIn),o.N=!1,o.O=!1;var kse=!1;w(oi,"XMLTypePackageImpl",594),b(1961,1,{851:1},P6n),o.Kk=function(){return Fen(),Pse},w(oi,"XMLTypePackageImpl/1",1961),b(1970,1,ze,I6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/10",1970),b(1971,1,ze,O6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/11",1971),b(1972,1,ze,D6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/12",1972),b(1973,1,ze,L6n),o.fk=function(e){return $b(e)},o.gk=function(e){return K(si,J,345,e,7,1)},w(oi,"XMLTypePackageImpl/13",1973),b(1974,1,ze,N6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/14",1974),b(1975,1,ze,$6n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/15",1975),b(1976,1,ze,x6n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/16",1976),b(1977,1,ze,F6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/17",1977),b(1978,1,ze,R6n),o.fk=function(e){return D(e,161)},o.gk=function(e){return K(sv,J,161,e,0,1)},w(oi,"XMLTypePackageImpl/18",1978),b(1979,1,ze,K6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/19",1979),b(1962,1,ze,_6n),o.fk=function(e){return D(e,857)},o.gk=function(e){return K(bE,Bn,857,e,0,1)},w(oi,"XMLTypePackageImpl/2",1962),b(1980,1,ze,H6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/20",1980),b(1981,1,ze,q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/21",1981),b(1982,1,ze,U6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/22",1982),b(1983,1,ze,G6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/23",1983),b(1984,1,ze,z6n),o.fk=function(e){return D(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/24",1984),b(1985,1,ze,X6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/25",1985),b(1986,1,ze,V6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/26",1986),b(1987,1,ze,W6n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/27",1987),b(1988,1,ze,J6n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/28",1988),b(1989,1,ze,Q6n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/29",1989),b(1963,1,ze,Y6n),o.fk=function(e){return D(e,681)},o.gk=function(e){return K(AO,Bn,2119,e,0,1)},w(oi,"XMLTypePackageImpl/3",1963),b(1990,1,ze,Z6n),o.fk=function(e){return D(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/30",1990),b(1991,1,ze,n5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/31",1991),b(1992,1,ze,e5n),o.fk=function(e){return D(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/32",1992),b(1993,1,ze,t5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/33",1993),b(1994,1,ze,i5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/34",1994),b(1995,1,ze,r5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/35",1995),b(1996,1,ze,c5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/36",1996),b(1997,1,ze,u5n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/37",1997),b(1998,1,ze,o5n),o.fk=function(e){return D(e,15)},o.gk=function(e){return K(rs,kw,15,e,0,1)},w(oi,"XMLTypePackageImpl/38",1998),b(1999,1,ze,s5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/39",1999),b(1964,1,ze,f5n),o.fk=function(e){return D(e,682)},o.gk=function(e){return K(wE,Bn,2120,e,0,1)},w(oi,"XMLTypePackageImpl/4",1964),b(2e3,1,ze,h5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/40",2e3),b(2001,1,ze,l5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/41",2001),b(2002,1,ze,a5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/42",2002),b(2003,1,ze,d5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/43",2003),b(2004,1,ze,b5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/44",2004),b(2005,1,ze,w5n),o.fk=function(e){return D(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/45",2005),b(2006,1,ze,g5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/46",2006),b(2007,1,ze,p5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/47",2007),b(2008,1,ze,m5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/48",2008),b(2009,1,ze,v5n),o.fk=function(e){return D(e,191)},o.gk=function(e){return K(ib,J,191,e,0,1)},w(oi,"XMLTypePackageImpl/49",2009),b(1965,1,ze,k5n),o.fk=function(e){return D(e,683)},o.gk=function(e){return K(u0n,Bn,2121,e,0,1)},w(oi,"XMLTypePackageImpl/5",1965),b(2010,1,ze,y5n),o.fk=function(e){return D(e,168)},o.gk=function(e){return K(tb,J,168,e,0,1)},w(oi,"XMLTypePackageImpl/50",2010),b(2011,1,ze,j5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/51",2011),b(2012,1,ze,E5n),o.fk=function(e){return D(e,17)},o.gk=function(e){return K(Gi,J,17,e,0,1)},w(oi,"XMLTypePackageImpl/52",2012),b(1966,1,ze,C5n),o.fk=function(e){return Ai(e)},o.gk=function(e){return K(fn,J,2,e,6,1)},w(oi,"XMLTypePackageImpl/6",1966),b(1967,1,ze,M5n),o.fk=function(e){return D(e,195)},o.gk=function(e){return K(Fu,J,195,e,0,2)},w(oi,"XMLTypePackageImpl/7",1967),b(1968,1,ze,T5n),o.fk=function(e){return Nb(e)},o.gk=function(e){return K(Gt,J,485,e,8,1)},w(oi,"XMLTypePackageImpl/8",1968),b(1969,1,ze,A5n),o.fk=function(e){return D(e,222)},o.gk=function(e){return K(p3,J,222,e,0,1)},w(oi,"XMLTypePackageImpl/9",1969);var nh,O1,B9,SO,P;b(55,63,Pl,Le),w(p1,"RegEx/ParseException",55),b(836,1,{},rG),o.bm=function(e){return ei*16)throw M(new Le($e((Ie(),qWn))));i=i*16+c}while(!0);if(this.a!=125)throw M(new Le($e((Ie(),UWn))));if(i>cv)throw M(new Le($e((Ie(),GWn))));e=i}else{if(c=0,this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(i=c,Ze(this),this.c!=0||(c=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));i=i*16+c,e=i}break;case 117:if(r=0,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));t=t*16+r,e=t;break;case 118:if(Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,Ze(this),this.c!=0||(r=bd(this.a))<0)throw M(new Le($e((Ie(),g1))));if(t=t*16+r,t>cv)throw M(new Le($e((Ie(),"parser.descappe.4"))));e=t;break;case 65:case 90:case 122:throw M(new Le($e((Ie(),zWn))))}return e},o.dm=function(e){var t,i;switch(e){case 100:i=(this.e&32)==32?sa("Nd",!0):(nt(),PO);break;case 68:i=(this.e&32)==32?sa("Nd",!1):(nt(),w0n);break;case 119:i=(this.e&32)==32?sa("IsWord",!0):(nt(),Gv);break;case 87:i=(this.e&32)==32?sa("IsWord",!1):(nt(),p0n);break;case 115:i=(this.e&32)==32?sa("IsSpace",!0):(nt(),H3);break;case 83:i=(this.e&32)==32?sa("IsSpace",!1):(nt(),g0n);break;default:throw M(new ec((t=e,zJn+t.toString(16))))}return i},o.em=function(e){var t,i,r,c,s,f,h,l,a,d,g,p;for(this.b=1,Ze(this),t=null,this.c==0&&this.a==94?(Ze(this),e?d=(nt(),nt(),new yo(5)):(t=(nt(),nt(),new yo(4)),xc(t,0,cv),d=new yo(4))):d=(nt(),nt(),new yo(4)),c=!0;(p=this.c)!=1&&!(p==0&&this.a==93&&!c);){if(c=!1,i=this.a,r=!1,p==10)switch(i){case 100:case 68:case 119:case 87:case 115:case 83:gw(d,this.dm(i)),r=!0;break;case 105:case 73:case 99:case 67:i=this.um(d,i),i<0&&(r=!0);break;case 112:case 80:if(g=$nn(this,i),!g)throw M(new Le($e((Ie(),EK))));gw(d,g),r=!0;break;default:i=this.cm()}else if(p==20){if(f=w4(this.i,58,this.d),f<0)throw M(new Le($e((Ie(),Bcn))));if(h=!0,Xi(this.i,this.d)==94&&(++this.d,h=!1),s=qo(this.i,this.d,f),l=mNn(s,h,(this.e&512)==512),!l)throw M(new Le($e((Ie(),BWn))));if(gw(d,l),r=!0,f+1>=this.j||Xi(this.i,f+1)!=93)throw M(new Le($e((Ie(),Bcn))));this.d=f+2}if(Ze(this),!r)if(this.c!=0||this.a!=45)xc(d,i,i);else{if(Ze(this),(p=this.c)==1)throw M(new Le($e((Ie(),US))));p==0&&this.a==93?(xc(d,i,i),xc(d,45,45)):(a=this.a,p==10&&(a=this.cm()),Ze(this),xc(d,i,a))}(this.e&Gs)==Gs&&this.c==0&&this.a==44&&Ze(this)}if(this.c==1)throw M(new Le($e((Ie(),US))));return t&&(V5(t,d),d=t),Gg(d),z5(d),this.b=0,Ze(this),d},o.fm=function(){var e,t,i,r;for(i=this.em(!1);(r=this.c)!=7;)if(e=this.a,r==0&&(e==45||e==38)||r==4){if(Ze(this),this.c!=9)throw M(new Le($e((Ie(),KWn))));if(t=this.em(!1),r==4)gw(i,t);else if(e==45)V5(i,t);else if(e==38)MGn(i,t);else throw M(new ec("ASSERT"))}else throw M(new Le($e((Ie(),_Wn))));return Ze(this),i},o.gm=function(){var e,t;return e=this.a-48,t=(nt(),nt(),new IN(12,null,e)),!this.g&&(this.g=new BE),FE(this.g,new RG(e)),Ze(this),t},o.hm=function(){return Ze(this),nt(),Ese},o.im=function(){return Ze(this),nt(),jse},o.jm=function(){throw M(new Le($e((Ie(),is))))},o.km=function(){throw M(new Le($e((Ie(),is))))},o.lm=function(){return Ze(this),y6e()},o.mm=function(){return Ze(this),nt(),Mse},o.nm=function(){return Ze(this),nt(),Ase},o.om=function(){var e;if(this.d>=this.j||((e=Xi(this.i,this.d++))&65504)!=64)throw M(new Le($e((Ie(),$Wn))));return Ze(this),nt(),nt(),new Nh(0,e-64)},o.pm=function(){return Ze(this),CPe()},o.qm=function(){return Ze(this),nt(),Sse},o.rm=function(){var e;return e=(nt(),nt(),new Nh(0,105)),Ze(this),e},o.sm=function(){return Ze(this),nt(),Tse},o.tm=function(){return Ze(this),nt(),Cse},o.um=function(e,t){return this.cm()},o.vm=function(){return Ze(this),nt(),d0n},o.wm=function(){var e,t,i,r,c;if(this.d+1>=this.j)throw M(new Le($e((Ie(),DWn))));if(r=-1,t=null,e=Xi(this.i,this.d),49<=e&&e<=57){if(r=e-48,!this.g&&(this.g=new BE),FE(this.g,new RG(r)),++this.d,Xi(this.i,this.d)!=41)throw M(new Le($e((Ie(),Ad))));++this.d}else switch(e==63&&--this.d,Ze(this),t=stn(this),t.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw M(new Le($e((Ie(),Ad))));break;default:throw M(new Le($e((Ie(),LWn))))}if(Ze(this),c=B0(this),i=null,c.e==2){if(c.Pm()!=2)throw M(new Le($e((Ie(),NWn))));i=c.Lm(1),c=c.Lm(0)}if(this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),nt(),nt(),new ZNn(r,t,c,i)},o.xm=function(){return Ze(this),nt(),b0n},o.ym=function(){var e;if(Ze(this),e=wM(24,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.zm=function(){var e;if(Ze(this),e=wM(20,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Am=function(){var e;if(Ze(this),e=wM(22,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Bm=function(){var e,t,i,r,c;for(e=0,i=0,t=-1;this.d=this.j)throw M(new Le($e((Ie(),xcn))));if(t==45){for(++this.d;this.d=this.j)throw M(new Le($e((Ie(),xcn))))}if(t==58){if(++this.d,Ze(this),r=VPn(B0(this),e,i),this.c!=7)throw M(new Le($e((Ie(),Ad))));Ze(this)}else if(t==41)++this.d,Ze(this),r=VPn(B0(this),e,i);else throw M(new Le($e((Ie(),OWn))));return r},o.Cm=function(){var e;if(Ze(this),e=wM(21,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Dm=function(){var e;if(Ze(this),e=wM(23,B0(this)),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Em=function(){var e,t;if(Ze(this),e=this.f++,t=rN(B0(this),e),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),t},o.Fm=function(){var e;if(Ze(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Gm=function(e){return Ze(this),this.c==5?(Ze(this),uM(e,(nt(),nt(),new Xb(9,e)))):uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ze(this),t=(nt(),nt(),new S6(2)),this.c==5?(Ze(this),pd(t,K9),pd(t,e)):(pd(t,e),pd(t,K9)),t},o.Im=function(e){return Ze(this),this.c==5?(Ze(this),nt(),nt(),new Xb(9,e)):(nt(),nt(),new Xb(3,e))},o.a=0,o.b=0,o.c=0,o.d=0,o.e=0,o.f=1,o.g=null,o.j=0,w(p1,"RegEx/RegexParser",836),b(1947,836,{},gjn),o.bm=function(e){return!1},o.cm=function(){return gen(this)},o.dm=function(e){return Im(e)},o.em=function(e){return kzn(this)},o.fm=function(){throw M(new Le($e((Ie(),is))))},o.gm=function(){throw M(new Le($e((Ie(),is))))},o.hm=function(){throw M(new Le($e((Ie(),is))))},o.im=function(){throw M(new Le($e((Ie(),is))))},o.jm=function(){return Ze(this),Im(67)},o.km=function(){return Ze(this),Im(73)},o.lm=function(){throw M(new Le($e((Ie(),is))))},o.mm=function(){throw M(new Le($e((Ie(),is))))},o.nm=function(){throw M(new Le($e((Ie(),is))))},o.om=function(){return Ze(this),Im(99)},o.pm=function(){throw M(new Le($e((Ie(),is))))},o.qm=function(){throw M(new Le($e((Ie(),is))))},o.rm=function(){return Ze(this),Im(105)},o.sm=function(){throw M(new Le($e((Ie(),is))))},o.tm=function(){throw M(new Le($e((Ie(),is))))},o.um=function(e,t){return gw(e,Im(t)),-1},o.vm=function(){return Ze(this),nt(),nt(),new Nh(0,94)},o.wm=function(){throw M(new Le($e((Ie(),is))))},o.xm=function(){return Ze(this),nt(),nt(),new Nh(0,36)},o.ym=function(){throw M(new Le($e((Ie(),is))))},o.zm=function(){throw M(new Le($e((Ie(),is))))},o.Am=function(){throw M(new Le($e((Ie(),is))))},o.Bm=function(){throw M(new Le($e((Ie(),is))))},o.Cm=function(){throw M(new Le($e((Ie(),is))))},o.Dm=function(){throw M(new Le($e((Ie(),is))))},o.Em=function(){var e;if(Ze(this),e=rN(B0(this),0),this.c!=7)throw M(new Le($e((Ie(),Ad))));return Ze(this),e},o.Fm=function(){throw M(new Le($e((Ie(),is))))},o.Gm=function(e){return Ze(this),uM(e,(nt(),nt(),new Xb(3,e)))},o.Hm=function(e){var t;return Ze(this),t=(nt(),nt(),new S6(2)),pd(t,e),pd(t,K9),t},o.Im=function(e){return Ze(this),nt(),nt(),new Xb(3,e)};var X2=null,qv=null;w(p1,"RegEx/ParserForXMLSchema",1947),b(122,1,uv,Wd),o.Jm=function(e){throw M(new ec("Not supported."))},o.Km=function(){return-1},o.Lm=function(e){return null},o.Mm=function(){return null},o.Nm=function(e){},o.Om=function(e){},o.Pm=function(){return 0},o.Ib=function(){return this.Qm(0)},o.Qm=function(e){return this.e==11?".":""},o.e=0;var h0n,Uv,R9,yse,l0n,rg=null,PO,IU=null,a0n,K9,OU=null,d0n,b0n,w0n,g0n,p0n,jse,H3,Ese,Cse,Mse,Tse,Gv,Ase,Sse,NNe=w(p1,"RegEx/Token",122);b(138,122,{3:1,138:1,122:1},yo),o.Qm=function(e){var t,i,r;if(this.e==4)if(this==a0n)i=".";else if(this==PO)i="\\d";else if(this==Gv)i="\\w";else if(this==H3)i="\\s";else{for(r=new Hl,r.a+="[",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}else if(this==w0n)i="\\D";else if(this==p0n)i="\\W";else if(this==g0n)i="\\S";else{for(r=new Hl,r.a+="[^",t=0;t0&&(r.a+=","),this.b[t]===this.b[t+1]?Er(r,by(this.b[t])):(Er(r,by(this.b[t])),r.a+="-",Er(r,by(this.b[t+1])));r.a+="]",i=r.a}return i},o.a=!1,o.c=!1,w(p1,"RegEx/RangeToken",138),b(592,1,{592:1},RG),o.a=0,w(p1,"RegEx/RegexParser/ReferencePosition",592),b(591,1,{3:1,591:1},OEn),o.Fb=function(e){var t;return e==null||!D(e,591)?!1:(t=u(e,591),An(this.b,t.b)&&this.a==t.a)},o.Hb=function(){return t1(this.b+"/"+fen(this.a))},o.Ib=function(){return this.c.Qm(this.a)},o.a=0,w(p1,"RegEx/RegularExpression",591),b(228,122,uv,Nh),o.Km=function(){return this.a},o.Qm=function(e){var t,i,r;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:r="\\"+LL(this.a&ui);break;case 12:r="\\f";break;case 10:r="\\n";break;case 13:r="\\r";break;case 9:r="\\t";break;case 27:r="\\e";break;default:this.a>=hr?(i=(t=this.a>>>0,"0"+t.toString(16)),r="\\v"+qo(i,i.length-6,i.length)):r=""+LL(this.a&ui)}break;case 8:this==d0n||this==b0n?r=""+LL(this.a&ui):r="\\"+LL(this.a&ui);break;default:r=null}return r},o.a=0,w(p1,"RegEx/Token/CharToken",228),b(318,122,uv,Xb),o.Lm=function(e){return this.a},o.Nm=function(e){this.b=e},o.Om=function(e){this.c=e},o.Pm=function(){return 1},o.Qm=function(e){var t;if(this.e==3)if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}";else throw M(new ec("Token#toString(): CLOSURE "+this.c+ur+this.b));else if(this.c<0&&this.b<0)t=this.a.Qm(e)+"*?";else if(this.c==this.b)t=this.a.Qm(e)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.Qm(e)+"{"+this.c+","+this.b+"}?";else if(this.c>=0&&this.b<0)t=this.a.Qm(e)+"{"+this.c+",}?";else throw M(new ec("Token#toString(): NONGREEDYCLOSURE "+this.c+ur+this.b));return t},o.b=0,o.c=0,w(p1,"RegEx/Token/ClosureToken",318),b(837,122,uv,SW),o.Lm=function(e){return e==0?this.a:this.b},o.Pm=function(){return 2},o.Qm=function(e){var t;return this.b.e==3&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+":this.b.e==9&&this.b.Lm(0)==this.a?t=this.a.Qm(e)+"+?":t=this.a.Qm(e)+(""+this.b.Qm(e)),t},w(p1,"RegEx/Token/ConcatToken",837),b(1945,122,uv,ZNn),o.Lm=function(e){if(e==0)return this.d;if(e==1)return this.b;throw M(new ec("Internal Error: "+e))},o.Pm=function(){return this.b?2:1},o.Qm=function(e){var t;return this.c>0?t="(?("+this.c+")":this.a.e==8?t="(?("+this.a+")":t="(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},o.c=0,w(p1,"RegEx/Token/ConditionToken",1945),b(1946,122,uv,qOn),o.Lm=function(e){return this.b},o.Pm=function(){return 1},o.Qm=function(e){return"(?"+(this.a==0?"":fen(this.a))+(this.c==0?"":fen(this.c))+":"+this.b.Qm(e)+")"},o.a=0,o.c=0,w(p1,"RegEx/Token/ModifierToken",1946),b(838,122,uv,BW),o.Lm=function(e){return this.a},o.Pm=function(){return 1},o.Qm=function(e){var t;switch(t=null,this.e){case 6:this.b==0?t="(?:"+this.a.Qm(e)+")":t="("+this.a.Qm(e)+")";break;case 20:t="(?="+this.a.Qm(e)+")";break;case 21:t="(?!"+this.a.Qm(e)+")";break;case 22:t="(?<="+this.a.Qm(e)+")";break;case 23:t="(?"+this.a.Qm(e)+")"}return t},o.b=0,w(p1,"RegEx/Token/ParenToken",838),b(530,122,{3:1,122:1,530:1},IN),o.Mm=function(){return this.b},o.Qm=function(e){return this.e==12?"\\"+this.a:gMe(this.b)},o.a=0,w(p1,"RegEx/Token/StringToken",530),b(477,122,uv,S6),o.Jm=function(e){pd(this,e)},o.Lm=function(e){return u(k0(this.a,e),122)},o.Pm=function(){return this.a?this.a.a.c.length:0},o.Qm=function(e){var t,i,r,c,s;if(this.e==1){if(this.a.a.c.length==2)t=u(k0(this.a,0),122),i=u(k0(this.a,1),122),i.e==3&&i.Lm(0)==t?c=t.Qm(e)+"+":i.e==9&&i.Lm(0)==t?c=t.Qm(e)+"+?":c=t.Qm(e)+(""+i.Qm(e));else{for(s=new Hl,r=0;r=this.c.b:this.a<=this.c.b},o.Sb=function(){return this.b>0},o.Tb=function(){return this.b},o.Vb=function(){return this.b-1},o.Qb=function(){throw M(new Kl(ZJn))},o.a=0,o.b=0,w(iun,"ExclusiveRange/RangeIterator",258);var fs=A4(GS,"C"),ye=A4(y8,"I"),so=A4(i3,"Z"),Fa=A4(j8,"J"),Fu=A4(m8,"B"),Pi=A4(v8,"D"),cg=A4(k8,"F"),V2=A4(E8,"S"),$Ne=Nt("org.eclipse.elk.core.labels","ILabelManager"),m0n=Nt(or,"DiagnosticChain"),v0n=Nt(AJn,"ResourceSet"),k0n=w(or,"InvocationTargetException",null),Ise=(HE(),W3e),Ose=Ose=Kke;Hme(Bfe),Bme("permProps",[[["locale","default"],[nQn,"gecko1_8"]],[["locale","default"],[nQn,"safari"]]]),Ose(null,"elk",null)}).call(this)}).call(this,typeof Nse<"u"?Nse:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(Xt,gt,Sr){function Di(Jt,Xe){if(!(Jt instanceof Xe))throw new TypeError("Cannot call a class as a function")}function y(Jt,Xe){if(!Jt)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Xe&&(typeof Xe=="object"||typeof Xe=="function")?Xe:Jt}function Wt(Jt,Xe){if(typeof Xe!="function"&&Xe!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof Xe);Jt.prototype=Object.create(Xe&&Xe.prototype,{constructor:{value:Jt,enumerable:!1,writable:!0,configurable:!0}}),Xe&&(Object.setPrototypeOf?Object.setPrototypeOf(Jt,Xe):Jt.__proto__=Xe)}var Bu=Xt("./elk-api.js").default,Ht=function(Jt){Wt(Xe,Jt);function Xe(){var Yi=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Di(this,Xe);var Ri=Object.assign({},Yi),En=!1;try{Xt.resolve("web-worker"),En=!0}catch{}if(Yi.workerUrl)if(En){var hu=Xt("web-worker");Ri.workerFactory=function(Pr){return new hu(Pr)}}else console.warn(`Web worker requested but 'web-worker' package not installed. +Consider installing the package or pass your own 'workerFactory' to ELK's constructor. +... Falling back to non-web worker version.`);if(!Ri.workerFactory){var Qc=Xt("./elk-worker.min.js"),Ru=Qc.Worker;Ri.workerFactory=function(Pr){return new Ru(Pr)}}return y(this,(Xe.__proto__||Object.getPrototypeOf(Xe)).call(this,Ri))}return Xe}(Bu);Object.defineProperty(gt.exports,"__esModule",{value:!0}),gt.exports=Ht,Ht.default=Ht},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(Xt,gt,Sr){gt.exports=Worker},{}]},{},[3])(3)})})(Bse);var VNe=Bse.exports;const WNe=BNe(VNe),JNe=(ct,_t,Xt)=>{const{parentById:gt}=Xt,Sr=new Set;let Di=ct;for(;Di;){if(Sr.add(Di),Di===_t)return Di;Di=gt[Di]}for(Di=_t;Di;){if(Sr.has(Di))return Di;Di=gt[Di]}return"root"},$se=new WNe;let Ab={};const QNe={};let X3={};const YNe=async function(ct,_t,Xt,gt,Sr,Di,y){const Bu=Xt.select(`[id="${_t}"]`).insert("g").attr("class","nodes"),Ht=Object.keys(ct);return await Promise.all(Ht.map(async function(Jt){const Xe=ct[Jt];let Yi="default";Xe.classes.length>0&&(Yi=Xe.classes.join(" ")),Yi=Yi+" flowchart-label";const Ri=E0n(Xe.styles);let En=Xe.text!==void 0?Xe.text:Xe.id;const hu={width:0,height:0},Qc=[{id:Xe.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:Xe.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:Xe.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:Xe.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let Ru=0,Pr="",Mf={};switch(Xe.type){case"round":Ru=5,Pr="rect";break;case"square":Pr="rect";break;case"diamond":Pr="question",Mf={portConstraints:"FIXED_SIDE"};break;case"hexagon":Pr="hexagon";break;case"odd":Pr="rect_left_inv_arrow";break;case"lean_right":Pr="lean_right";break;case"lean_left":Pr="lean_left";break;case"trapezoid":Pr="trapezoid";break;case"inv_trapezoid":Pr="inv_trapezoid";break;case"odd_right":Pr="rect_left_inv_arrow";break;case"circle":Pr="circle";break;case"ellipse":Pr="ellipse";break;case"stadium":Pr="stadium";break;case"subroutine":Pr="subroutine";break;case"cylinder":Pr="cylinder";break;case"group":Pr="rect";break;case"doublecircle":Pr="doublecircle";break;default:Pr="rect"}const L1={labelStyle:Ri.labelStyle,shape:Pr,labelText:En,labelType:Xe.labelType,rx:Ru,ry:Ru,class:Yi,style:Ri.style,id:Xe.id,link:Xe.link,linkTarget:Xe.linkTarget,tooltip:Sr.db.getTooltip(Xe.id)||"",domId:Sr.db.lookUpDomId(Xe.id),haveCallback:Xe.haveCallback,width:Xe.type==="group"?500:void 0,dir:Xe.dir,type:Xe.type,props:Xe.props,padding:xU().flowchart.padding};let N1,og;if(L1.type!=="group")og=await HNe(Bu,L1,Xe.dir),N1=og.node().getBBox();else{gt.createElementNS("http://www.w3.org/2000/svg","text");const{shapeSvg:$1,bbox:ul}=await qNe(Bu,L1,void 0,!0);hu.width=ul.width,hu.wrappingWidth=xU().flowchart.wrappingWidth,hu.height=ul.height,hu.labelNode=$1.node(),L1.labelData=hu}const V3={id:Xe.id,ports:Xe.type==="diamond"?Qc:[],layoutOptions:Mf,labelText:En,labelData:hu,domId:Sr.db.lookUpDomId(Xe.id),width:N1==null?void 0:N1.width,height:N1==null?void 0:N1.height,type:Xe.type,el:og,parent:Di.parentById[Xe.id]};X3[L1.id]=V3})),y},xse=(ct,_t,Xt)=>{const gt={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return gt.TD=gt.TB,gt[Xt][_t][ct]},Fse=(ct,_t,Xt)=>{if(Ra.info("getNextPort",{node:ct,edgeDirection:_t,graphDirection:Xt}),!Ab[ct])switch(Xt){case"TB":case"TD":Ab[ct]={inPosition:"north",outPosition:"south"};break;case"BT":Ab[ct]={inPosition:"south",outPosition:"north"};break;case"RL":Ab[ct]={inPosition:"east",outPosition:"west"};break;case"LR":Ab[ct]={inPosition:"west",outPosition:"east"};break}const gt=_t==="in"?Ab[ct].inPosition:Ab[ct].outPosition;return _t==="in"?Ab[ct].inPosition=xse(Ab[ct].inPosition,_t,Xt):Ab[ct].outPosition=xse(Ab[ct].outPosition,_t,Xt),gt},ZNe=(ct,_t)=>{let Xt=ct.start,gt=ct.end;const Sr=Xt,Di=gt,y=X3[Xt],Wt=X3[gt];return!y||!Wt?{source:Xt,target:gt}:(y.type==="diamond"&&(Xt=`${Xt}-${Fse(Xt,"out",_t)}`),Wt.type==="diamond"&&(gt=`${gt}-${Fse(gt,"in",_t)}`),{source:Xt,target:gt,sourceId:Sr,targetId:Di})},n$e=function(ct,_t,Xt,gt){Ra.info("abc78 edges = ",ct);const Sr=gt.insert("g").attr("class","edgeLabels");let Di={},y=_t.db.getDirection(),Wt,Bu;if(ct.defaultStyle!==void 0){const Ht=E0n(ct.defaultStyle);Wt=Ht.style,Bu=Ht.labelStyle}return ct.forEach(function(Ht){const Jt="L-"+Ht.start+"-"+Ht.end;Di[Jt]===void 0?(Di[Jt]=0,Ra.info("abc78 new entry",Jt,Di[Jt])):(Di[Jt]++,Ra.info("abc78 new entry",Jt,Di[Jt]));let Xe=Jt+"-"+Di[Jt];Ra.info("abc78 new link id to be used is",Jt,Xe,Di[Jt]);const Yi="LS-"+Ht.start,Ri="LE-"+Ht.end,En={style:"",labelStyle:""};switch(En.minlen=Ht.length||1,Ht.type==="arrow_open"?En.arrowhead="none":En.arrowhead="normal",En.arrowTypeStart="arrow_open",En.arrowTypeEnd="arrow_open",Ht.type){case"double_arrow_cross":En.arrowTypeStart="arrow_cross";case"arrow_cross":En.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":En.arrowTypeStart="arrow_point";case"arrow_point":En.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":En.arrowTypeStart="arrow_circle";case"arrow_circle":En.arrowTypeEnd="arrow_circle";break}let hu="",Qc="";switch(Ht.stroke){case"normal":hu="fill:none;",Wt!==void 0&&(hu=Wt),Bu!==void 0&&(Qc=Bu),En.thickness="normal",En.pattern="solid";break;case"dotted":En.thickness="normal",En.pattern="dotted",En.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":En.thickness="thick",En.pattern="solid",En.style="stroke-width: 3.5px;fill:none;";break}if(Ht.style!==void 0){const og=E0n(Ht.style);hu=og.style,Qc=og.labelStyle}En.style=En.style+=hu,En.labelStyle=En.labelStyle+=Qc,Ht.interpolate!==void 0?En.curve=j0n(Ht.interpolate,$U):ct.defaultInterpolate!==void 0?En.curve=j0n(ct.defaultInterpolate,$U):En.curve=j0n(QNe.curve,$U),Ht.text===void 0?Ht.style!==void 0&&(En.arrowheadStyle="fill: #333"):(En.arrowheadStyle="fill: #333",En.labelpos="c"),En.labelType=Ht.labelType,En.label=Ht.text.replace(KNe.lineBreakRegex,` +`),Ht.style===void 0&&(En.style=En.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),En.labelStyle=En.labelStyle.replace("color:","fill:"),En.id=Xe,En.classes="flowchart-link "+Yi+" "+Ri;const Ru=UNe(Sr,En),{source:Pr,target:Mf,sourceId:L1,targetId:N1}=ZNe(Ht,y);Ra.debug("abc78 source and target",Pr,Mf),Xt.edges.push({id:"e"+Ht.start+Ht.end,sources:[Pr],targets:[Mf],sourceId:L1,targetId:N1,labelEl:Ru,labels:[{width:En.width,height:En.height,orgWidth:En.width,orgHeight:En.height,text:En.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:En})}),Xt},e$e=function(ct,_t,Xt,gt,Sr){let Di="";gt&&(Di=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,Di=Di.replace(/\(/g,"\\("),Di=Di.replace(/\)/g,"\\)")),zNe(ct,_t,Di,Sr,Xt)},t$e=function(ct,_t){return Ra.info("Extracting classes"),_t.db.getClasses()},i$e=function(ct){const _t={parentById:{},childrenById:{}},Xt=ct.getSubGraphs();return Ra.info("Subgraphs - ",Xt),Xt.forEach(function(gt){gt.nodes.forEach(function(Sr){_t.parentById[Sr]=gt.id,_t.childrenById[gt.id]===void 0&&(_t.childrenById[gt.id]=[]),_t.childrenById[gt.id].push(Sr)})}),Xt.forEach(function(gt){gt.id,_t.parentById[gt.id]!==void 0&&_t.parentById[gt.id]}),_t},r$e=function(ct,_t,Xt){const gt=JNe(ct,_t,Xt);if(gt===void 0||gt==="root")return{x:0,y:0};const Sr=X3[gt].offset;return{x:Sr.posX,y:Sr.posY}},c$e=function(ct,_t,Xt,gt,Sr,Di){const y=r$e(_t.sourceId,_t.targetId,Sr),Wt=_t.sections[0].startPoint,Bu=_t.sections[0].endPoint,Jt=(_t.sections[0].bendPoints?_t.sections[0].bendPoints:[]).map(Mf=>[Mf.x+y.x,Mf.y+y.y]),Xe=[[Wt.x+y.x,Wt.y+y.y],...Jt,[Bu.x+y.x,Bu.y+y.y]],{x:Yi,y:Ri}=GNe(_t.edgeData),En=XNe().x(Yi).y(Ri).curve($U),hu=ct.insert("path").attr("d",En(Xe)).attr("class","path "+Xt.classes).attr("fill","none"),Qc=ct.insert("g").attr("class","edgeLabel"),Ru=IO(Qc.node().appendChild(_t.labelEl)),Pr=Ru.node().firstChild.getBoundingClientRect();Ru.attr("width",Pr.width),Ru.attr("height",Pr.height),Qc.attr("transform",`translate(${_t.labels[0].x+y.x}, ${_t.labels[0].y+y.y})`),e$e(hu,Xt,gt.type,gt.arrowMarkerAbsolute,Di)},Rse=(ct,_t)=>{ct.forEach(Xt=>{Xt.children||(Xt.children=[]);const gt=_t.childrenById[Xt.id];gt&>.forEach(Sr=>{Xt.children.push(X3[Sr])}),Rse(Xt.children,_t)})},u$e=async function(ct,_t,Xt,gt){var Sr;gt.db.clear(),X3={},Ab={},gt.db.setGen("gen-2"),gt.parser.parse(ct);const Di=IO("body").append("div").attr("style","height:400px").attr("id","cy");let y={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(Ra.info("Drawing flowchart using v3 renderer",$se),gt.db.getDirection()){case"BT":y.layoutOptions["elk.direction"]="UP";break;case"TB":y.layoutOptions["elk.direction"]="DOWN";break;case"LR":y.layoutOptions["elk.direction"]="RIGHT";break;case"RL":y.layoutOptions["elk.direction"]="LEFT";break}const{securityLevel:Bu,flowchart:Ht}=xU();let Jt;Bu==="sandbox"&&(Jt=IO("#i"+_t));const Xe=Bu==="sandbox"?IO(Jt.nodes()[0].contentDocument.body):IO("body"),Yi=Bu==="sandbox"?Jt.nodes()[0].contentDocument:document,Ri=Xe.select(`[id="${_t}"]`);_Ne(Ri,["point","circle","cross"],gt.type,_t);const hu=gt.db.getVertices();let Qc;const Ru=gt.db.getSubGraphs();Ra.info("Subgraphs - ",Ru);for(let $1=Ru.length-1;$1>=0;$1--)Qc=Ru[$1],gt.db.addVertex(Qc.id,{text:Qc.title,type:Qc.labelType},"group",void 0,Qc.classes,Qc.dir);const Pr=Ri.insert("g").attr("class","subgraphs"),Mf=i$e(gt.db);y=await YNe(hu,_t,Xe,Yi,gt,Mf,y);const L1=Ri.insert("g").attr("class","edges edgePath"),N1=gt.db.getEdges();y=n$e(N1,gt,y,Ri),Object.keys(X3).forEach($1=>{const ul=X3[$1];ul.parent||y.children.push(ul),Mf.childrenById[$1]!==void 0&&(ul.labels=[{text:ul.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:ul.labelData.width,height:ul.labelData.height}],delete ul.x,delete ul.y,delete ul.width,delete ul.height)}),Rse(y.children,Mf),Ra.info("after layout",JSON.stringify(y,null,2));const V3=await $se.layout(y);Kse(0,0,V3.children,Ri,Pr,gt,0),Ra.info("after layout",V3),(Sr=V3.edges)==null||Sr.map($1=>{c$e(L1,$1,$1.edgeData,gt,Mf,_t)}),RNe({},Ri,Ht.diagramPadding,Ht.useMaxWidth),Di.remove()},Kse=(ct,_t,Xt,gt,Sr,Di,y)=>{Xt.forEach(function(Wt){if(Wt)if(X3[Wt.id].offset={posX:Wt.x+ct,posY:Wt.y+_t,x:ct,y:_t,depth:y,width:Wt.width,height:Wt.height},Wt.type==="group"){const Bu=Sr.insert("g").attr("class","subgraph");Bu.insert("rect").attr("class","subgraph subgraph-lvl-"+y%5+" node").attr("x",Wt.x+ct).attr("y",Wt.y+_t).attr("width",Wt.width).attr("height",Wt.height);const Ht=Bu.insert("g").attr("class","label"),Jt=xU().flowchart.htmlLabels?Wt.labelData.width/2:0;Ht.attr("transform",`translate(${Wt.labels[0].x+ct+Wt.x+Jt}, ${Wt.labels[0].y+_t+Wt.y+3})`),Ht.node().appendChild(Wt.labelData.labelNode),Ra.info("Id (UGH)= ",Wt.type,Wt.labels)}else Ra.info("Id (UGH)= ",Wt.id),Wt.el.attr("transform",`translate(${Wt.x+ct+Wt.width/2}, ${Wt.y+_t+Wt.height/2})`)}),Xt.forEach(function(Wt){Wt&&Wt.type==="group"&&Kse(ct+Wt.x,_t+Wt.y,Wt.children,gt,Sr,Di,y+1)})},o$e={getClasses:t$e,draw:u$e},s$e=ct=>{let _t="";for(let Xt=0;Xt<5;Xt++)_t+=` + .subgraph-lvl-${Xt} { + fill: ${ct[`surface${Xt}`]}; + stroke: ${ct[`surfacePeer${Xt}`]}; + } + `;return _t},f$e=ct=>`.label { + font-family: ${ct.fontFamily}; + color: ${ct.nodeTextColor||ct.textColor}; + } + .cluster-label text { + fill: ${ct.titleColor}; + } + .cluster-label span { + color: ${ct.titleColor}; + } + + .label text,span { + fill: ${ct.nodeTextColor||ct.textColor}; + color: ${ct.nodeTextColor||ct.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${ct.mainBkg}; + stroke: ${ct.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${ct.arrowheadColor}; + } + + .edgePath .path { + stroke: ${ct.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${ct.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${ct.edgeLabelBackground}; + rect { + opacity: 0.85; + background-color: ${ct.edgeLabelBackground}; + fill: ${ct.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${ct.clusterBkg}; + stroke: ${ct.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${ct.titleColor}; + } + + .cluster span { + color: ${ct.titleColor}; + } + /* .cluster div { + color: ${ct.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${ct.fontFamily}; + font-size: 12px; + background: ${ct.tertiaryColor}; + border: 1px solid ${ct.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${ct.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + + .flowchart-label text { + text-anchor: middle; + } + + ${s$e(ct)} +`,h$e=f$e,k$e={db:xNe,renderer:o$e,parser:FNe,styles:h$e};export{k$e as diagram}; diff --git a/docs/assets/chunks/framework.aTtkxbT6.js b/docs/assets/chunks/framework.aTtkxbT6.js new file mode 100644 index 0000000..4929966 --- /dev/null +++ b/docs/assets/chunks/framework.aTtkxbT6.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ws(e,t){const n=new Set(e.split(","));return t?s=>n.has(s.toLowerCase()):s=>n.has(s)}const ne={},mt=[],Te=()=>{},yo=()=>!1,Wt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Es=e=>e.startsWith("onUpdate:"),oe=Object.assign,Cs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},_o=Object.prototype.hasOwnProperty,z=(e,t)=>_o.call(e,t),V=Array.isArray,yt=e=>En(e)==="[object Map]",Wr=e=>En(e)==="[object Set]",q=e=>typeof e=="function",re=e=>typeof e=="string",At=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",qr=e=>(Z(e)||q(e))&&q(e.then)&&q(e.catch),Gr=Object.prototype.toString,En=e=>Gr.call(e),vo=e=>En(e).slice(8,-1),Xr=e=>En(e)==="[object Object]",xs=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=ws(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Cn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},bo=/-(\w)/g,Fe=Cn(e=>e.replace(bo,(t,n)=>n?n.toUpperCase():"")),wo=/\B([A-Z])/g,ut=Cn(e=>e.replace(wo,"-$1").toLowerCase()),xn=Cn(e=>e.charAt(0).toUpperCase()+e.slice(1)),an=Cn(e=>e?`on${xn(e)}`:""),Ze=(e,t)=>!Object.is(e,t),Dn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Eo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Yr=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let Qs;const zr=()=>Qs||(Qs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ts(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(xo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ss(e){let t="";if(re(e))t=e;else if(V(e))for(let n=0;nre(e)?e:e==null?"":V(e)||Z(e)&&(e.toString===Gr||!q(e.toString))?JSON.stringify(e,Qr,2):String(e),Qr=(e,t)=>t&&t.__v_isRef?Qr(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Vn(s,i)+" =>"]=r,n),{})}:Wr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Vn(n))}:At(t)?Vn(t):Z(t)&&!V(t)&&!Xr(t)?String(t):t,Vn=(e,t="")=>{var n;return At(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let be;class Io{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=be,!t&&be&&(this.index=(be.scopes||(be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=be;try{return be=this,t()}finally{be=n}}}on(){be=this}off(){be=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),ft()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ze,n=ot;try{return ze=!0,ot=this,this._runnings++,Zs(this),this.fn()}finally{er(this),this._runnings--,ot=n,ze=t}}stop(){var t;this.active&&(Zs(this),er(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function Po(e){return e.value}function Zs(e){e._trackId++,e._depsLength=0}function er(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},pn=new WeakMap,lt=Symbol(""),os=Symbol("");function _e(e,t,n){if(ze&&ot){let s=pn.get(e);s||pn.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=ri(()=>s.delete(n))),ni(ot,r)}}function Be(e,t,n,s,r,i){const o=pn.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&V(e)){const c=Number(s);o.forEach((a,f)=>{(f==="length"||!At(f)&&f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":V(e)?xs(n)&&l.push(o.get("length")):(l.push(o.get(lt)),yt(e)&&l.push(o.get(os)));break;case"delete":V(e)||(l.push(o.get(lt)),yt(e)&&l.push(o.get(os)));break;case"set":yt(e)&&l.push(o.get(lt));break}Rs();for(const c of l)c&&si(c,4);Is()}function Mo(e,t){var n;return(n=pn.get(e))==null?void 0:n.get(t)}const Fo=ws("__proto__,__v_isRef,__isVue"),ii=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(At)),tr=No();function No(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){at(),Rs();const s=J(this)[t].apply(this,n);return Is(),ft(),s}}),e}function $o(e){const t=J(this);return _e(t,"has",e),t.hasOwnProperty(e)}class oi{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,s){const r=this._isReadonly,i=this._shallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Yo:ai:i?ui:ci).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=V(t);if(!r){if(o&&z(tr,n))return Reflect.get(tr,n,s);if(n==="hasOwnProperty")return $o}const l=Reflect.get(t,n,s);return(At(n)?ii.has(n):Fo(n))||(r||_e(t,"get",n),i)?l:he(l)?o&&xs(n)?l:l.value:Z(l)?r?An(l):Sn(l):l}}class li extends oi{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._shallow){const c=xt(i);if(!gn(s)&&!xt(s)&&(i=J(i),s=J(s)),!V(t)&&he(i)&&!he(s))return c?!1:(i.value=s,!0)}const o=V(t)&&xs(n)?Number(n)e,Tn=e=>Reflect.getPrototypeOf(e);function zt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(Ze(t,i)&&_e(r,"get",t),_e(r,"get",i));const{has:o}=Tn(r),l=s?Os:n?Ms:jt;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Jt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(Ze(e,r)&&_e(s,"has",e),_e(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Qt(e,t=!1){return e=e.__v_raw,!t&&_e(J(e),"iterate",lt),Reflect.get(e,"size",e)}function nr(e){e=J(e);const t=J(this);return Tn(t).has.call(t,e)||(t.add(e),Be(t,"add",e,e)),this}function sr(e,t){t=J(t);const n=J(this),{has:s,get:r}=Tn(n);let i=s.call(n,e);i||(e=J(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Ze(t,o)&&Be(n,"set",e,t):Be(n,"add",e,t),this}function rr(e){const t=J(this),{has:n,get:s}=Tn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&Be(t,"delete",e,void 0),i}function ir(){const e=J(this),t=e.size!==0,n=e.clear();return t&&Be(e,"clear",void 0,void 0),n}function Zt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?Os:e?Ms:jt;return!e&&_e(l,"iterate",lt),o.forEach((a,f)=>s.call(r,c(a),c(f),i))}}function en(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=yt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),f=n?Os:t?Ms:jt;return!t&&_e(i,"iterate",c?os:lt),{next(){const{value:h,done:p}=a.next();return p?{value:h,done:p}:{value:l?[f(h[0]),f(h[1])]:f(h),done:p}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Do(){const e={get(i){return zt(this,i)},get size(){return Qt(this)},has:Jt,add:nr,set:sr,delete:rr,clear:ir,forEach:Zt(!1,!1)},t={get(i){return zt(this,i,!1,!0)},get size(){return Qt(this)},has:Jt,add:nr,set:sr,delete:rr,clear:ir,forEach:Zt(!1,!0)},n={get(i){return zt(this,i,!0)},get size(){return Qt(this,!0)},has(i){return Jt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Zt(!0,!1)},s={get(i){return zt(this,i,!0,!0)},get size(){return Qt(this,!0)},has(i){return Jt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=en(i,!1,!1),n[i]=en(i,!0,!1),t[i]=en(i,!1,!0),s[i]=en(i,!0,!0)}),[e,n,t,s]}const[Vo,Uo,Ko,Wo]=Do();function Ls(e,t){const n=t?e?Wo:Ko:e?Uo:Vo;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(z(n,r)&&r in s?n:s,r,i)}const qo={get:Ls(!1,!1)},Go={get:Ls(!1,!0)},Xo={get:Ls(!0,!1)},ci=new WeakMap,ui=new WeakMap,ai=new WeakMap,Yo=new WeakMap;function zo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Jo(e){return e.__v_skip||!Object.isExtensible(e)?0:zo(vo(e))}function Sn(e){return xt(e)?e:Ps(e,!1,Bo,qo,ci)}function Qo(e){return Ps(e,!1,ko,Go,ui)}function An(e){return Ps(e,!0,jo,Xo,ai)}function Ps(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=Jo(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function vt(e){return xt(e)?vt(e.__v_raw):!!(e&&e.__v_isReactive)}function xt(e){return!!(e&&e.__v_isReadonly)}function gn(e){return!!(e&&e.__v_isShallow)}function fi(e){return vt(e)||xt(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Pt(e){return Object.isExtensible(e)&&hn(e,"__v_skip",!0),e}const jt=e=>Z(e)?Sn(e):e,Ms=e=>Z(e)?An(e):e;class di{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new As(()=>t(this._value),()=>Mt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Ze(t._value,t._value=t.effect.run())&&Mt(t,4),Fs(t),t.effect._dirtyLevel>=2&&Mt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Zo(e,t,n=!1){let s,r;const i=q(e);return i?(s=e,r=Te):(s=e.get,r=e.set),new di(s,r,i||!r,n)}function Fs(e){var t;ze&&ot&&(e=J(e),ni(ot,(t=e.dep)!=null?t:e.dep=ri(()=>e.dep=void 0,e instanceof di?e:void 0)))}function Mt(e,t=4,n){e=J(e);const s=e.dep;s&&si(s,t)}function he(e){return!!(e&&e.__v_isRef===!0)}function fe(e){return pi(e,!1)}function hi(e){return pi(e,!0)}function pi(e,t){return he(e)?e:new el(e,t)}class el{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:jt(t)}get value(){return Fs(this),this._value}set value(t){const n=this.__v_isShallow||gn(t)||xt(t);t=n?t:J(t),Ze(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:jt(t),Mt(this,4))}}function gi(e){return he(e)?e.value:e}const tl={get:(e,t,n)=>gi(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return he(r)&&!he(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function mi(e){return vt(e)?e:new Proxy(e,tl)}class nl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Fs(this),()=>Mt(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function sl(e){return new nl(e)}class rl{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Mo(J(this._object),this._key)}}class il{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function ol(e,t,n){return he(e)?e:q(e)?new il(e):Z(e)&&arguments.length>1?ll(e,t,n):fe(e)}function ll(e,t,n){const s=e[t];return he(s)?s:new rl(e,t,n)}/** +* @vue/runtime-core v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Je(e,t,n,s){try{return s?e(...s):e()}catch(r){qt(r,t,n)}}function Ae(e,t,n,s){if(q(e)){const i=Je(e,t,n,s);return i&&qr(i)&&i.catch(o=>{qt(o,t,n)}),i}const r=[];for(let i=0;i>>1,r=ae[s],i=Dt(r);iPe&&ae.splice(t,1)}function cs(e){V(e)?bt.push(...e):(!qe||!qe.includes(e,e.allowRecurse?it+1:it))&&bt.push(e),_i()}function or(e,t,n=kt?Pe+1:0){for(;nDt(n)-Dt(s));if(bt.length=0,qe){qe.push(...t);return}for(qe=t,it=0;ite.id==null?1/0:e.id,fl=(e,t)=>{const n=Dt(e)-Dt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function vi(e){ls=!1,kt=!0,ae.sort(fl);try{for(Pe=0;Pere(_)?_.trim():_)),h&&(r=n.map(Eo))}let l,c=s[l=an(t)]||s[l=an(Fe(t))];!c&&i&&(c=s[l=an(ut(t))]),c&&Ae(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(a,e,6,r)}}function bi(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!q(e)){const c=a=>{const f=bi(a,t,!0);f&&(l=!0,oe(o,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Z(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>o[c]=null):oe(o,i),Z(e)&&s.set(e,o),o)}function In(e,t){return!e||!Wt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,ut(t))||z(e,t))}let de=null,On=null;function yn(e){const t=de;return de=e,On=e&&e.type.__scopeId||null,t}function Xu(e){On=e}function Yu(){On=null}function hl(e,t=de,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&vr(-1);const i=yn(t);let o;try{o=e(...r)}finally{yn(i),s._d&&vr(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Un(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:f,renderCache:h,data:p,setupState:_,ctx:R,inheritAttrs:P}=e;let H,U;const G=yn(e);try{if(n.shapeFlag&4){const y=r||s,w=y;H=Ce(f.call(w,y,h,i,_,p,R)),U=c}else{const y=t;H=Ce(y.length>1?y(i,{attrs:c,slots:l,emit:a}):y(i,null)),U=t.props?c:gl(c)}}catch(y){Ht.length=0,qt(y,e,1),H=ce(ge)}let g=H;if(U&&P!==!1){const y=Object.keys(U),{shapeFlag:w}=g;y.length&&w&7&&(o&&y.some(Es)&&(U=ml(U,o)),g=et(g,U))}return n.dirs&&(g=et(g),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),H=g,yn(G),H}function pl(e,t=!0){let n;for(let s=0;s{let t;for(const n in e)(n==="class"||n==="style"||Wt(n))&&((t||(t={}))[n]=e[n]);return t},ml=(e,t)=>{const n={};for(const s in e)(!Es(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function yl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?lr(s,o,a):!!o;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;let us=0;const vl={name:"Suspense",__isSuspense:!0,process(e,t,n,s,r,i,o,l,c,a){if(e==null)bl(t,n,s,r,i,o,l,c,a);else{if(i&&i.deps>0){t.suspense=e.suspense;return}wl(e,t,n,s,r,o,l,c,a)}},hydrate:El,create:js,normalize:Cl},Qu=vl;function Vt(e,t){const n=e.props&&e.props[t];q(n)&&n()}function bl(e,t,n,s,r,i,o,l,c){const{p:a,o:{createElement:f}}=c,h=f("div"),p=e.suspense=js(e,r,s,t,h,n,i,o,l,c);a(null,p.pendingBranch=e.ssContent,h,null,s,p,i,o),p.deps>0?(Vt(e,"onPending"),Vt(e,"onFallback"),a(null,e.ssFallback,t,n,s,null,i,o),wt(p,e.ssFallback)):p.resolve(!1,!0)}function wl(e,t,n,s,r,i,o,l,{p:c,um:a,o:{createElement:f}}){const h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;const p=t.ssContent,_=t.ssFallback,{activeBranch:R,pendingBranch:P,isInFallback:H,isHydrating:U}=h;if(P)h.pendingBranch=p,Me(p,P)?(c(P,p,h.hiddenContainer,null,r,h,i,o,l),h.deps<=0?h.resolve():H&&(U||(c(R,_,n,s,r,null,i,o,l),wt(h,_)))):(h.pendingId=us++,U?(h.isHydrating=!1,h.activeBranch=P):a(P,r,h),h.deps=0,h.effects.length=0,h.hiddenContainer=f("div"),H?(c(null,p,h.hiddenContainer,null,r,h,i,o,l),h.deps<=0?h.resolve():(c(R,_,n,s,r,null,i,o,l),wt(h,_))):R&&Me(p,R)?(c(R,p,n,s,r,h,i,o,l),h.resolve(!0)):(c(null,p,h.hiddenContainer,null,r,h,i,o,l),h.deps<=0&&h.resolve()));else if(R&&Me(p,R))c(R,p,n,s,r,h,i,o,l),wt(h,p);else if(Vt(t,"onPending"),h.pendingBranch=p,p.shapeFlag&512?h.pendingId=p.component.suspenseId:h.pendingId=us++,c(null,p,h.hiddenContainer,null,r,h,i,o,l),h.deps<=0)h.resolve();else{const{timeout:G,pendingId:g}=h;G>0?setTimeout(()=>{h.pendingId===g&&h.fallback(_)},G):G===0&&h.fallback(_)}}function js(e,t,n,s,r,i,o,l,c,a,f=!1){const{p:h,m:p,um:_,n:R,o:{parentNode:P,remove:H}}=a;let U;const G=xl(e);G&&t!=null&&t.pendingBranch&&(U=t.pendingId,t.deps++);const g=e.props?Yr(e.props.timeout):void 0,y=i,w={vnode:e,parent:t,parentComponent:n,namespace:o,container:s,hiddenContainer:r,deps:0,pendingId:us++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!f,isHydrating:f,isUnmounted:!1,effects:[],resolve(E=!1,N=!1){const{vnode:O,activeBranch:x,pendingBranch:T,pendingId:D,effects:S,parentComponent:W,container:ee}=w;let se=!1;w.isHydrating?w.isHydrating=!1:E||(se=x&&T.transition&&T.transition.mode==="out-in",se&&(x.transition.afterLeave=()=>{D===w.pendingId&&(p(T,ee,i===y?R(x):i,0),cs(S))}),x&&(P(x.el)!==w.hiddenContainer&&(i=R(x)),_(x,W,w,!0)),se||p(T,ee,i,0)),wt(w,T),w.pendingBranch=null,w.isInFallback=!1;let $=w.parent,X=!1;for(;$;){if($.pendingBranch){$.effects.push(...S),X=!0;break}$=$.parent}!X&&!se&&cs(S),w.effects=[],G&&t&&t.pendingBranch&&U===t.pendingId&&(t.deps--,t.deps===0&&!N&&t.resolve()),Vt(O,"onResolve")},fallback(E){if(!w.pendingBranch)return;const{vnode:N,activeBranch:O,parentComponent:x,container:T,namespace:D}=w;Vt(N,"onFallback");const S=R(O),W=()=>{w.isInFallback&&(h(null,E,T,S,x,null,D,l,c),wt(w,E))},ee=E.transition&&E.transition.mode==="out-in";ee&&(O.transition.afterLeave=W),w.isInFallback=!0,_(O,x,null,!0),ee||W()},move(E,N,O){w.activeBranch&&p(w.activeBranch,E,N,O),w.container=E},next(){return w.activeBranch&&R(w.activeBranch)},registerDep(E,N){const O=!!w.pendingBranch;O&&w.deps++;const x=E.vnode.el;E.asyncDep.catch(T=>{qt(T,E,0)}).then(T=>{if(E.isUnmounted||w.isUnmounted||w.pendingId!==E.suspenseId)return;E.asyncResolved=!0;const{vnode:D}=E;ys(E,T,!1),x&&(D.el=x);const S=!x&&E.subTree.el;N(E,D,P(x||E.subTree.el),x?null:R(E.subTree),w,o,c),S&&H(S),Hs(E,D.el),O&&--w.deps===0&&w.resolve()})},unmount(E,N){w.isUnmounted=!0,w.activeBranch&&_(w.activeBranch,n,E,N),w.pendingBranch&&_(w.pendingBranch,n,E,N)}};return w}function El(e,t,n,s,r,i,o,l,c){const a=t.suspense=js(t,s,n,e.parentNode,document.createElement("div"),null,r,i,o,l,!0),f=c(e,a.pendingBranch=t.ssContent,n,a,i,o);return a.deps===0&&a.resolve(!1,!0),f}function Cl(e){const{shapeFlag:t,children:n}=e,s=t&32;e.ssContent=ur(s?n.default:n),e.ssFallback=s?ur(n.fallback):ce(ge)}function ur(e){let t;if(q(e)){const n=St&&e._c;n&&(e._d=!1,Vs()),e=e(),n&&(e._d=!0,t=Se,Ui())}return V(e)&&(e=pl(e)),e=Ce(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Ci(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):cs(e)}function wt(e,t){e.activeBranch=t;const{vnode:n,parentComponent:s}=e;let r=t.el;for(;!r&&t.component;)t=t.component.subTree,r=t.el;n.el=r,s&&s.subTree===n&&(s.vnode.el=r,Hs(s,r))}function xl(e){var t;return((t=e.props)==null?void 0:t.suspensible)!=null&&e.props.suspensible!==!1}const Tl=Symbol.for("v-scx"),Sl=()=>Ct(Tl);function xi(e,t){return Ln(e,null,t)}function Zu(e,t){return Ln(e,null,{flush:"post"})}const tn={};function je(e,t,n){return Ln(e,t,n)}function Ln(e,t,{immediate:n,deep:s,flush:r,once:i,onTrack:o,onTrigger:l}=ne){if(t&&i){const E=t;t=(...N)=>{E(...N),w()}}const c=ue,a=E=>s===!0?E:pt(E,s===!1?1:void 0);let f,h=!1,p=!1;if(he(e)?(f=()=>e.value,h=gn(e)):vt(e)?(f=()=>a(e),h=!0):V(e)?(p=!0,h=e.some(E=>vt(E)||gn(E)),f=()=>e.map(E=>{if(he(E))return E.value;if(vt(E))return a(E);if(q(E))return Je(E,c,2)})):q(e)?t?f=()=>Je(e,c,2):f=()=>(_&&_(),Ae(e,c,3,[R])):f=Te,t&&s){const E=f;f=()=>pt(E())}let _,R=E=>{_=g.onStop=()=>{Je(E,c,4),_=g.onStop=void 0}},P;if(Hn)if(R=Te,t?n&&Ae(t,c,3,[f(),p?[]:void 0,R]):f(),r==="sync"){const E=Sl();P=E.__watcherHandles||(E.__watcherHandles=[])}else return Te;let H=p?new Array(e.length).fill(tn):tn;const U=()=>{if(!(!g.active||!g.dirty))if(t){const E=g.run();(s||h||(p?E.some((N,O)=>Ze(N,H[O])):Ze(E,H)))&&(_&&_(),Ae(t,c,3,[E,H===tn?void 0:p&&H[0]===tn?[]:H,R]),H=E)}else g.run()};U.allowRecurse=!!t;let G;r==="sync"?G=U:r==="post"?G=()=>me(U,c&&c.suspense):(U.pre=!0,c&&(U.id=c.uid),G=()=>$s(U));const g=new As(f,Te,G),y=Zr(),w=()=>{g.stop(),y&&Cs(y.effects,g)};return t?n?U():H=g.run():r==="post"?me(g.run.bind(g),c&&c.suspense):g.run(),P&&P.push(w),w}function Al(e,t,n){const s=this.proxy,r=re(e)?e.includes(".")?Ti(s,e):()=>s[e]:e.bind(s,s);let i;q(t)?i=t:(i=t.handler,n=t);const o=Gt(this),l=Ln(r,i.bind(s),n);return o(),l}function Ti(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r0){if(n>=t)return e;n++}if(s=s||new Set,s.has(e))return e;if(s.add(e),he(e))pt(e.value,t,n,s);else if(V(e))for(let r=0;r{pt(r,t,n,s)});else if(Xr(e))for(const r in e)pt(e[r],t,n,s);return e}function Le(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),Li(()=>{e.isUnmounting=!0}),e}const we=[Function,Array],Si={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:we,onEnter:we,onAfterEnter:we,onEnterCancelled:we,onBeforeLeave:we,onLeave:we,onAfterLeave:we,onLeaveCancelled:we,onBeforeAppear:we,onAppear:we,onAfterAppear:we,onAppearCancelled:we},Il={name:"BaseTransition",props:Si,setup(e,{slots:t}){const n=$n(),s=Rl();let r;return()=>{const i=t.default&&Ri(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const P of i)if(P.type!==ge){o=P;break}}const l=J(e),{mode:c}=l;if(s.isLeaving)return Kn(o);const a=ar(o);if(!a)return Kn(o);const f=as(a,l,s,n);fs(a,f);const h=n.subTree,p=h&&ar(h);let _=!1;const{getTransitionKey:R}=a.type;if(R){const P=R();r===void 0?r=P:P!==r&&(r=P,_=!0)}if(p&&p.type!==ge&&(!Me(a,p)||_)){const P=as(p,l,s,n);if(fs(p,P),c==="out-in")return s.isLeaving=!0,P.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Kn(o);c==="in-out"&&a.type!==ge&&(P.delayLeave=(H,U,G)=>{const g=Ai(s,p);g[String(p.key)]=p,H[Ge]=()=>{U(),H[Ge]=void 0,delete f.delayedLeave},f.delayedLeave=G})}return o}}},Ol=Il;function Ai(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function as(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:p,onAfterLeave:_,onLeaveCancelled:R,onBeforeAppear:P,onAppear:H,onAfterAppear:U,onAppearCancelled:G}=t,g=String(e.key),y=Ai(n,e),w=(O,x)=>{O&&Ae(O,s,9,x)},E=(O,x)=>{const T=x[1];w(O,x),V(O)?O.every(D=>D.length<=1)&&T():O.length<=1&&T()},N={mode:i,persisted:o,beforeEnter(O){let x=l;if(!n.isMounted)if(r)x=P||l;else return;O[Ge]&&O[Ge](!0);const T=y[g];T&&Me(e,T)&&T.el[Ge]&&T.el[Ge](),w(x,[O])},enter(O){let x=c,T=a,D=f;if(!n.isMounted)if(r)x=H||c,T=U||a,D=G||f;else return;let S=!1;const W=O[nn]=ee=>{S||(S=!0,ee?w(D,[O]):w(T,[O]),N.delayedLeave&&N.delayedLeave(),O[nn]=void 0)};x?E(x,[O,W]):W()},leave(O,x){const T=String(e.key);if(O[nn]&&O[nn](!0),n.isUnmounting)return x();w(h,[O]);let D=!1;const S=O[Ge]=W=>{D||(D=!0,x(),W?w(R,[O]):w(_,[O]),O[Ge]=void 0,y[T]===e&&delete y[T])};y[T]=e,p?E(p,[O,S]):S()},clone(O){return as(O,t,n,s)}};return N}function Kn(e){if(Pn(e))return e=et(e),e.children=null,e}function ar(e){return Pn(e)?e.children?e.children[0]:void 0:e}function fs(e,t){e.shapeFlag&6&&e.component?fs(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Ri(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,Pn=e=>e.type.__isKeepAlive;function Ll(e,t){Oi(e,"a",t)}function Pl(e,t){Oi(e,"da",t)}function Oi(e,t,n=ue){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Mn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Pn(r.parent.vnode)&&Ml(s,t,n,r),r=r.parent}}function Ml(e,t,n,s){const r=Mn(t,e,s,!0);Fn(()=>{Cs(s[t],r)},n)}function Mn(e,t,n=ue,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;at();const l=Gt(n),c=Ae(t,n,e,o);return l(),ft(),c});return s?r.unshift(i):r.push(i),i}}const De=e=>(t,n=ue)=>(!Hn||e==="sp")&&Mn(e,(...s)=>t(...s),n),Fl=De("bm"),Rt=De("m"),Nl=De("bu"),$l=De("u"),Li=De("bum"),Fn=De("um"),Hl=De("sp"),Bl=De("rtg"),jl=De("rtc");function kl(e,t=ue){Mn("ec",e,t)}function ea(e,t,n,s){let r;const i=n&&n[s];if(V(e)||re(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lUt(t)?!(t.type===ge||t.type===ye&&!Pi(t.children)):!0)?e:null}function na(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:an(s)]=e[s];return n}const ds=e=>e?Yi(e)?Ks(e)||e.proxy:ds(e.parent):null,Ft=oe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ds(e.parent),$root:e=>ds(e.root),$emit:e=>e.emit,$options:e=>ks(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,$s(e.update)}),$nextTick:e=>e.n||(e.n=Rn.bind(e.proxy)),$watch:e=>Al.bind(e)}),Wn=(e,t)=>e!==ne&&!e.__isScriptSetup&&z(e,t),Dl={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const _=o[t];if(_!==void 0)switch(_){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Wn(s,t))return o[t]=1,s[t];if(r!==ne&&z(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&z(a,t))return o[t]=3,i[t];if(n!==ne&&z(n,t))return o[t]=4,n[t];hs&&(o[t]=0)}}const f=Ft[t];let h,p;if(f)return t==="$attrs"&&_e(e,"get",t),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ne&&z(n,t))return o[t]=4,n[t];if(p=c.config.globalProperties,z(p,t))return p[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Wn(r,t)?(r[t]=n,!0):s!==ne&&z(s,t)?(s[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==ne&&z(e,o)||Wn(t,o)||(l=i[0])&&z(l,o)||z(s,o)||z(Ft,o)||z(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function sa(){return Vl().slots}function Vl(){const e=$n();return e.setupContext||(e.setupContext=Ji(e))}function fr(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let hs=!0;function Ul(e){const t=ks(e),n=e.proxy,s=e.ctx;hs=!1,t.beforeCreate&&dr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:p,beforeUpdate:_,updated:R,activated:P,deactivated:H,beforeDestroy:U,beforeUnmount:G,destroyed:g,unmounted:y,render:w,renderTracked:E,renderTriggered:N,errorCaptured:O,serverPrefetch:x,expose:T,inheritAttrs:D,components:S,directives:W,filters:ee}=t;if(a&&Kl(a,s,null),o)for(const X in o){const j=o[X];q(j)&&(s[X]=j.bind(n))}if(r){const X=r.call(n,n);Z(X)&&(e.data=Sn(X))}if(hs=!0,i)for(const X in i){const j=i[X],$e=q(j)?j.bind(n,n):q(j.get)?j.get.bind(n,n):Te,Xt=!q(j)&&q(j.set)?j.set.bind(n):Te,tt=ie({get:$e,set:Xt});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Ie=>tt.value=Ie})}if(l)for(const X in l)Mi(l[X],s,n,X);if(c){const X=q(c)?c.call(n):c;Reflect.ownKeys(X).forEach(j=>{zl(j,X[j])})}f&&dr(f,e,"c");function $(X,j){V(j)?j.forEach($e=>X($e.bind(n))):j&&X(j.bind(n))}if($(Fl,h),$(Rt,p),$(Nl,_),$($l,R),$(Ll,P),$(Pl,H),$(kl,O),$(jl,E),$(Bl,N),$(Li,G),$(Fn,y),$(Hl,x),V(T))if(T.length){const X=e.exposed||(e.exposed={});T.forEach(j=>{Object.defineProperty(X,j,{get:()=>n[j],set:$e=>n[j]=$e})})}else e.exposed||(e.exposed={});w&&e.render===Te&&(e.render=w),D!=null&&(e.inheritAttrs=D),S&&(e.components=S),W&&(e.directives=W)}function Kl(e,t,n=Te){V(e)&&(e=ps(e));for(const s in e){const r=e[s];let i;Z(r)?"default"in r?i=Ct(r.from||s,r.default,!0):i=Ct(r.from||s):i=Ct(r),he(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function dr(e,t,n){Ae(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mi(e,t,n,s){const r=s.includes(".")?Ti(n,s):()=>n[s];if(re(e)){const i=t[e];q(i)&&je(r,i)}else if(q(e))je(r,e.bind(n));else if(Z(e))if(V(e))e.forEach(i=>Mi(i,t,n,s));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&je(r,i,e)}}function ks(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>_n(c,a,o,!0)),_n(c,t,o)),Z(t)&&i.set(t,c),c}function _n(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&_n(e,i,n,!0),r&&r.forEach(o=>_n(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Wl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Wl={data:hr,props:pr,emits:pr,methods:Lt,computed:Lt,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:Lt,directives:Lt,watch:Gl,provide:hr,inject:ql};function hr(e,t){return t?e?function(){return oe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function ql(e,t){return Lt(ps(e),ps(t))}function ps(e){if(V(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(s&&s.proxy):t}}function Jl(e,t,n,s=!1){const r={},i={};hn(i,Nn,1),e.propsDefaults=Object.create(null),Ni(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Qo(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Ql(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[p,_]=$i(h,t,!0);oe(o,p),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!i&&!c)return Z(e)&&s.set(e,mt),mt;if(V(i))for(let f=0;f-1,_[1]=P<0||R-1||z(_,"default"))&&l.push(h)}}}const a=[o,l];return Z(e)&&s.set(e,a),a}function gr(e){return e[0]!=="$"&&!_t(e)}function mr(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function yr(e,t){return mr(e)===mr(t)}function _r(e,t){return V(t)?t.findIndex(n=>yr(n,e)):q(t)&&yr(t,e)?0:-1}const Hi=e=>e[0]==="_"||e==="$stable",Ds=e=>V(e)?e.map(Ce):[Ce(e)],Zl=(e,t,n)=>{if(t._n)return t;const s=hl((...r)=>Ds(t(...r)),n);return s._c=!1,s},Bi=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Hi(r))continue;const i=e[r];if(q(i))t[r]=Zl(r,i,s);else if(i!=null){const o=Ds(i);t[r]=()=>o}}},ji=(e,t)=>{const n=Ds(t);e.slots.default=()=>n},ec=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),hn(t,"_",n)):Bi(t,e.slots={})}else e.slots={},t&&ji(e,t);hn(e.slots,Nn,1)},tc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=ne;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Bi(t,r)),o=t}else t&&(ji(e,t),o={default:1});if(i)for(const l in r)!Hi(l)&&o[l]==null&&delete r[l]};function vn(e,t,n,s,r=!1){if(V(e)){e.forEach((p,_)=>vn(p,t&&(V(t)?t[_]:t),n,s,r));return}if(Et(s)&&!r)return;const i=s.shapeFlag&4?Ks(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,f=l.refs===ne?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(re(a)?(f[a]=null,z(h,a)&&(h[a]=null)):he(a)&&(a.value=null)),q(c))Je(c,l,12,[o,f]);else{const p=re(c),_=he(c);if(p||_){const R=()=>{if(e.f){const P=p?z(h,c)?h[c]:f[c]:c.value;r?V(P)&&Cs(P,i):V(P)?P.includes(i)||P.push(i):p?(f[c]=[i],z(h,c)&&(h[c]=f[c])):(c.value=[i],e.k&&(f[e.k]=c.value))}else p?(f[c]=o,z(h,c)&&(h[c]=o)):_&&(c.value=o,e.k&&(f[e.k]=o))};o?(R.id=-1,me(R,n)):R()}}}let Ue=!1;const nc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sc=e=>e.namespaceURI.includes("MathML"),sn=e=>{if(nc(e))return"svg";if(sc(e))return"mathml"},rn=e=>e.nodeType===8;function rc(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,f=(g,y)=>{if(!y.hasChildNodes()){n(null,g,y),mn(),y._vnode=g;return}Ue=!1,h(y.firstChild,g,null,null,null),mn(),y._vnode=g,Ue&&console.error("Hydration completed but contains mismatches.")},h=(g,y,w,E,N,O=!1)=>{const x=rn(g)&&g.data==="[",T=()=>P(g,y,w,E,N,x),{type:D,ref:S,shapeFlag:W,patchFlag:ee}=y;let se=g.nodeType;y.el=g,ee===-2&&(O=!1,y.dynamicChildren=null);let $=null;switch(D){case Tt:se!==3?y.children===""?(c(y.el=r(""),o(g),g),$=g):$=T():(g.data!==y.children&&(Ue=!0,g.data=y.children),$=i(g));break;case ge:G(g)?($=i(g),U(y.el=g.content.firstChild,g,w)):se!==8||x?$=T():$=i(g);break;case $t:if(x&&(g=i(g),se=g.nodeType),se===1||se===3){$=g;const X=!y.children.length;for(let j=0;j{O=O||!!y.dynamicChildren;const{type:x,props:T,patchFlag:D,shapeFlag:S,dirs:W,transition:ee}=y,se=x==="input"||x==="option";if(se||D!==-1){W&&Le(y,null,w,"created");let $=!1;if(G(g)){$=ki(E,ee)&&w&&w.vnode.props&&w.vnode.props.appear;const j=g.content.firstChild;$&&ee.beforeEnter(j),U(j,g,w),y.el=g=j}if(S&16&&!(T&&(T.innerHTML||T.textContent))){let j=_(g.firstChild,y,g,w,E,N,O);for(;j;){Ue=!0;const $e=j;j=j.nextSibling,l($e)}}else S&8&&g.textContent!==y.children&&(Ue=!0,g.textContent=y.children);if(T)if(se||!O||D&48)for(const j in T)(se&&(j.endsWith("value")||j==="indeterminate")||Wt(j)&&!_t(j)||j[0]===".")&&s(g,j,null,T[j],void 0,void 0,w);else T.onClick&&s(g,"onClick",null,T.onClick,void 0,void 0,w);let X;(X=T&&T.onVnodeBeforeMount)&&Ee(X,w,y),W&&Le(y,null,w,"beforeMount"),((X=T&&T.onVnodeMounted)||W||$)&&Ci(()=>{X&&Ee(X,w,y),$&&ee.enter(g),W&&Le(y,null,w,"mounted")},E)}return g.nextSibling},_=(g,y,w,E,N,O,x)=>{x=x||!!y.dynamicChildren;const T=y.children,D=T.length;for(let S=0;S{const{slotScopeIds:x}=y;x&&(N=N?N.concat(x):x);const T=o(g),D=_(i(g),y,T,w,E,N,O);return D&&rn(D)&&D.data==="]"?i(y.anchor=D):(Ue=!0,c(y.anchor=a("]"),T,D),D)},P=(g,y,w,E,N,O)=>{if(Ue=!0,y.el=null,O){const D=H(g);for(;;){const S=i(g);if(S&&S!==D)l(S);else break}}const x=i(g),T=o(g);return l(g),n(null,y,T,x,w,E,sn(T),N),x},H=(g,y="[",w="]")=>{let E=0;for(;g;)if(g=i(g),g&&rn(g)&&(g.data===y&&E++,g.data===w)){if(E===0)return i(g);E--}return g},U=(g,y,w)=>{const E=y.parentNode;E&&E.replaceChild(g,y);let N=w;for(;N;)N.vnode.el===y&&(N.vnode.el=N.subTree.el=g),N=N.parent},G=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,h]}const me=Ci;function ic(e){return oc(e,rc)}function oc(e,t){const n=zr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:p,setScopeId:_=Te,insertStaticContent:R}=e,P=(u,d,m,v=null,b=null,I=null,M=void 0,A=null,L=!!d.dynamicChildren)=>{if(u===d)return;u&&!Me(u,d)&&(v=Yt(u),Ie(u,b,I,!0),u=null),d.patchFlag===-2&&(L=!1,d.dynamicChildren=null);const{type:C,ref:F,shapeFlag:k}=d;switch(C){case Tt:H(u,d,m,v);break;case ge:U(u,d,m,v);break;case $t:u==null&&G(d,m,v,M);break;case ye:S(u,d,m,v,b,I,M,A,L);break;default:k&1?w(u,d,m,v,b,I,M,A,L):k&6?W(u,d,m,v,b,I,M,A,L):(k&64||k&128)&&C.process(u,d,m,v,b,I,M,A,L,dt)}F!=null&&b&&vn(F,u&&u.ref,I,d||u,!d)},H=(u,d,m,v)=>{if(u==null)s(d.el=l(d.children),m,v);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},U=(u,d,m,v)=>{u==null?s(d.el=c(d.children||""),m,v):d.el=u.el},G=(u,d,m,v)=>{[u.el,u.anchor]=R(u.children,d,m,v,u.el,u.anchor)},g=({el:u,anchor:d},m,v)=>{let b;for(;u&&u!==d;)b=p(u),s(u,m,v),u=b;s(d,m,v)},y=({el:u,anchor:d})=>{let m;for(;u&&u!==d;)m=p(u),r(u),u=m;r(d)},w=(u,d,m,v,b,I,M,A,L)=>{d.type==="svg"?M="svg":d.type==="math"&&(M="mathml"),u==null?E(d,m,v,b,I,M,A,L):x(u,d,b,I,M,A,L)},E=(u,d,m,v,b,I,M,A)=>{let L,C;const{props:F,shapeFlag:k,transition:B,dirs:K}=u;if(L=u.el=o(u.type,I,F&&F.is,F),k&8?f(L,u.children):k&16&&O(u.children,L,null,v,b,qn(u,I),M,A),K&&Le(u,null,v,"created"),N(L,u,u.scopeId,M,v),F){for(const Q in F)Q!=="value"&&!_t(Q)&&i(L,Q,null,F[Q],I,u.children,v,b,He);"value"in F&&i(L,"value",null,F.value,I),(C=F.onVnodeBeforeMount)&&Ee(C,v,u)}K&&Le(u,null,v,"beforeMount");const Y=ki(b,B);Y&&B.beforeEnter(L),s(L,d,m),((C=F&&F.onVnodeMounted)||Y||K)&&me(()=>{C&&Ee(C,v,u),Y&&B.enter(L),K&&Le(u,null,v,"mounted")},b)},N=(u,d,m,v,b)=>{if(m&&_(u,m),v)for(let I=0;I{for(let C=L;C{const A=d.el=u.el;let{patchFlag:L,dynamicChildren:C,dirs:F}=d;L|=u.patchFlag&16;const k=u.props||ne,B=d.props||ne;let K;if(m&&nt(m,!1),(K=B.onVnodeBeforeUpdate)&&Ee(K,m,d,u),F&&Le(d,u,m,"beforeUpdate"),m&&nt(m,!0),C?T(u.dynamicChildren,C,A,m,v,qn(d,b),I):M||j(u,d,A,null,m,v,qn(d,b),I,!1),L>0){if(L&16)D(A,d,k,B,m,v,b);else if(L&2&&k.class!==B.class&&i(A,"class",null,B.class,b),L&4&&i(A,"style",k.style,B.style,b),L&8){const Y=d.dynamicProps;for(let Q=0;Q{K&&Ee(K,m,d,u),F&&Le(d,u,m,"updated")},v)},T=(u,d,m,v,b,I,M)=>{for(let A=0;A{if(m!==v){if(m!==ne)for(const A in m)!_t(A)&&!(A in v)&&i(u,A,m[A],null,M,d.children,b,I,He);for(const A in v){if(_t(A))continue;const L=v[A],C=m[A];L!==C&&A!=="value"&&i(u,A,C,L,M,d.children,b,I,He)}"value"in v&&i(u,"value",m.value,v.value,M)}},S=(u,d,m,v,b,I,M,A,L)=>{const C=d.el=u?u.el:l(""),F=d.anchor=u?u.anchor:l("");let{patchFlag:k,dynamicChildren:B,slotScopeIds:K}=d;K&&(A=A?A.concat(K):K),u==null?(s(C,m,v),s(F,m,v),O(d.children||[],m,F,b,I,M,A,L)):k>0&&k&64&&B&&u.dynamicChildren?(T(u.dynamicChildren,B,m,b,I,M,A),(d.key!=null||b&&d===b.subTree)&&Di(u,d,!0)):j(u,d,m,F,b,I,M,A,L)},W=(u,d,m,v,b,I,M,A,L)=>{d.slotScopeIds=A,u==null?d.shapeFlag&512?b.ctx.activate(d,m,v,M,L):ee(d,m,v,b,I,M,L):se(u,d,L)},ee=(u,d,m,v,b,I,M)=>{const A=u.component=pc(u,v,b);if(Pn(u)&&(A.ctx.renderer=dt),gc(A),A.asyncDep){if(b&&b.registerDep(A,$),!u.el){const L=A.subTree=ce(ge);U(null,L,d,m)}}else $(A,u,d,m,b,I,M)},se=(u,d,m)=>{const v=d.component=u.component;if(yl(u,d,m))if(v.asyncDep&&!v.asyncResolved){X(v,d,m);return}else v.next=d,al(v.update),v.effect.dirty=!0,v.update();else d.el=u.el,v.vnode=d},$=(u,d,m,v,b,I,M)=>{const A=()=>{if(u.isMounted){let{next:F,bu:k,u:B,parent:K,vnode:Y}=u;{const ht=Vi(u);if(ht){F&&(F.el=Y.el,X(u,F,M)),ht.asyncDep.then(()=>{u.isUnmounted||A()});return}}let Q=F,te;nt(u,!1),F?(F.el=Y.el,X(u,F,M)):F=Y,k&&Dn(k),(te=F.props&&F.props.onVnodeBeforeUpdate)&&Ee(te,K,F,Y),nt(u,!0);const le=Un(u),Re=u.subTree;u.subTree=le,P(Re,le,h(Re.el),Yt(Re),u,b,I),F.el=le.el,Q===null&&Hs(u,le.el),B&&me(B,b),(te=F.props&&F.props.onVnodeUpdated)&&me(()=>Ee(te,K,F,Y),b)}else{let F;const{el:k,props:B}=d,{bm:K,m:Y,parent:Q}=u,te=Et(d);if(nt(u,!1),K&&Dn(K),!te&&(F=B&&B.onVnodeBeforeMount)&&Ee(F,Q,d),nt(u,!0),k&&kn){const le=()=>{u.subTree=Un(u),kn(k,u.subTree,u,b,null)};te?d.type.__asyncLoader().then(()=>!u.isUnmounted&&le()):le()}else{const le=u.subTree=Un(u);P(null,le,m,v,u,b,I),d.el=le.el}if(Y&&me(Y,b),!te&&(F=B&&B.onVnodeMounted)){const le=d;me(()=>Ee(F,Q,le),b)}(d.shapeFlag&256||Q&&Et(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&me(u.a,b),u.isMounted=!0,d=m=v=null}},L=u.effect=new As(A,Te,()=>$s(C),u.scope),C=u.update=()=>{L.dirty&&L.run()};C.id=u.uid,nt(u,!0),C()},X=(u,d,m)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,Ql(u,d.props,v,m),tc(u,d.children,m),at(),or(u),ft()},j=(u,d,m,v,b,I,M,A,L=!1)=>{const C=u&&u.children,F=u?u.shapeFlag:0,k=d.children,{patchFlag:B,shapeFlag:K}=d;if(B>0){if(B&128){Xt(C,k,m,v,b,I,M,A,L);return}else if(B&256){$e(C,k,m,v,b,I,M,A,L);return}}K&8?(F&16&&He(C,b,I),k!==C&&f(m,k)):F&16?K&16?Xt(C,k,m,v,b,I,M,A,L):He(C,b,I,!0):(F&8&&f(m,""),K&16&&O(k,m,v,b,I,M,A,L))},$e=(u,d,m,v,b,I,M,A,L)=>{u=u||mt,d=d||mt;const C=u.length,F=d.length,k=Math.min(C,F);let B;for(B=0;BF?He(u,b,I,!0,!1,k):O(d,m,v,b,I,M,A,L,k)},Xt=(u,d,m,v,b,I,M,A,L)=>{let C=0;const F=d.length;let k=u.length-1,B=F-1;for(;C<=k&&C<=B;){const K=u[C],Y=d[C]=L?Xe(d[C]):Ce(d[C]);if(Me(K,Y))P(K,Y,m,null,b,I,M,A,L);else break;C++}for(;C<=k&&C<=B;){const K=u[k],Y=d[B]=L?Xe(d[B]):Ce(d[B]);if(Me(K,Y))P(K,Y,m,null,b,I,M,A,L);else break;k--,B--}if(C>k){if(C<=B){const K=B+1,Y=KB)for(;C<=k;)Ie(u[C],b,I,!0),C++;else{const K=C,Y=C,Q=new Map;for(C=Y;C<=B;C++){const ve=d[C]=L?Xe(d[C]):Ce(d[C]);ve.key!=null&&Q.set(ve.key,C)}let te,le=0;const Re=B-Y+1;let ht=!1,Ys=0;const It=new Array(Re);for(C=0;C=Re){Ie(ve,b,I,!0);continue}let Oe;if(ve.key!=null)Oe=Q.get(ve.key);else for(te=Y;te<=B;te++)if(It[te-Y]===0&&Me(ve,d[te])){Oe=te;break}Oe===void 0?Ie(ve,b,I,!0):(It[Oe-Y]=C+1,Oe>=Ys?Ys=Oe:ht=!0,P(ve,d[Oe],m,null,b,I,M,A,L),le++)}const zs=ht?lc(It):mt;for(te=zs.length-1,C=Re-1;C>=0;C--){const ve=Y+C,Oe=d[ve],Js=ve+1{const{el:I,type:M,transition:A,children:L,shapeFlag:C}=u;if(C&6){tt(u.component.subTree,d,m,v);return}if(C&128){u.suspense.move(d,m,v);return}if(C&64){M.move(u,d,m,dt);return}if(M===ye){s(I,d,m);for(let k=0;kA.enter(I),b);else{const{leave:k,delayLeave:B,afterLeave:K}=A,Y=()=>s(I,d,m),Q=()=>{k(I,()=>{Y(),K&&K()})};B?B(I,Y,Q):Q()}else s(I,d,m)},Ie=(u,d,m,v=!1,b=!1)=>{const{type:I,props:M,ref:A,children:L,dynamicChildren:C,shapeFlag:F,patchFlag:k,dirs:B}=u;if(A!=null&&vn(A,null,m,u,!0),F&256){d.ctx.deactivate(u);return}const K=F&1&&B,Y=!Et(u);let Q;if(Y&&(Q=M&&M.onVnodeBeforeUnmount)&&Ee(Q,d,u),F&6)mo(u.component,m,v);else{if(F&128){u.suspense.unmount(m,v);return}K&&Le(u,null,d,"beforeUnmount"),F&64?u.type.remove(u,d,m,b,dt,v):C&&(I!==ye||k>0&&k&64)?He(C,d,m,!1,!0):(I===ye&&k&384||!b&&F&16)&&He(L,d,m),v&&Gs(u)}(Y&&(Q=M&&M.onVnodeUnmounted)||K)&&me(()=>{Q&&Ee(Q,d,u),K&&Le(u,null,d,"unmounted")},m)},Gs=u=>{const{type:d,el:m,anchor:v,transition:b}=u;if(d===ye){go(m,v);return}if(d===$t){y(u);return}const I=()=>{r(m),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:M,delayLeave:A}=b,L=()=>M(m,I);A?A(u.el,I,L):L()}else I()},go=(u,d)=>{let m;for(;u!==d;)m=p(u),r(u),u=m;r(d)},mo=(u,d,m)=>{const{bum:v,scope:b,update:I,subTree:M,um:A}=u;v&&Dn(v),b.stop(),I&&(I.active=!1,Ie(M,u,d,m)),A&&me(A,d),me(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},He=(u,d,m,v=!1,b=!1,I=0)=>{for(let M=I;Mu.shapeFlag&6?Yt(u.component.subTree):u.shapeFlag&128?u.suspense.next():p(u.anchor||u.el);let Bn=!1;const Xs=(u,d,m)=>{u==null?d._vnode&&Ie(d._vnode,null,null,!0):P(d._vnode||null,u,d,null,null,null,m),Bn||(Bn=!0,or(),mn(),Bn=!1),d._vnode=u},dt={p:P,um:Ie,m:tt,r:Gs,mt:ee,mc:O,pc:j,pbc:T,n:Yt,o:e};let jn,kn;return t&&([jn,kn]=t(dt)),{render:Xs,hydrate:jn,createApp:Yl(Xs,jn)}}function qn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function nt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ki(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Di(e,t,n=!1){const s=e.children,r=t.children;if(V(s)&&V(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Vi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Vi(t)}const cc=e=>e.__isTeleport,ye=Symbol.for("v-fgt"),Tt=Symbol.for("v-txt"),ge=Symbol.for("v-cmt"),$t=Symbol.for("v-stc"),Ht=[];let Se=null;function Vs(e=!1){Ht.push(Se=e?null:[])}function Ui(){Ht.pop(),Se=Ht[Ht.length-1]||null}let St=1;function vr(e){St+=e}function Ki(e){return e.dynamicChildren=St>0?Se||mt:null,Ui(),St>0&&Se&&Se.push(e),e}function ra(e,t,n,s,r,i){return Ki(Gi(e,t,n,s,r,i,!0))}function Wi(e,t,n,s,r){return Ki(ce(e,t,n,s,r,!0))}function Ut(e){return e?e.__v_isVNode===!0:!1}function Me(e,t){return e.type===t.type&&e.key===t.key}const Nn="__vInternal",qi=({key:e})=>e??null,fn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||he(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function Gi(e,t=null,n=null,s=0,r=null,i=e===ye?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qi(t),ref:t&&fn(t),scopeId:On,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:de};return l?(Us(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),St>0&&!o&&Se&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Se.push(c),c}const ce=uc;function uc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===wi)&&(e=ge),Ut(e)){const l=et(e,t,!0);return n&&Us(l,n),St>0&&!i&&Se&&(l.shapeFlag&6?Se[Se.indexOf(e)]=l:Se.push(l)),l.patchFlag|=-2,l}if(vc(e)&&(e=e.__vccOpts),t){t=ac(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=Ss(l)),Z(c)&&(fi(c)&&!V(c)&&(c=oe({},c)),t.style=Ts(c))}const o=re(e)?1:_l(e)?128:cc(e)?64:Z(e)?4:q(e)?2:0;return Gi(e,t,n,s,r,o,i,!0)}function ac(e){return e?fi(e)||Nn in e?oe({},e):e:null}function et(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?fc(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&qi(l),ref:t&&t.ref?n&&r?V(r)?r.concat(fn(t)):[r,fn(t)]:fn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ye?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&et(e.ssContent),ssFallback:e.ssFallback&&et(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Xi(e=" ",t=0){return ce(Tt,null,e,t)}function ia(e,t){const n=ce($t,null,e);return n.staticCount=t,n}function oa(e="",t=!1){return t?(Vs(),Wi(ge,null,e)):ce(ge,null,e)}function Ce(e){return e==null||typeof e=="boolean"?ce(ge):V(e)?ce(ye,null,e.slice()):typeof e=="object"?Xe(e):ce(Tt,null,String(e))}function Xe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:et(e)}function Us(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Us(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Nn in t)?t._ctx=de:r===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),s&64?(n=16,t=[Xi(t)]):n=8);e.children=t,e.shapeFlag|=n}function fc(...e){const t={};for(let n=0;nue||de;let bn,ms;{const e=zr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};bn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),ms=t("__VUE_SSR_SETTERS__",n=>Hn=n)}const Gt=e=>{const t=ue;return bn(e),e.scope.on(),()=>{e.scope.off(),bn(t)}},br=()=>{ue&&ue.scope.off(),bn(null)};function Yi(e){return e.vnode.shapeFlag&4}let Hn=!1;function gc(e,t=!1){t&&ms(t);const{props:n,children:s}=e.vnode,r=Yi(e);Jl(e,n,r,t),ec(e,s);const i=r?mc(e,t):void 0;return t&&ms(!1),i}function mc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pt(new Proxy(e.ctx,Dl));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?Ji(e):null,i=Gt(e);at();const o=Je(s,e,0,[e.props,r]);if(ft(),i(),qr(o)){if(o.then(br,br),t)return o.then(l=>{ys(e,l,t)}).catch(l=>{qt(l,e,0)});e.asyncDep=o}else ys(e,o,t)}else zi(e,t)}function ys(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=mi(t)),zi(e,n)}let wr;function zi(e,t,n){const s=e.type;if(!e.render){if(!t&&wr&&!s.render){const r=s.template||ks(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=wr(r,a)}}e.render=s.render||Te}{const r=Gt(e);at();try{Ul(e)}finally{ft(),r()}}}function yc(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return _e(e,"get","$attrs"),t[n]}}))}function Ji(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return yc(e)},slots:e.slots,emit:e.emit,expose:t}}function Ks(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(mi(Pt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ft)return Ft[n](e)},has(t,n){return n in t||n in Ft}}))}function _c(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function vc(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>Zo(e,t,Hn);function _s(e,t,n){const s=arguments.length;return s===2?Z(t)&&!V(t)?Ut(t)?ce(e,null,[t]):ce(e,t):ce(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Ut(n)&&(n=[n]),ce(e,t,n))}const bc="3.4.19";/** +* @vue/runtime-dom v3.4.19 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const wc="http://www.w3.org/2000/svg",Ec="http://www.w3.org/1998/Math/MathML",Ye=typeof document<"u"?document:null,Er=Ye&&Ye.createElement("template"),Cc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?Ye.createElementNS(wc,e):t==="mathml"?Ye.createElementNS(Ec,e):Ye.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>Ye.createTextNode(e),createComment:e=>Ye.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ye.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Er.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=Er.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ke="transition",Ot="animation",Kt=Symbol("_vtc"),Qi=(e,{slots:t})=>_s(Ol,xc(e),t);Qi.displayName="Transition";const Zi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Qi.props=oe({},Si,Zi);const st=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},Cr=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function xc(e){const t={};for(const S in e)S in Zi||(t[S]=e[S]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,R=Tc(r),P=R&&R[0],H=R&&R[1],{onBeforeEnter:U,onEnter:G,onEnterCancelled:g,onLeave:y,onLeaveCancelled:w,onBeforeAppear:E=U,onAppear:N=G,onAppearCancelled:O=g}=t,x=(S,W,ee)=>{rt(S,W?f:l),rt(S,W?a:o),ee&&ee()},T=(S,W)=>{S._isLeaving=!1,rt(S,h),rt(S,_),rt(S,p),W&&W()},D=S=>(W,ee)=>{const se=S?N:G,$=()=>x(W,S,ee);st(se,[W,$]),xr(()=>{rt(W,S?c:i),We(W,S?f:l),Cr(se)||Tr(W,s,P,$)})};return oe(t,{onBeforeEnter(S){st(U,[S]),We(S,i),We(S,o)},onBeforeAppear(S){st(E,[S]),We(S,c),We(S,a)},onEnter:D(!1),onAppear:D(!0),onLeave(S,W){S._isLeaving=!0;const ee=()=>T(S,W);We(S,h),Rc(),We(S,p),xr(()=>{S._isLeaving&&(rt(S,h),We(S,_),Cr(y)||Tr(S,s,H,ee))}),st(y,[S,ee])},onEnterCancelled(S){x(S,!1),st(g,[S])},onAppearCancelled(S){x(S,!0),st(O,[S])},onLeaveCancelled(S){T(S),st(w,[S])}})}function Tc(e){if(e==null)return null;if(Z(e))return[Gn(e.enter),Gn(e.leave)];{const t=Gn(e);return[t,t]}}function Gn(e){return Yr(e)}function We(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kt]||(e[Kt]=new Set)).add(t)}function rt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Kt];n&&(n.delete(t),n.size||(e[Kt]=void 0))}function xr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Sc=0;function Tr(e,t,n,s){const r=e._endId=++Sc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Ac(e,t);if(!o)return s();const a=o+"end";let f=0;const h=()=>{e.removeEventListener(a,p),i()},p=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[R]||"").split(", "),r=s(`${Ke}Delay`),i=s(`${Ke}Duration`),o=Sr(r,i),l=s(`${Ot}Delay`),c=s(`${Ot}Duration`),a=Sr(l,c);let f=null,h=0,p=0;t===Ke?o>0&&(f=Ke,h=o,p=i.length):t===Ot?a>0&&(f=Ot,h=a,p=c.length):(h=Math.max(o,a),f=h>0?o>a?Ke:Ot:null,p=f?f===Ke?i.length:c.length:0);const _=f===Ke&&/\b(transform|all)(,|$)/.test(s(`${Ke}Property`).toString());return{type:f,timeout:h,propCount:p,hasTransform:_}}function Sr(e,t){for(;e.lengthAr(n)+Ar(e[s])))}function Ar(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Rc(){return document.body.offsetHeight}function Ic(e,t,n){const s=e[Kt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Rr=Symbol("_vod"),Oc=Symbol(""),Lc=/(^|;)\s*display\s*:/;function Pc(e,t,n){const s=e.style,r=re(n),i=s.display;let o=!1;if(n&&!r){if(t&&!re(t))for(const l in t)n[l]==null&&vs(s,l,"");for(const l in n)l==="display"&&(o=!0),vs(s,l,n[l])}else if(r){if(t!==n){const l=s[Oc];l&&(n+=";"+l),s.cssText=n,o=Lc.test(n)}}else t&&e.removeAttribute("style");Rr in e&&(e[Rr]=o?s.display:"",s.display=i)}const Ir=/\s*!important$/;function vs(e,t,n){if(V(n))n.forEach(s=>vs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Mc(e,t);Ir.test(n)?e.setProperty(ut(s),n.replace(Ir,""),"important"):e[s]=n}}const Or=["Webkit","Moz","ms"],Xn={};function Mc(e,t){const n=Xn[t];if(n)return n;let s=Fe(t);if(s!=="filter"&&s in e)return Xn[t]=s;s=xn(s);for(let r=0;rYn||(kc.then(()=>Yn=0),Yn=Date.now());function Vc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ae(Uc(s,n.value),t,5,[s])};return n.value=e,n.attached=Dc(),n}function Uc(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Fr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Kc=(e,t,n,s,r,i,o,l,c)=>{const a=r==="svg";t==="class"?Ic(e,s,a):t==="style"?Pc(e,n,s):Wt(t)?Es(t)||Bc(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Wc(e,t,s,a))?Nc(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Fc(e,t,s,a))};function Wc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Fr(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Fr(t)&&re(n)?!1:t in e}const qc=["ctrl","shift","alt","meta"],Gc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>qc.some(n=>e[`${n}Key`]&&!t.includes(n))},la=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=ut(r.key);if(t.some(o=>o===i||Xc[o]===i))return e(r)})},Yc=oe({patchProp:Kc},Cc);let zn,Nr=!1;function zc(){return zn=Nr?zn:ic(Yc),Nr=!0,zn}const ua=(...e)=>{const t=zc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Qc(s);if(r)return n(r,!0,Jc(r))},t};function Jc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Qc(e){return re(e)?document.querySelector(e):e}const aa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Zc=window.__VP_SITE_DATA__;function Ws(e){return Zr()?(Lo(e),!0):!1}function Qe(e){return typeof e=="function"?e():gi(e)}const eo=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const eu=Object.prototype.toString,tu=e=>eu.call(e)==="[object Object]",Bt=()=>{},bs=nu();function nu(){var e,t;return eo&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function su(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const to=e=>e();function ru(e=to){const t=fe(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:An(t),pause:n,resume:s,eventFilter:r}}function iu(e){return e||$n()}function no(...e){if(e.length!==1)return ol(...e);const t=e[0];return typeof t=="function"?An(sl(()=>({get:t,set:Bt}))):fe(t)}function ou(e,t,n={}){const{eventFilter:s=to,...r}=n;return je(e,su(s,t),r)}function lu(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=ru(s);return{stop:ou(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function qs(e,t=!0,n){iu()?Rt(e,n):t?e():Rn(e)}function gt(e){var t;const n=Qe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ne=eo?window:void 0;function ke(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=Ne):[t,n,s,r]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(f=>f()),i.length=0},l=(f,h,p,_)=>(f.addEventListener(h,p,_),()=>f.removeEventListener(h,p,_)),c=je(()=>[gt(t),Qe(r)],([f,h])=>{if(o(),!f)return;const p=tu(h)?{...h}:h;i.push(...n.flatMap(_=>s.map(R=>l(f,_,R,p))))},{immediate:!0,flush:"post"}),a=()=>{c(),o()};return Ws(a),a}let $r=!1;function fa(e,t,n={}){const{window:s=Ne,ignore:r=[],capture:i=!0,detectIframe:o=!1}=n;if(!s)return Bt;bs&&!$r&&($r=!0,Array.from(s.document.body.children).forEach(p=>p.addEventListener("click",Bt)),s.document.documentElement.addEventListener("click",Bt));let l=!0;const c=p=>r.some(_=>{if(typeof _=="string")return Array.from(s.document.querySelectorAll(_)).some(R=>R===p.target||p.composedPath().includes(R));{const R=gt(_);return R&&(p.target===R||p.composedPath().includes(R))}}),f=[ke(s,"click",p=>{const _=gt(e);if(!(!_||_===p.target||p.composedPath().includes(_))){if(p.detail===0&&(l=!c(p)),!l){l=!0;return}t(p)}},{passive:!0,capture:i}),ke(s,"pointerdown",p=>{const _=gt(e);l=!c(p)&&!!(_&&!p.composedPath().includes(_))},{passive:!0}),o&&ke(s,"blur",p=>{setTimeout(()=>{var _;const R=gt(e);((_=s.document.activeElement)==null?void 0:_.tagName)==="IFRAME"&&!(R!=null&&R.contains(s.document.activeElement))&&t(p)},0)})].filter(Boolean);return()=>f.forEach(p=>p())}function cu(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function da(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=Ne,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=cu(t);return ke(r,i,f=>{f.repeat&&Qe(l)||c(f)&&n(f)},o)}function uu(){const e=fe(!1),t=$n();return t&&Rt(()=>{e.value=!0},t),e}function au(e){const t=uu();return ie(()=>(t.value,!!e()))}function so(e,t={}){const{window:n=Ne}=t,s=au(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=fe(!1),o=a=>{i.value=a.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=xi(()=>{s.value&&(l(),r=n.matchMedia(Qe(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return Ws(()=>{c(),l(),r=void 0}),i}const on=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ln="__vueuse_ssr_handlers__",fu=du();function du(){return ln in on||(on[ln]=on[ln]||{}),on[ln]}function ro(e,t){return fu[e]||t}function hu(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const pu={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Hr="vueuse-storage";function gu(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Ne,eventFilter:p,onError:_=x=>{console.error(x)},initOnMounted:R}=s,P=(f?hi:fe)(typeof t=="function"?t():t);if(!n)try{n=ro("getDefaultStorage",()=>{var x;return(x=Ne)==null?void 0:x.localStorage})()}catch(x){_(x)}if(!n)return P;const H=Qe(t),U=hu(H),G=(r=s.serializer)!=null?r:pu[U],{pause:g,resume:y}=lu(P,()=>w(P.value),{flush:i,deep:o,eventFilter:p});return h&&l&&qs(()=>{ke(h,"storage",O),ke(h,Hr,N),R&&O()}),R||O(),P;function w(x){try{const T=n.getItem(e),D=S=>{h&&h.dispatchEvent(new CustomEvent(Hr,{detail:{key:e,oldValue:T,newValue:S,storageArea:n}}))};if(x==null)D(null),n.removeItem(e);else{const S=G.write(x);T!==S&&(n.setItem(e,S),D(S))}}catch(T){_(T)}}function E(x){const T=x?x.newValue:n.getItem(e);if(T==null)return c&&H!=null&&n.setItem(e,G.write(H)),H;if(!x&&a){const D=G.read(T);return typeof a=="function"?a(D,H):U==="object"&&!Array.isArray(D)?{...H,...D}:D}else return typeof T!="string"?T:G.read(T)}function N(x){O(x.detail)}function O(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){P.value=H;return}if(!(x&&x.key!==e)){g();try{(x==null?void 0:x.newValue)!==G.write(P.value)&&(P.value=E(x))}catch(T){_(T)}finally{x?Rn(y):y()}}}}}function io(e){return so("(prefers-color-scheme: dark)",e)}function mu(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=Ne,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},p=io({window:r}),_=ie(()=>p.value?"dark":"light"),R=c||(o==null?no(s):gu(o,s,i,{window:r,listenToStorageChanges:l})),P=ie(()=>R.value==="auto"?_.value:R.value),H=ro("updateHTMLAttrs",(y,w,E)=>{const N=typeof y=="string"?r==null?void 0:r.document.querySelector(y):gt(y);if(!N)return;let O;if(f&&(O=r.document.createElement("style"),O.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),r.document.head.appendChild(O)),w==="class"){const x=E.split(/\s/g);Object.values(h).flatMap(T=>(T||"").split(/\s/g)).filter(Boolean).forEach(T=>{x.includes(T)?N.classList.add(T):N.classList.remove(T)})}else N.setAttribute(w,E);f&&(r.getComputedStyle(O).opacity,document.head.removeChild(O))});function U(y){var w;H(t,n,(w=h[y])!=null?w:y)}function G(y){e.onChanged?e.onChanged(y,U):U(y)}je(P,G,{flush:"post",immediate:!0}),qs(()=>G(P.value));const g=ie({get(){return a?R.value:P.value},set(y){R.value=y}});try{return Object.assign(g,{store:R,system:_,state:P})}catch{return g}}function yu(e={}){const{valueDark:t="dark",valueLight:n="",window:s=Ne}=e,r=mu({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>r.system?r.system.value:io({window:s}).value?"dark":"light");return ie({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function Jn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function oo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const cn=new WeakMap;function ha(e,t=!1){const n=fe(t);let s=null,r;je(no(e),l=>{const c=Jn(Qe(l));if(c){const a=c;cn.get(a)||cn.set(a,r),n.value&&(a.style.overflow="hidden")}},{immediate:!0});const i=()=>{const l=Jn(Qe(e));!l||n.value||(bs&&(s=ke(l,"touchmove",c=>{_u(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{var l;const c=Jn(Qe(e));!c||!n.value||(bs&&(s==null||s()),c.style.overflow=(l=cn.get(c))!=null?l:"",cn.delete(c),n.value=!1)};return Ws(o),ie({get(){return n.value},set(l){l?i():o()}})}function pa(e={}){const{window:t=Ne,behavior:n="auto"}=e;if(!t)return{x:fe(0),y:fe(0)};const s=fe(t.scrollX),r=fe(t.scrollY),i=ie({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return ke(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function ga(e={}){const{window:t=Ne,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0}=e,o=fe(n),l=fe(s),c=()=>{t&&(i?(o.value=t.innerWidth,l.value=t.innerHeight):(o.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),qs(c),ke("resize",c,{passive:!0}),r){const a=so("(orientation: portrait)");je(a,()=>c())}return{width:o,height:l}}var Qn={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},Zn={};const lo=/^(?:[a-z]+:|\/\/)/i,vu="vitepress-theme-appearance",bu=/#.*$/,wu=/[?#].*$/,Eu=/(?:(^|\/)index)?\.(?:md|html)$/,xe=typeof document<"u",co={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Cu(e,t,n=!1){if(t===void 0)return!1;if(e=Br(`/${e}`),n)return new RegExp(t).test(e);if(Br(t)!==e)return!1;const s=t.match(bu);return s?(xe?location.hash:"")===s[0]:!0}function Br(e){return decodeURI(e).replace(wu,"").replace(Eu,"$1")}function xu(e){return lo.test(e)}function Tu(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(f=>f!=="root"&&!xu(f)&&Cu(t,`/${f}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:ao(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function uo(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Su(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function Su(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Au(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function ao(e,t){return[...e.filter(n=>!Au(t,n)),...t]}const Ru=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Iu=/^[a-z]:/i;function jr(e){const t=Iu.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ru,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const es=new Set;function Ou(e){if(es.size===0){const n=typeof process=="object"&&(Zn==null?void 0:Zn.VITE_EXTRA_EXTENSIONS)||(Qn==null?void 0:Qn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>es.add(s))}const t=e.split(".").pop();return t==null||!es.has(t.toLowerCase())}const Lu=Symbol(),ct=hi(Zc);function ma(e){const t=ie(()=>Tu(ct.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?fe(!0):n?yu({storageKey:vu,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):fe(!1);return{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>uo(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:s}}function Pu(){const e=Ct(Lu);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Mu(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function kr(e){return lo.test(e)||!e.startsWith("/")?e:Mu(ct.value.base,e)}function Fu(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),xe){const n="/";t=jr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${jr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let dn=[];function ya(e){dn.push(e),Fn(()=>{dn=dn.filter(t=>t!==e)})}function Nu(){let e=ct.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Dr(e,n);else if(Array.isArray(e))for(const s of e){const r=Dr(s,n);if(r){t=r;break}}return t}function Dr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const $u=Symbol(),fo="http://a.com",Hu=()=>({path:"/",component:null,data:co});function _a(e,t){const n=Sn(Hu()),s={route:n,go:r};async function r(l=xe?location.href:"/"){var c,a;l=wn(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(Ur(l),await o(l),await((a=s.onAfterRouteChanged)==null?void 0:a.call(s,l)))}let i=null;async function o(l,c=0,a=!1){var p;if(await((p=s.onBeforePageLoad)==null?void 0:p.call(s,l))===!1)return;const f=new URL(l,fo),h=i=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:R,__pageData:P}=_;if(!R)throw new Error(`Invalid route component: ${R}`);n.path=xe?h:kr(h),n.component=Pt(R),n.data=Pt(P),xe&&Rn(()=>{let H=ct.value.base+P.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ct.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==f.pathname&&(f.pathname=H,l=H+f.search+f.hash,history.replaceState(null,"",l)),f.hash&&!c){let U=null;try{U=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(G){console.warn(G)}if(U){Vr(U,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const R=await fetch(ct.value.base+"hashmap.json");window.__VP_HASH_MAP__=await R.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=xe?h:kr(h),n.component=t?Pt(t):null,n.data=co)}}return xe&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:p,pathname:_,hash:R,search:P}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=window.location;!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&p===H.origin&&Ou(_)&&(l.preventDefault(),_===H.pathname&&P===H.search?(R!==H.hash&&(history.pushState(null,"",R),window.dispatchEvent(new Event("hashchange"))),R?Vr(a,R,a.classList.contains("header-anchor")):(Ur(h),window.scrollTo(0,0))):r(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;await o(wn(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Bu(){const e=Ct($u);if(!e)throw new Error("useRouter() is called without provider.");return e}function ho(){return Bu().route}function Vr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Nu()+i;requestAnimationFrame(r)}}function Ur(e){xe&&wn(e)!==wn(location.href)&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}function wn(e){const t=new URL(e,fo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ct.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const ts=()=>dn.forEach(e=>e()),va=Ii({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=ho(),{site:n}=Pu();return()=>_s(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?_s(t.component,{onVnodeMounted:ts,onVnodeUpdated:ts,onVnodeUnmounted:ts}):"404 Page Not Found"])}}),ju="modulepreload",ku=function(e){return"/"+e},Kr={},ba=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link");r=Promise.all(n.map(o=>{if(o=ku(o),o in Kr)return;Kr[o]=!0;const l=o.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!s)for(let h=i.length-1;h>=0;h--){const p=i[h];if(p.href===o&&(!l||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const f=document.createElement("link");if(f.rel=l?"stylesheet":ju,l||(f.as="script",f.crossOrigin=""),f.href=o,document.head.appendChild(f),l)return new Promise((h,p)=>{f.addEventListener("load",h),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${o}`)))})}))}return r.then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},wa=Ii({setup(e,{slots:t}){const n=fe(!1);return Rt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Ea(){xe&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(a=>a.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Ca(){if(xe){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";o&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Du(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Du(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function xa(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=ns(l);for(const a of document.head.children)if(a.isEqualNode(c)){s.push(a);return}});return}const o=i.map(ns);s.forEach((l,c)=>{const a=o.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete o[a]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};xi(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],a=uo(o,i);a!==document.title&&(document.title=a);const f=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ns(["meta",{name:"description",content:f}]),r(ao(o.head,Uu(c)))})}function ns([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function Vu(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Uu(e){return e.filter(t=>!Vu(t))}const ss=new Set,po=()=>document.createElement("link"),Ku=e=>{const t=po();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Wu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let un;const qu=xe&&(un=po())&&un.relList&&un.relList.supports&&un.relList.supports("prefetch")?Ku:Wu;function Ta(){if(!xe||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!ss.has(c)){ss.add(c);const a=Fu(c);a&&qu(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):ss.add(l))})})};Rt(s);const r=ho();je(()=>r.path,s),Fn(()=>{n&&n.disconnect()})}export{ca as $,Fn as A,Zu as B,$l as C,Nu as D,zu as E,ye as F,ea as G,hi as H,ya as I,ce as J,Ju as K,lo as L,ho as M,fc as N,Ct as O,ga as P,Ts as Q,fa as R,da as S,Qi as T,Rn as U,pa as V,An as W,ha as X,zl as Y,na as Z,aa as _,Xi as a,la as a0,sa as a1,ia as a2,Qu as a3,ba as a4,J as a5,xa as a6,$u as a7,ma as a8,Lu as a9,va as aa,wa as ab,ct as ac,ua as ad,_a as ae,Fu as af,Ta as ag,Ca as ah,Ea as ai,_s as aj,Wi as b,ra as c,Ii as d,oa as e,Ou as f,kr as g,fe as h,xu as i,xe as j,ie as k,Rt as l,Gi as m,Ss as n,Vs as o,gi as p,Xu as q,ta as r,Yu as s,Gu as t,Pu as u,Cu as v,hl as w,so as x,je as y,xi as z}; diff --git a/docs/assets/chunks/ganttDiagram-5c869e3b.CffrYaRJ.js b/docs/assets/chunks/ganttDiagram-5c869e3b.CffrYaRJ.js new file mode 100644 index 0000000..e5ec0bf --- /dev/null +++ b/docs/assets/chunks/ganttDiagram-5c869e3b.CffrYaRJ.js @@ -0,0 +1,257 @@ +import{au as Je,av as $e,aw as Ke,ax as tn,ay as Un,az as ie,aA as Fn,aB as nt,c as Dt,s as Ln,g as An,v as En,x as In,b as Wn,a as On,z as Hn,m as Nn,l as $t,h as Xt,i as Vn,j as zn,y as Pn}from"../app.Dv4846sG.js";import{b as Rn,t as Ee,c as Bn,a as Zn,l as Xn}from"./linear.xw6n-5RF.js";import{i as qn}from"./init.Gi6I4Gst.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";function Gn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Qn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function jn(t){return t}var Qt=1,ae=2,ke=3,qt=4,Ie=1e-6;function Jn(t){return"translate("+t+",0)"}function $n(t){return"translate(0,"+t+")"}function Kn(t){return e=>+t(e)}function tr(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function er(){return!this.__axis}function en(t,e){var n=[],r=null,i=null,a=6,s=6,m=3,y=typeof window<"u"&&window.devicePixelRatio>1?0:.5,T=t===Qt||t===qt?-1:1,v=t===qt||t===ae?"x":"y",U=t===Qt||t===ke?Jn:$n;function b(k){var E=r??(e.ticks?e.ticks.apply(e,n):e.domain()),D=i??(e.tickFormat?e.tickFormat.apply(e,n):jn),R=Math.max(a,0)+m,X=e.range(),tt=+X[0]+y,B=+X[X.length-1]+y,Z=(e.bandwidth?tr:Kn)(e.copy(),y),J=k.selection?k.selection():k,x=J.selectAll(".domain").data([null]),V=J.selectAll(".tick").data(E,e).order(),w=V.exit(),F=V.enter().append("g").attr("class","tick"),Y=V.select("line"),C=V.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),V=V.merge(F),Y=Y.merge(F.append("line").attr("stroke","currentColor").attr(v+"2",T*a)),C=C.merge(F.append("text").attr("fill","currentColor").attr(v,T*R).attr("dy",t===Qt?"0em":t===ke?"0.71em":"0.32em")),k!==J&&(x=x.transition(k),V=V.transition(k),Y=Y.transition(k),C=C.transition(k),w=w.transition(k).attr("opacity",Ie).attr("transform",function(c){return isFinite(c=Z(c))?U(c+y):this.getAttribute("transform")}),F.attr("opacity",Ie).attr("transform",function(c){var d=this.parentNode.__axis;return U((d&&isFinite(d=d(c))?d:Z(c))+y)})),w.remove(),x.attr("d",t===qt||t===ae?s?"M"+T*s+","+tt+"H"+y+"V"+B+"H"+T*s:"M"+y+","+tt+"V"+B:s?"M"+tt+","+T*s+"V"+y+"H"+B+"V"+T*s:"M"+tt+","+y+"H"+B),V.attr("opacity",1).attr("transform",function(c){return U(Z(c)+y)}),Y.attr(v+"2",T*a),C.attr(v,T*R).text(D),J.filter(er).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===ae?"start":t===qt?"end":"middle"),J.each(function(){this.__axis=Z})}return b.scale=function(k){return arguments.length?(e=k,b):e},b.ticks=function(){return n=Array.from(arguments),b},b.tickArguments=function(k){return arguments.length?(n=k==null?[]:Array.from(k),b):n.slice()},b.tickValues=function(k){return arguments.length?(r=k==null?null:Array.from(k),b):r&&r.slice()},b.tickFormat=function(k){return arguments.length?(i=k,b):i},b.tickSize=function(k){return arguments.length?(a=s=+k,b):a},b.tickSizeInner=function(k){return arguments.length?(a=+k,b):a},b.tickSizeOuter=function(k){return arguments.length?(s=+k,b):s},b.tickPadding=function(k){return arguments.length?(m=+k,b):m},b.offset=function(k){return arguments.length?(y=+k,b):y},b}function nr(t){return en(Qt,t)}function rr(t){return en(ke,t)}const ir=Math.PI/180,ar=180/Math.PI,Kt=18,nn=.96422,rn=1,an=.82521,sn=4/29,Mt=6/29,on=3*Mt*Mt,sr=Mt*Mt*Mt;function cn(t){if(t instanceof ot)return new ot(t.l,t.a,t.b,t.opacity);if(t instanceof ut)return ln(t);t instanceof Ke||(t=Un(t));var e=le(t.r),n=le(t.g),r=le(t.b),i=se((.2225045*e+.7168786*n+.0606169*r)/rn),a,s;return e===n&&n===r?a=s=i:(a=se((.4360747*e+.3850649*n+.1430804*r)/nn),s=se((.0139322*e+.0971045*n+.7141733*r)/an)),new ot(116*i-16,500*(a-i),200*(i-s),t.opacity)}function or(t,e,n,r){return arguments.length===1?cn(t):new ot(t,e,n,r??1)}function ot(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Je(ot,or,$e(tn,{brighter(t){return new ot(this.l+Kt*(t??1),this.a,this.b,this.opacity)},darker(t){return new ot(this.l-Kt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=nn*oe(e),t=rn*oe(t),n=an*oe(n),new Ke(ce(3.1338561*e-1.6168667*t-.4906146*n),ce(-.9787684*e+1.9161415*t+.033454*n),ce(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function se(t){return t>sr?Math.pow(t,1/3):t/on+sn}function oe(t){return t>Mt?t*t*t:on*(t-sn)}function ce(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function le(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function cr(t){if(t instanceof ut)return new ut(t.h,t.c,t.l,t.opacity);if(t instanceof ot||(t=cn(t)),t.a===0&&t.b===0)return new ut(NaN,0(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{const s=i(a),m=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,m)=>{const y=[];if(a=i.ceil(a),m=m==null?1:Math.floor(m),!(a0))return y;let T;do y.push(T=new Date(+a)),e(a,m),t(a);while(Tj(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,m)=>{if(s>=s)if(m<0)for(;++m<=0;)for(;e(s,-1),!a(s););else for(;--m>=0;)for(;e(s,1),!a(s););}),n&&(i.count=(a,s)=>(ue.setTime(+a),fe.setTime(+s),t(ue),t(fe),Math.floor(n(ue,fe))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(r?s=>r(s)%a===0:s=>i.count(0,s)%a===0):i)),i}const _t=j(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);_t.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?j(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):_t);_t.range;const ft=1e3,it=ft*60,ht=it*60,dt=ht*24,we=dt*7,We=dt*30,he=dt*365,gt=j(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ft)},(t,e)=>(e-t)/ft,t=>t.getUTCSeconds());gt.range;const Ot=j(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft)},(t,e)=>{t.setTime(+t+e*it)},(t,e)=>(e-t)/it,t=>t.getMinutes());Ot.range;const hr=j(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*it)},(t,e)=>(e-t)/it,t=>t.getUTCMinutes());hr.range;const Ht=j(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft-t.getMinutes()*it)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getHours());Ht.range;const dr=j(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getUTCHours());dr.range;const Tt=j(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*it)/dt,t=>t.getDate()-1);Tt.range;const Ce=j(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>t.getUTCDate()-1);Ce.range;const mr=j(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>Math.floor(t/dt));mr.range;function xt(t){return j(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*it)/we)}const zt=xt(0),Nt=xt(1),un=xt(2),fn=xt(3),vt=xt(4),hn=xt(5),dn=xt(6);zt.range;Nt.range;un.range;fn.range;vt.range;hn.range;dn.range;function wt(t){return j(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/we)}const mn=wt(0),te=wt(1),gr=wt(2),yr=wt(3),Yt=wt(4),kr=wt(5),pr=wt(6);mn.range;te.range;gr.range;yr.range;Yt.range;kr.range;pr.range;const Vt=j(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Vt.range;const Tr=j(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());Tr.range;const mt=j(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());mt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:j(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});mt.range;const bt=j(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());bt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:j(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});bt.range;function vr(t,e,n,r,i,a){const s=[[gt,1,ft],[gt,5,5*ft],[gt,15,15*ft],[gt,30,30*ft],[a,1,it],[a,5,5*it],[a,15,15*it],[a,30,30*it],[i,1,ht],[i,3,3*ht],[i,6,6*ht],[i,12,12*ht],[r,1,dt],[r,2,2*dt],[n,1,we],[e,1,We],[e,3,3*We],[t,1,he]];function m(T,v,U){const b=vR).right(s,b);if(k===s.length)return t.every(Ee(T/he,v/he,U));if(k===0)return _t.every(Math.max(Ee(T,v,U),1));const[E,D]=s[b/s[k-1][2]53)return null;"w"in l||(l.w=1),"Z"in l?(N=me(At(l.y,0,1)),G=N.getUTCDay(),N=G>4||G===0?te.ceil(N):te(N),N=Ce.offset(N,(l.V-1)*7),l.y=N.getUTCFullYear(),l.m=N.getUTCMonth(),l.d=N.getUTCDate()+(l.w+6)%7):(N=de(At(l.y,0,1)),G=N.getDay(),N=G>4||G===0?Nt.ceil(N):Nt(N),N=Tt.offset(N,(l.V-1)*7),l.y=N.getFullYear(),l.m=N.getMonth(),l.d=N.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),G="Z"in l?me(At(l.y,0,1)).getUTCDay():de(At(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(G+5)%7:l.w+l.U*7-(G+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,me(l)):de(l)}}function w(p,L,M,l){for(var z=0,N=L.length,G=M.length,$,et;z=G)return-1;if($=L.charCodeAt(z++),$===37){if($=L.charAt(z++),et=J[$ in Oe?L.charAt(z++):$],!et||(l=et(p,M,l))<0)return-1}else if($!=M.charCodeAt(l++))return-1}return l}function F(p,L,M){var l=T.exec(L.slice(M));return l?(p.p=v.get(l[0].toLowerCase()),M+l[0].length):-1}function Y(p,L,M){var l=k.exec(L.slice(M));return l?(p.w=E.get(l[0].toLowerCase()),M+l[0].length):-1}function C(p,L,M){var l=U.exec(L.slice(M));return l?(p.w=b.get(l[0].toLowerCase()),M+l[0].length):-1}function c(p,L,M){var l=X.exec(L.slice(M));return l?(p.m=tt.get(l[0].toLowerCase()),M+l[0].length):-1}function d(p,L,M){var l=D.exec(L.slice(M));return l?(p.m=R.get(l[0].toLowerCase()),M+l[0].length):-1}function g(p,L,M){return w(p,e,L,M)}function u(p,L,M){return w(p,n,L,M)}function S(p,L,M){return w(p,r,L,M)}function o(p){return s[p.getDay()]}function q(p){return a[p.getDay()]}function h(p){return y[p.getMonth()]}function f(p){return m[p.getMonth()]}function _(p){return i[+(p.getHours()>=12)]}function P(p){return 1+~~(p.getMonth()/3)}function I(p){return s[p.getUTCDay()]}function O(p){return a[p.getUTCDay()]}function A(p){return y[p.getUTCMonth()]}function H(p){return m[p.getUTCMonth()]}function kt(p){return i[+(p.getUTCHours()>=12)]}function pt(p){return 1+~~(p.getUTCMonth()/3)}return{format:function(p){var L=x(p+="",B);return L.toString=function(){return p},L},parse:function(p){var L=V(p+="",!1);return L.toString=function(){return p},L},utcFormat:function(p){var L=x(p+="",Z);return L.toString=function(){return p},L},utcParse:function(p){var L=V(p+="",!0);return L.toString=function(){return p},L}}}var Oe={"-":"",_:" ",0:"0"},K=/^\s*\d+/,Cr=/^%/,Dr=/[\\^$*+?|[\]().{}]/g;function W(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",a=i.length;return r+(a[e.toLowerCase(),n]))}function Sr(t,e,n){var r=K.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function _r(t,e,n){var r=K.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Yr(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Ur(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Fr(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function He(t,e,n){var r=K.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ne(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Lr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Ar(t,e,n){var r=K.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Er(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ve(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Ir(t,e,n){var r=K.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function ze(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Wr(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=K.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Hr(t,e,n){var r=K.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Nr(t,e,n){var r=K.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Vr(t,e,n){var r=Cr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function zr(t,e,n){var r=K.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Pr(t,e,n){var r=K.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Pe(t,e){return W(t.getDate(),e,2)}function Rr(t,e){return W(t.getHours(),e,2)}function Br(t,e){return W(t.getHours()%12||12,e,2)}function Zr(t,e){return W(1+Tt.count(mt(t),t),e,3)}function gn(t,e){return W(t.getMilliseconds(),e,3)}function Xr(t,e){return gn(t,e)+"000"}function qr(t,e){return W(t.getMonth()+1,e,2)}function Gr(t,e){return W(t.getMinutes(),e,2)}function Qr(t,e){return W(t.getSeconds(),e,2)}function jr(t){var e=t.getDay();return e===0?7:e}function Jr(t,e){return W(zt.count(mt(t)-1,t),e,2)}function yn(t){var e=t.getDay();return e>=4||e===0?vt(t):vt.ceil(t)}function $r(t,e){return t=yn(t),W(vt.count(mt(t),t)+(mt(t).getDay()===4),e,2)}function Kr(t){return t.getDay()}function ti(t,e){return W(Nt.count(mt(t)-1,t),e,2)}function ei(t,e){return W(t.getFullYear()%100,e,2)}function ni(t,e){return t=yn(t),W(t.getFullYear()%100,e,2)}function ri(t,e){return W(t.getFullYear()%1e4,e,4)}function ii(t,e){var n=t.getDay();return t=n>=4||n===0?vt(t):vt.ceil(t),W(t.getFullYear()%1e4,e,4)}function ai(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+W(e/60|0,"0",2)+W(e%60,"0",2)}function Re(t,e){return W(t.getUTCDate(),e,2)}function si(t,e){return W(t.getUTCHours(),e,2)}function oi(t,e){return W(t.getUTCHours()%12||12,e,2)}function ci(t,e){return W(1+Ce.count(bt(t),t),e,3)}function kn(t,e){return W(t.getUTCMilliseconds(),e,3)}function li(t,e){return kn(t,e)+"000"}function ui(t,e){return W(t.getUTCMonth()+1,e,2)}function fi(t,e){return W(t.getUTCMinutes(),e,2)}function hi(t,e){return W(t.getUTCSeconds(),e,2)}function di(t){var e=t.getUTCDay();return e===0?7:e}function mi(t,e){return W(mn.count(bt(t)-1,t),e,2)}function pn(t){var e=t.getUTCDay();return e>=4||e===0?Yt(t):Yt.ceil(t)}function gi(t,e){return t=pn(t),W(Yt.count(bt(t),t)+(bt(t).getUTCDay()===4),e,2)}function yi(t){return t.getUTCDay()}function ki(t,e){return W(te.count(bt(t)-1,t),e,2)}function pi(t,e){return W(t.getUTCFullYear()%100,e,2)}function Ti(t,e){return t=pn(t),W(t.getUTCFullYear()%100,e,2)}function vi(t,e){return W(t.getUTCFullYear()%1e4,e,4)}function bi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Yt(t):Yt.ceil(t),W(t.getUTCFullYear()%1e4,e,4)}function xi(){return"+0000"}function Be(){return"%"}function Ze(t){return+t}function Xe(t){return Math.floor(+t/1e3)}var Ct,ee;wi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function wi(t){return Ct=wr(t),ee=Ct.format,Ct.parse,Ct.utcFormat,Ct.utcParse,Ct}function Ci(t){return new Date(t)}function Di(t){return t instanceof Date?+t:+new Date(+t)}function Tn(t,e,n,r,i,a,s,m,y,T){var v=Bn(),U=v.invert,b=v.domain,k=T(".%L"),E=T(":%S"),D=T("%I:%M"),R=T("%I %p"),X=T("%a %d"),tt=T("%b %d"),B=T("%B"),Z=T("%Y");function J(x){return(y(x)4&&(U+=7),v.add(U,ge)},i=function(y){return y.add(4-y.isoWeekday(),ge)},a=e.prototype;a.isoWeekYear=function(){var m=i(this);return m.year()},a.isoWeek=function(m){if(!this.$utils().u(m))return this.add((m-this.isoWeek())*7,ge);var y=i(this),T=r(this.isoWeekYear(),this.$u);return y.diff(T,Si)+1},a.isoWeekday=function(m){return this.$utils().u(m)?this.day()||7:this.day(this.day()%7?m:m-7)};var s=a.startOf;a.startOf=function(m,y){var T=this.$utils(),v=T.u(y)?!0:y,U=T.p(m);return U===Ui?v?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(m,y)}};var Li=function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(n,r,i){return r||i.slice(1)})},Ai={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Ei=function(e,n){return e.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(r,i,a){var s=a&&a.toUpperCase();return i||n[a]||Ai[a]||Li(n[s])})},Ii=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,Wi=/\d/,Gt=/\d\d/,Oi=/\d{3}/,Hi=/\d{4}/,at=/\d\d?/,Ni=/[+-]?\d+/,Vi=/[+-]\d\d:?(\d\d)?|Z/,Wt=/\d*[^-_:/,()\s\d]+/,yt={},vn=function(e){return e=+e,e+(e>68?1900:2e3)};function zi(t){if(!t||t==="Z")return 0;var e=t.match(/([+-]|\d\d)/g),n=+(e[1]*60)+(+e[2]||0);return n===0?0:e[0]==="+"?-n:n}var rt=function(e){return function(n){this[e]=+n}},qe=[Vi,function(t){var e=this.zone||(this.zone={});e.offset=zi(t)}],ye=function(e){var n=yt[e];return n&&(n.indexOf?n:n.s.concat(n.f))},Ge=function(e,n){var r,i=yt,a=i.meridiem;if(!a)r=e===(n?"pm":"PM");else for(var s=1;s<=24;s+=1)if(e.indexOf(a(s,0,n))>-1){r=s>12;break}return r},Pi={A:[Wt,function(t){this.afternoon=Ge(t,!1)}],a:[Wt,function(t){this.afternoon=Ge(t,!0)}],S:[Wi,function(t){this.milliseconds=+t*100}],SS:[Gt,function(t){this.milliseconds=+t*10}],SSS:[Oi,function(t){this.milliseconds=+t}],s:[at,rt("seconds")],ss:[at,rt("seconds")],m:[at,rt("minutes")],mm:[at,rt("minutes")],H:[at,rt("hours")],h:[at,rt("hours")],HH:[at,rt("hours")],hh:[at,rt("hours")],D:[at,rt("day")],DD:[Gt,rt("day")],Do:[Wt,function(t){var e=yt,n=e.ordinal,r=t.match(/\d+/);if(this.day=r[0],!!n)for(var i=1;i<=31;i+=1)n(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],M:[at,rt("month")],MM:[Gt,rt("month")],MMM:[Wt,function(t){var e=ye("months"),n=ye("monthsShort"),r=(n||e.map(function(i){return i.slice(0,3)})).indexOf(t)+1;if(r<1)throw new Error;this.month=r%12||r}],MMMM:[Wt,function(t){var e=ye("months"),n=e.indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],Y:[Ni,rt("year")],YY:[Gt,function(t){this.year=vn(t)}],YYYY:[Hi,rt("year")],Z:qe,ZZ:qe};function Ri(t){var e=t.afternoon;if(e!==void 0){var n=t.hours;e?n<12&&(t.hours+=12):n===12&&(t.hours=0),delete t.afternoon}}function Bi(t){t=Ei(t,yt&&yt.formats);for(var e=t.match(Ii),n=e.length,r=0;r-1)return new Date((n==="X"?1e3:1)*e);var i=Bi(n),a=i(e),s=a.year,m=a.month,y=a.day,T=a.hours,v=a.minutes,U=a.seconds,b=a.milliseconds,k=a.zone,E=new Date,D=y||(!s&&!m?E.getDate():1),R=s||E.getFullYear(),X=0;s&&!m||(X=m>0?m-1:E.getMonth());var tt=T||0,B=v||0,Z=U||0,J=b||0;return k?new Date(Date.UTC(R,X,D,tt,B,Z,J+k.offset*60*1e3)):r?new Date(Date.UTC(R,X,D,tt,B,Z,J)):new Date(R,X,D,tt,B,Z,J)}catch{return new Date("")}};const Xi=function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(vn=t.parseTwoDigitYear);var r=e.prototype,i=r.parse;r.parse=function(a){var s=a.date,m=a.utc,y=a.args;this.$u=m;var T=y[1];if(typeof T=="string"){var v=y[2]===!0,U=y[3]===!0,b=v||U,k=y[2];U&&(k=y[2]),yt=this.$locale(),!v&&k&&(yt=n.Ls[k]),this.$d=Zi(s,T,m),this.init(),k&&k!==!0&&(this.$L=this.locale(k).$L),b&&s!=this.format(T)&&(this.$d=new Date("")),yt={}}else if(T instanceof Array)for(var E=T.length,D=1;D<=E;D+=1){y[1]=T[D-1];var R=n.apply(this,y);if(R.isValid()){this.$d=R.$d,this.$L=R.$L,this.init();break}D===E&&(this.$d=new Date(""))}else i.call(this,a)}},qi=function(t,e){var n=e.prototype,r=n.format;n.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return r.bind(this)(i);var m=this.$utils(),y=i||Yi,T=y.replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(v){switch(v){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return m.s(a.week(),v==="w"?1:2,"0");case"W":case"WW":return m.s(a.isoWeek(),v==="W"?1:2,"0");case"k":case"kk":return m.s(String(a.$H===0?24:a.$H),v==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return v}});return r.bind(this)(T)}};var Te=function(){var t=function(C,c,d,g){for(d=d||{},g=C.length;g--;d[C[g]]=c);return d},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],r=[1,26],i=[1,27],a=[1,28],s=[1,29],m=[1,30],y=[1,31],T=[1,9],v=[1,10],U=[1,11],b=[1,12],k=[1,13],E=[1,14],D=[1,15],R=[1,16],X=[1,18],tt=[1,19],B=[1,20],Z=[1,21],J=[1,22],x=[1,24],V=[1,32],w={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(c,d,g,u,S,o,q){var h=o.length-1;switch(S){case 1:return o[h-1];case 2:this.$=[];break;case 3:o[h-1].push(o[h]),this.$=o[h-1];break;case 4:case 5:this.$=o[h];break;case 6:case 7:this.$=[];break;case 8:u.setWeekday("monday");break;case 9:u.setWeekday("tuesday");break;case 10:u.setWeekday("wednesday");break;case 11:u.setWeekday("thursday");break;case 12:u.setWeekday("friday");break;case 13:u.setWeekday("saturday");break;case 14:u.setWeekday("sunday");break;case 15:u.setDateFormat(o[h].substr(11)),this.$=o[h].substr(11);break;case 16:u.enableInclusiveEndDates(),this.$=o[h].substr(18);break;case 17:u.TopAxis(),this.$=o[h].substr(8);break;case 18:u.setAxisFormat(o[h].substr(11)),this.$=o[h].substr(11);break;case 19:u.setTickInterval(o[h].substr(13)),this.$=o[h].substr(13);break;case 20:u.setExcludes(o[h].substr(9)),this.$=o[h].substr(9);break;case 21:u.setIncludes(o[h].substr(9)),this.$=o[h].substr(9);break;case 22:u.setTodayMarker(o[h].substr(12)),this.$=o[h].substr(12);break;case 24:u.setDiagramTitle(o[h].substr(6)),this.$=o[h].substr(6);break;case 25:this.$=o[h].trim(),u.setAccTitle(this.$);break;case 26:case 27:this.$=o[h].trim(),u.setAccDescription(this.$);break;case 28:u.addSection(o[h].substr(8)),this.$=o[h].substr(8);break;case 30:u.addTask(o[h-1],o[h]),this.$="task";break;case 31:this.$=o[h-1],u.setClickEvent(o[h-1],o[h],null);break;case 32:this.$=o[h-2],u.setClickEvent(o[h-2],o[h-1],o[h]);break;case 33:this.$=o[h-2],u.setClickEvent(o[h-2],o[h-1],null),u.setLink(o[h-2],o[h]);break;case 34:this.$=o[h-3],u.setClickEvent(o[h-3],o[h-2],o[h-1]),u.setLink(o[h-3],o[h]);break;case 35:this.$=o[h-2],u.setClickEvent(o[h-2],o[h],null),u.setLink(o[h-2],o[h-1]);break;case 36:this.$=o[h-3],u.setClickEvent(o[h-3],o[h-1],o[h]),u.setLink(o[h-3],o[h-2]);break;case 37:this.$=o[h-1],u.setLink(o[h-1],o[h]);break;case 38:case 44:this.$=o[h-1]+" "+o[h];break;case 39:case 40:case 42:this.$=o[h-2]+" "+o[h-1]+" "+o[h];break;case 41:case 43:this.$=o[h-3]+" "+o[h-2]+" "+o[h-1]+" "+o[h];break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:a,16:s,17:m,18:y,19:T,20:v,21:U,22:b,23:k,24:E,25:D,26:R,27:X,28:tt,30:B,32:Z,33:J,34:23,35:x,37:V},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:r,14:i,15:a,16:s,17:m,18:y,19:T,20:v,21:U,22:b,23:k,24:E,25:D,26:R,27:X,28:tt,30:B,32:Z,33:J,34:23,35:x,37:V},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},parseError:function(c,d){if(d.recoverable)this.trace(c);else{var g=new Error(c);throw g.hash=d,g}},parse:function(c){var d=this,g=[0],u=[],S=[null],o=[],q=this.table,h="",f=0,_=0,P=2,I=1,O=o.slice.call(arguments,1),A=Object.create(this.lexer),H={yy:{}};for(var kt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,kt)&&(H.yy[kt]=this.yy[kt]);A.setInput(c,H.yy),H.yy.lexer=A,H.yy.parser=this,typeof A.yylloc>"u"&&(A.yylloc={});var pt=A.yylloc;o.push(pt);var p=A.options&&A.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function L(){var ct;return ct=u.pop()||A.lex()||I,typeof ct!="number"&&(ct instanceof Array&&(u=ct,ct=u.pop()),ct=d.symbols_[ct]||ct),ct}for(var M,l,z,N,G={},$,et,Lt,Zt;;){if(l=g[g.length-1],this.defaultActions[l]?z=this.defaultActions[l]:((M===null||typeof M>"u")&&(M=L()),z=q[l]&&q[l][M]),typeof z>"u"||!z.length||!z[0]){var re="";Zt=[];for($ in q[l])this.terminals_[$]&&$>P&&Zt.push("'"+this.terminals_[$]+"'");A.showPosition?re="Parse error on line "+(f+1)+`: +`+A.showPosition()+` +Expecting `+Zt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":re="Parse error on line "+(f+1)+": Unexpected "+(M==I?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(re,{text:A.match,token:this.terminals_[M]||M,line:A.yylineno,loc:pt,expected:Zt})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+l+", token: "+M);switch(z[0]){case 1:g.push(M),S.push(A.yytext),o.push(A.yylloc),g.push(z[1]),M=null,_=A.yyleng,h=A.yytext,f=A.yylineno,pt=A.yylloc;break;case 2:if(et=this.productions_[z[1]][1],G.$=S[S.length-et],G._$={first_line:o[o.length-(et||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(et||1)].first_column,last_column:o[o.length-1].last_column},p&&(G._$.range=[o[o.length-(et||1)].range[0],o[o.length-1].range[1]]),N=this.performAction.apply(G,[h,_,f,H.yy,z[1],S,o].concat(O)),typeof N<"u")return N;et&&(g=g.slice(0,-1*et*2),S=S.slice(0,-1*et),o=o.slice(0,-1*et)),g.push(this.productions_[z[1]][0]),S.push(G.$),o.push(G._$),Lt=q[g[g.length-2]][g[g.length-1]],g.push(Lt);break;case 3:return!0}}return!0}},F=function(){var C={EOF:1,parseError:function(d,g){if(this.yy.parser)this.yy.parser.parseError(d,g);else throw new Error(d)},setInput:function(c,d){return this.yy=d||this.yy||{},this._input=c,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var d=c.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),c},unput:function(c){var d=c.length,g=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===u.length?this.yylloc.first_column:0)+u[u.length-g.length].length-g[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(c){this.unput(this.match.slice(c))},pastInput:function(){var c=this.matched.substr(0,this.matched.length-this.match.length);return(c.length>20?"...":"")+c.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var c=this.match;return c.length<20&&(c+=this._input.substr(0,20-c.length)),(c.substr(0,20)+(c.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var c=this.pastInput(),d=new Array(c.length+1).join("-");return c+this.upcomingInput()+` +`+d+"^"},test_match:function(c,d){var g,u,S;if(this.options.backtrack_lexer&&(S={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(S.yylloc.range=this.yylloc.range.slice(0))),u=c[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+c[0].length},this.yytext+=c[0],this.match+=c[0],this.matches=c,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(c[0].length),this.matched+=c[0],g=this.performAction.call(this,this.yy,this,d,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var o in S)this[o]=S[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var c,d,g,u;this._more||(this.yytext="",this.match="");for(var S=this._currentRules(),o=0;od[0].length)){if(d=g,u=o,this.options.backtrack_lexer){if(c=this.test_match(g,S[o]),c!==!1)return c;if(this._backtrack){d=!1;continue}else return!1}else if(!this.options.flex)break}return d?(c=this.test_match(d,S[u]),c!==!1?c:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var d=this.next();return d||this.lex()},begin:function(d){this.conditionStack.push(d)},popState:function(){var d=this.conditionStack.length-1;return d>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},pushState:function(d){this.begin(d)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(d,g,u,S){switch(u){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),28;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),30;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 40;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 38;case 21:this.popState();break;case 22:return 39;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 37;case 26:return 4;case 27:return 19;case 28:return 20;case 29:return 21;case 30:return 22;case 31:return 23;case 32:return 25;case 33:return 24;case 34:return 26;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return"date";case 43:return 27;case 44:return"accDescription";case 45:return 33;case 46:return 35;case 47:return 36;case 48:return":";case 49:return 6;case 50:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],inclusive:!0}}};return C}();w.lexer=F;function Y(){this.yy={}}return Y.prototype=w,w.Parser=Y,new Y}();Te.parser=Te;const Gi=Te;nt.extend(Fi);nt.extend(Xi);nt.extend(qi);let st="",De="",Me,Se="",Pt=[],Rt=[],_e={},Ye=[],ne=[],Ut="",Ue="";const bn=["active","done","crit","milestone"];let Fe=[],Bt=!1,Le=!1,Ae="sunday",ve=0;const Qi=function(){Ye=[],ne=[],Ut="",Fe=[],jt=0,xe=void 0,Jt=void 0,Q=[],st="",De="",Ue="",Me=void 0,Se="",Pt=[],Rt=[],Bt=!1,Le=!1,ve=0,_e={},Hn(),Ae="sunday"},ji=function(t){De=t},Ji=function(){return De},$i=function(t){Me=t},Ki=function(){return Me},ta=function(t){Se=t},ea=function(){return Se},na=function(t){st=t},ra=function(){Bt=!0},ia=function(){return Bt},aa=function(){Le=!0},sa=function(){return Le},oa=function(t){Ue=t},ca=function(){return Ue},la=function(){return st},ua=function(t){Pt=t.toLowerCase().split(/[\s,]+/)},fa=function(){return Pt},ha=function(t){Rt=t.toLowerCase().split(/[\s,]+/)},da=function(){return Rt},ma=function(){return _e},ga=function(t){Ut=t,Ye.push(t)},ya=function(){return Ye},ka=function(){let t=Qe();const e=10;let n=0;for(;!t&&n=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase())?!0:n.includes(t.format(e.trim()))},pa=function(t){Ae=t},Ta=function(){return Ae},wn=function(t,e,n,r){if(!n.length||t.manualEndTime)return;let i;t.startTime instanceof Date?i=nt(t.startTime):i=nt(t.startTime,e,!0),i=i.add(1,"d");let a;t.endTime instanceof Date?a=nt(t.endTime):a=nt(t.endTime,e,!0);const[s,m]=va(i,a,e,n,r);t.endTime=s.toDate(),t.renderEndTime=m},va=function(t,e,n,r,i){let a=!1,s=null;for(;t<=e;)a||(s=e.toDate()),a=xn(t,n,r,i),a&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,s]},be=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(i!==null){let s=null;if(i[1].split(" ").forEach(function(m){let y=Ft(m);y!==void 0&&(s?y.endTime>s.endTime&&(s=y):s=y)}),s)return s.endTime;{const m=new Date;return m.setHours(0,0,0,0),m}}let a=nt(n,e.trim(),!0);if(a.isValid())return a.toDate();{$t.debug("Invalid date:"+n),$t.debug("With date format:"+e.trim());const s=new Date(n);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+n);return s}},Cn=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},Dn=function(t,e,n,r=!1){n=n.trim();let i=nt(n,e.trim(),!0);if(i.isValid())return r&&(i=i.add(1,"d")),i.toDate();let a=nt(t);const[s,m]=Cn(n);if(!Number.isNaN(s)){const y=a.add(s,m);y.isValid()&&(a=y)}return a.toDate()};let jt=0;const St=function(t){return t===void 0?(jt=jt+1,"task"+jt):t},ba=function(t,e){let n;e.substr(0,1)===":"?n=e.substr(1,e.length):n=e;const r=n.split(","),i={};Yn(r,i,bn);for(let s=0;s{window.open(n,"_self")}),_e[r]=n)}),Sn(t,"clickable")},Sn=function(t,e){t.split(",").forEach(function(n){let r=Ft(n);r!==void 0&&r.classes.push(e)})},Ma=function(t,e,n){if(Dt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Pn.runFunc(e,...r)})},_n=function(t,e){Fe.push(function(){const n=document.querySelector(`[id="${t}"]`);n!==null&&n.addEventListener("click",function(){e()})},function(){const n=document.querySelector(`[id="${t}-text"]`);n!==null&&n.addEventListener("click",function(){e()})})},Sa=function(t,e,n){t.split(",").forEach(function(r){Ma(r,e,n)}),Sn(t,"clickable")},_a=function(t){Fe.forEach(function(e){e(t)})},Ya={getConfig:()=>Dt().gantt,clear:Qi,setDateFormat:na,getDateFormat:la,enableInclusiveEndDates:ra,endDatesAreInclusive:ia,enableTopAxis:aa,topAxisEnabled:sa,setAxisFormat:ji,getAxisFormat:Ji,setTickInterval:$i,getTickInterval:Ki,setTodayMarker:ta,getTodayMarker:ea,setAccTitle:Ln,getAccTitle:An,setDiagramTitle:En,getDiagramTitle:In,setDisplayMode:oa,getDisplayMode:ca,setAccDescription:Wn,getAccDescription:On,addSection:ga,getSections:ya,getTasks:ka,addTask:wa,findTaskById:Ft,addTaskOrg:Ca,setIncludes:ua,getIncludes:fa,setExcludes:ha,getExcludes:da,setClickEvent:Sa,setLink:Da,getLinks:ma,bindFunctions:_a,parseDuration:Cn,isInvalidDate:xn,setWeekday:pa,getWeekday:Ta};function Yn(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),r=!0)})}const Ua=function(){$t.debug("Something is calling, setConf, remove the call")},je={monday:Nt,tuesday:un,wednesday:fn,thursday:vt,friday:hn,saturday:dn,sunday:zt},Fa=(t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(const a of r)for(let s=0;s=n[s]){n[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i};let lt;const La=function(t,e,n,r){const i=Dt().gantt,a=Dt().securityLevel;let s;a==="sandbox"&&(s=Xt("#i"+e));const m=a==="sandbox"?Xt(s.nodes()[0].contentDocument.body):Xt("body"),y=a==="sandbox"?s.nodes()[0].contentDocument:document,T=y.getElementById(e);lt=T.parentElement.offsetWidth,lt===void 0&&(lt=1200),i.useWidth!==void 0&&(lt=i.useWidth);const v=r.db.getTasks();let U=[];for(const w of v)U.push(w.type);U=V(U);const b={};let k=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const w={};for(const Y of v)w[Y.section]===void 0?w[Y.section]=[Y]:w[Y.section].push(Y);let F=0;for(const Y of Object.keys(w)){const C=Fa(w[Y],F)+1;F+=C,k+=C*(i.barHeight+i.barGap),b[Y]=C}}else{k+=v.length*(i.barHeight+i.barGap);for(const w of U)b[w]=v.filter(F=>F.type===w).length}T.setAttribute("viewBox","0 0 "+lt+" "+k);const E=m.select(`[id="${e}"]`),D=Mi().domain([Qn(v,function(w){return w.startTime}),Gn(v,function(w){return w.endTime})]).rangeRound([0,lt-i.leftPadding-i.rightPadding]);function R(w,F){const Y=w.startTime,C=F.startTime;let c=0;return Y>C?c=1:Yf.order))].map(f=>w.find(_=>_.order===f));E.append("g").selectAll("rect").data(S).enter().append("rect").attr("x",0).attr("y",function(f,_){return _=f.order,_*F+Y-2}).attr("width",function(){return g-i.rightPadding/2}).attr("height",F).attr("class",function(f){for(const[_,P]of U.entries())if(f.type===P)return"section section"+_%i.numberSectionStyles;return"section section0"});const o=E.append("g").selectAll("rect").data(w).enter(),q=r.db.getLinks();if(o.append("rect").attr("id",function(f){return f.id}).attr("rx",3).attr("ry",3).attr("x",function(f){return f.milestone?D(f.startTime)+C+.5*(D(f.endTime)-D(f.startTime))-.5*c:D(f.startTime)+C}).attr("y",function(f,_){return _=f.order,_*F+Y}).attr("width",function(f){return f.milestone?c:D(f.renderEndTime||f.endTime)-D(f.startTime)}).attr("height",c).attr("transform-origin",function(f,_){return _=f.order,(D(f.startTime)+C+.5*(D(f.endTime)-D(f.startTime))).toString()+"px "+(_*F+Y+.5*c).toString()+"px"}).attr("class",function(f){const _="task";let P="";f.classes.length>0&&(P=f.classes.join(" "));let I=0;for(const[A,H]of U.entries())f.type===H&&(I=A%i.numberSectionStyles);let O="";return f.active?f.crit?O+=" activeCrit":O=" active":f.done?f.crit?O=" doneCrit":O=" done":f.crit&&(O+=" crit"),O.length===0&&(O=" task"),f.milestone&&(O=" milestone "+O),O+=I,O+=" "+P,_+O}),o.append("text").attr("id",function(f){return f.id+"-text"}).text(function(f){return f.task}).attr("font-size",i.fontSize).attr("x",function(f){let _=D(f.startTime),P=D(f.renderEndTime||f.endTime);f.milestone&&(_+=.5*(D(f.endTime)-D(f.startTime))-.5*c),f.milestone&&(P=_+c);const I=this.getBBox().width;return I>P-_?P+I+1.5*i.leftPadding>g?_+C-5:P+C+5:(P-_)/2+_+C}).attr("y",function(f,_){return _=f.order,_*F+i.barHeight/2+(i.fontSize/2-2)+Y}).attr("text-height",c).attr("class",function(f){const _=D(f.startTime);let P=D(f.endTime);f.milestone&&(P=_+c);const I=this.getBBox().width;let O="";f.classes.length>0&&(O=f.classes.join(" "));let A=0;for(const[kt,pt]of U.entries())f.type===pt&&(A=kt%i.numberSectionStyles);let H="";return f.active&&(f.crit?H="activeCritText"+A:H="activeText"+A),f.done?f.crit?H=H+" doneCritText"+A:H=H+" doneText"+A:f.crit&&(H=H+" critText"+A),f.milestone&&(H+=" milestoneText"),I>P-_?P+I+1.5*i.leftPadding>g?O+" taskTextOutsideLeft taskTextOutside"+A+" "+H:O+" taskTextOutsideRight taskTextOutside"+A+" "+H+" width-"+I:O+" taskText taskText"+A+" "+H+" width-"+I}),Dt().securityLevel==="sandbox"){let f;f=Xt("#i"+e);const _=f.nodes()[0].contentDocument;o.filter(function(P){return q[P.id]!==void 0}).each(function(P){var I=_.querySelector("#"+P.id),O=_.querySelector("#"+P.id+"-text");const A=I.parentNode;var H=_.createElement("a");H.setAttribute("xlink:href",q[P.id]),H.setAttribute("target","_top"),A.appendChild(H),H.appendChild(I),H.appendChild(O)})}}function B(w,F,Y,C,c,d,g,u){if(g.length===0&&u.length===0)return;let S,o;for(const{startTime:I,endTime:O}of d)(S===void 0||Io)&&(o=O);if(!S||!o)return;if(nt(o).diff(nt(S),"year")>5){$t.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const q=r.db.getDateFormat(),h=[];let f=null,_=nt(S);for(;_.valueOf()<=o;)r.db.isInvalidDate(_,q,g,u)?f?f.end=_:f={start:_,end:_}:f&&(h.push(f),f=null),_=_.add(1,"d");E.append("g").selectAll("rect").data(h).enter().append("rect").attr("id",function(I){return"exclude-"+I.start.format("YYYY-MM-DD")}).attr("x",function(I){return D(I.start)+Y}).attr("y",i.gridLineStartPadding).attr("width",function(I){const O=I.end.add(1,"day");return D(O)-D(I.start)}).attr("height",c-F-i.gridLineStartPadding).attr("transform-origin",function(I,O){return(D(I.start)+Y+.5*(D(I.end)-D(I.start))).toString()+"px "+(O*w+.5*c).toString()+"px"}).attr("class","exclude-range")}function Z(w,F,Y,C){let c=rr(D).tickSize(-C+F+i.gridLineStartPadding).tickFormat(ee(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));const g=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(g!==null){const u=g[1],S=g[2],o=r.db.getWeekday()||i.weekday;switch(S){case"millisecond":c.ticks(_t.every(u));break;case"second":c.ticks(gt.every(u));break;case"minute":c.ticks(Ot.every(u));break;case"hour":c.ticks(Ht.every(u));break;case"day":c.ticks(Tt.every(u));break;case"week":c.ticks(je[o].every(u));break;case"month":c.ticks(Vt.every(u));break}}if(E.append("g").attr("class","grid").attr("transform","translate("+w+", "+(C-50)+")").call(c).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let u=nr(D).tickSize(-C+F+i.gridLineStartPadding).tickFormat(ee(r.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(g!==null){const S=g[1],o=g[2],q=r.db.getWeekday()||i.weekday;switch(o){case"millisecond":u.ticks(_t.every(S));break;case"second":u.ticks(gt.every(S));break;case"minute":u.ticks(Ot.every(S));break;case"hour":u.ticks(Ht.every(S));break;case"day":u.ticks(Tt.every(S));break;case"week":u.ticks(je[q].every(S));break;case"month":u.ticks(Vt.every(S));break}}E.append("g").attr("class","grid").attr("transform","translate("+w+", "+F+")").call(u).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function J(w,F){let Y=0;const C=Object.keys(b).map(c=>[c,b[c]]);E.append("g").selectAll("text").data(C).enter().append(function(c){const d=c[0].split(zn.lineBreakRegex),g=-(d.length-1)/2,u=y.createElementNS("http://www.w3.org/2000/svg","text");u.setAttribute("dy",g+"em");for(const[S,o]of d.entries()){const q=y.createElementNS("http://www.w3.org/2000/svg","tspan");q.setAttribute("alignment-baseline","central"),q.setAttribute("x","10"),S>0&&q.setAttribute("dy","1em"),q.textContent=o,u.appendChild(q)}return u}).attr("x",10).attr("y",function(c,d){if(d>0)for(let g=0;g` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,Ia=Ea,za={parser:Gi,db:Ya,renderer:Aa,styles:Ia};export{za as diagram}; diff --git a/docs/assets/chunks/gitGraphDiagram-b9d81de9.CNuHYvfB.js b/docs/assets/chunks/gitGraphDiagram-b9d81de9.CNuHYvfB.js new file mode 100644 index 0000000..e8dcdc5 --- /dev/null +++ b/docs/assets/chunks/gitGraphDiagram-b9d81de9.CNuHYvfB.js @@ -0,0 +1,70 @@ +import{c as O,s as vt,g as Ct,a as Ot,b as Pt,v as At,x as St,l as H,j as D,z as It,h as Gt,y as Nt,as as Ht,at as Bt}from"../app.Dv4846sG.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";var mt=function(){var r=function(S,o,u,d){for(u=u||{},d=S.length;d--;u[S[d]]=o);return u},n=[1,3],l=[1,6],h=[1,4],a=[1,5],c=[2,5],p=[1,12],m=[5,7,13,19,21,23,24,26,28,31,37,40,47],y=[7,13,19,21,23,24,26,28,31,37,40],x=[7,12,13,19,21,23,24,26,28,31,37,40],s=[7,13,47],_=[1,42],E=[1,41],b=[7,13,29,32,35,38,47],f=[1,55],k=[1,56],g=[1,57],T=[7,13,32,35,42,47],z={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(o,u,d,i,w,t,X){var e=t.length-1;switch(w){case 2:return t[e];case 3:return t[e-1];case 4:return i.setDirection(t[e-3]),t[e-1];case 6:i.setOptions(t[e-1]),this.$=t[e];break;case 7:t[e-1]+=t[e],this.$=t[e-1];break;case 9:this.$=[];break;case 10:t[e-1].push(t[e]),this.$=t[e-1];break;case 11:this.$=t[e-1];break;case 16:this.$=t[e].trim(),i.setAccTitle(this.$);break;case 17:case 18:this.$=t[e].trim(),i.setAccDescription(this.$);break;case 19:i.addSection(t[e].substr(8)),this.$=t[e].substr(8);break;case 21:i.checkout(t[e]);break;case 22:i.branch(t[e]);break;case 23:i.branch(t[e-2],t[e]);break;case 24:i.cherryPick(t[e],"",void 0);break;case 25:i.cherryPick(t[e-2],"",void 0,t[e]);break;case 26:i.cherryPick(t[e-2],"",t[e]);break;case 27:i.cherryPick(t[e-4],"",t[e],t[e-2]);break;case 28:i.cherryPick(t[e-4],"",t[e-2],t[e]);break;case 29:i.cherryPick(t[e],"",t[e-2]);break;case 30:i.cherryPick(t[e],"","");break;case 31:i.cherryPick(t[e-2],"","");break;case 32:i.cherryPick(t[e-4],"","",t[e-2]);break;case 33:i.cherryPick(t[e-4],"","",t[e]);break;case 34:i.cherryPick(t[e-2],"",t[e-4],t[e]);break;case 35:i.cherryPick(t[e-2],"","",t[e]);break;case 36:i.merge(t[e],"","","");break;case 37:i.merge(t[e-2],t[e],"","");break;case 38:i.merge(t[e-2],"",t[e],"");break;case 39:i.merge(t[e-2],"","",t[e]);break;case 40:i.merge(t[e-4],t[e],"",t[e-2]);break;case 41:i.merge(t[e-4],"",t[e],t[e-2]);break;case 42:i.merge(t[e-4],"",t[e-2],t[e]);break;case 43:i.merge(t[e-4],t[e-2],t[e],"");break;case 44:i.merge(t[e-4],t[e-2],"",t[e]);break;case 45:i.merge(t[e-4],t[e],t[e-2],"");break;case 46:i.merge(t[e-6],t[e-4],t[e-2],t[e]);break;case 47:i.merge(t[e-6],t[e],t[e-4],t[e-2]);break;case 48:i.merge(t[e-6],t[e-4],t[e],t[e-2]);break;case 49:i.merge(t[e-6],t[e-2],t[e-4],t[e]);break;case 50:i.merge(t[e-6],t[e],t[e-2],t[e-4]);break;case 51:i.merge(t[e-6],t[e-2],t[e],t[e-4]);break;case 52:i.commit(t[e]);break;case 53:i.commit("","",i.commitType.NORMAL,t[e]);break;case 54:i.commit("","",t[e],"");break;case 55:i.commit("","",t[e],t[e-2]);break;case 56:i.commit("","",t[e-2],t[e]);break;case 57:i.commit("",t[e],i.commitType.NORMAL,"");break;case 58:i.commit("",t[e-2],i.commitType.NORMAL,t[e]);break;case 59:i.commit("",t[e],i.commitType.NORMAL,t[e-2]);break;case 60:i.commit("",t[e-2],t[e],"");break;case 61:i.commit("",t[e],t[e-2],"");break;case 62:i.commit("",t[e-4],t[e-2],t[e]);break;case 63:i.commit("",t[e-4],t[e],t[e-2]);break;case 64:i.commit("",t[e-2],t[e-4],t[e]);break;case 65:i.commit("",t[e],t[e-4],t[e-2]);break;case 66:i.commit("",t[e],t[e-2],t[e-4]);break;case 67:i.commit("",t[e-2],t[e],t[e-4]);break;case 68:i.commit(t[e],"",i.commitType.NORMAL,"");break;case 69:i.commit(t[e],"",i.commitType.NORMAL,t[e-2]);break;case 70:i.commit(t[e-2],"",i.commitType.NORMAL,t[e]);break;case 71:i.commit(t[e-2],"",t[e],"");break;case 72:i.commit(t[e],"",t[e-2],"");break;case 73:i.commit(t[e],t[e-2],i.commitType.NORMAL,"");break;case 74:i.commit(t[e-2],t[e],i.commitType.NORMAL,"");break;case 75:i.commit(t[e-4],"",t[e-2],t[e]);break;case 76:i.commit(t[e-4],"",t[e],t[e-2]);break;case 77:i.commit(t[e-2],"",t[e-4],t[e]);break;case 78:i.commit(t[e],"",t[e-4],t[e-2]);break;case 79:i.commit(t[e],"",t[e-2],t[e-4]);break;case 80:i.commit(t[e-2],"",t[e],t[e-4]);break;case 81:i.commit(t[e-4],t[e],t[e-2],"");break;case 82:i.commit(t[e-4],t[e-2],t[e],"");break;case 83:i.commit(t[e-2],t[e],t[e-4],"");break;case 84:i.commit(t[e],t[e-2],t[e-4],"");break;case 85:i.commit(t[e],t[e-4],t[e-2],"");break;case 86:i.commit(t[e-2],t[e-4],t[e],"");break;case 87:i.commit(t[e-4],t[e],i.commitType.NORMAL,t[e-2]);break;case 88:i.commit(t[e-4],t[e-2],i.commitType.NORMAL,t[e]);break;case 89:i.commit(t[e-2],t[e],i.commitType.NORMAL,t[e-4]);break;case 90:i.commit(t[e],t[e-2],i.commitType.NORMAL,t[e-4]);break;case 91:i.commit(t[e],t[e-4],i.commitType.NORMAL,t[e-2]);break;case 92:i.commit(t[e-2],t[e-4],i.commitType.NORMAL,t[e]);break;case 93:i.commit(t[e-6],t[e-4],t[e-2],t[e]);break;case 94:i.commit(t[e-6],t[e-4],t[e],t[e-2]);break;case 95:i.commit(t[e-6],t[e-2],t[e-4],t[e]);break;case 96:i.commit(t[e-6],t[e],t[e-4],t[e-2]);break;case 97:i.commit(t[e-6],t[e-2],t[e],t[e-4]);break;case 98:i.commit(t[e-6],t[e],t[e-2],t[e-4]);break;case 99:i.commit(t[e-4],t[e-6],t[e-2],t[e]);break;case 100:i.commit(t[e-4],t[e-6],t[e],t[e-2]);break;case 101:i.commit(t[e-2],t[e-6],t[e-4],t[e]);break;case 102:i.commit(t[e],t[e-6],t[e-4],t[e-2]);break;case 103:i.commit(t[e-2],t[e-6],t[e],t[e-4]);break;case 104:i.commit(t[e],t[e-6],t[e-2],t[e-4]);break;case 105:i.commit(t[e],t[e-4],t[e-2],t[e-6]);break;case 106:i.commit(t[e-2],t[e-4],t[e],t[e-6]);break;case 107:i.commit(t[e],t[e-2],t[e-4],t[e-6]);break;case 108:i.commit(t[e-2],t[e],t[e-4],t[e-6]);break;case 109:i.commit(t[e-4],t[e-2],t[e],t[e-6]);break;case 110:i.commit(t[e-4],t[e],t[e-2],t[e-6]);break;case 111:i.commit(t[e-2],t[e-4],t[e-6],t[e]);break;case 112:i.commit(t[e],t[e-4],t[e-6],t[e-2]);break;case 113:i.commit(t[e-2],t[e],t[e-6],t[e-4]);break;case 114:i.commit(t[e],t[e-2],t[e-6],t[e-4]);break;case 115:i.commit(t[e-4],t[e-2],t[e-6],t[e]);break;case 116:i.commit(t[e-4],t[e],t[e-6],t[e-2]);break;case 117:this.$="";break;case 118:this.$=t[e];break;case 119:this.$=i.commitType.NORMAL;break;case 120:this.$=i.commitType.REVERSE;break;case 121:this.$=i.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:n,7:l,13:h,47:a},{1:[3]},{3:7,4:2,5:n,7:l,13:h,47:a},{6:8,7:c,8:[1,9],9:[1,10],10:11,13:p},r(m,[2,124]),r(m,[2,125]),r(m,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:c,10:11,13:p},{8:[1,15]},r(y,[2,9],{11:16,12:[1,17]}),r(x,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:c,10:11,13:p},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},r(x,[2,7]),{1:[2,3]},{7:[1,36]},r(y,[2,10]),{4:37,7:l,13:h,47:a},r(y,[2,12]),r(s,[2,13]),r(s,[2,14]),r(s,[2,15]),{20:[1,38]},{22:[1,39]},r(s,[2,18]),r(s,[2,19]),r(s,[2,20]),{27:40,33:_,46:E},r(s,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:_,46:E},{32:[1,50],35:[1,51]},{27:52,33:_,46:E},{1:[2,4]},r(y,[2,11]),r(s,[2,16]),r(s,[2,17]),r(s,[2,21]),r(b,[2,122]),r(b,[2,123]),r(s,[2,52]),{33:[1,53]},{39:54,43:f,44:k,45:g},{33:[1,58]},{33:[1,59]},r(s,[2,118]),r(s,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},r(s,[2,22],{29:[1,66]}),r(s,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),r(s,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),r(T,[2,119]),r(T,[2,120]),r(T,[2,121]),r(s,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),r(s,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:f,44:k,45:g},{33:[1,81]},r(s,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:f,44:k,45:g},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:f,44:k,45:g},{33:[1,95]},{33:[1,96]},{39:97,43:f,44:k,45:g},{33:[1,98]},r(s,[2,37],{35:[1,100],38:[1,99]}),r(s,[2,38],{32:[1,102],35:[1,101]}),r(s,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},r(s,[2,23]),r(s,[2,55],{32:[1,110],42:[1,111]}),r(s,[2,59],{38:[1,112],42:[1,113]}),r(s,[2,69],{32:[1,115],38:[1,114]}),r(s,[2,56],{32:[1,116],42:[1,117]}),r(s,[2,61],{35:[1,118],42:[1,119]}),r(s,[2,72],{32:[1,121],35:[1,120]}),r(s,[2,58],{38:[1,122],42:[1,123]}),r(s,[2,60],{35:[1,124],42:[1,125]}),r(s,[2,73],{35:[1,127],38:[1,126]}),r(s,[2,70],{32:[1,129],38:[1,128]}),r(s,[2,71],{32:[1,131],35:[1,130]}),r(s,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:f,44:k,45:g},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:f,44:k,45:g},r(s,[2,25],{35:[1,140]}),r(s,[2,26],{34:[1,141]}),r(s,[2,31],{34:[1,142]}),r(s,[2,29],{34:[1,143]}),r(s,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:f,44:k,45:g},{33:[1,148]},{39:149,43:f,44:k,45:g},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:f,44:k,45:g},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:f,44:k,45:g},{33:[1,162]},{39:163,43:f,44:k,45:g},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:f,44:k,45:g},{33:[1,168]},r(s,[2,43],{35:[1,169]}),r(s,[2,44],{38:[1,170]}),r(s,[2,42],{32:[1,171]}),r(s,[2,45],{35:[1,172]}),r(s,[2,40],{38:[1,173]}),r(s,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},r(s,[2,66],{42:[1,181]}),r(s,[2,79],{32:[1,182]}),r(s,[2,67],{42:[1,183]}),r(s,[2,90],{38:[1,184]}),r(s,[2,80],{32:[1,185]}),r(s,[2,89],{38:[1,186]}),r(s,[2,65],{42:[1,187]}),r(s,[2,78],{32:[1,188]}),r(s,[2,64],{42:[1,189]}),r(s,[2,84],{35:[1,190]}),r(s,[2,77],{32:[1,191]}),r(s,[2,83],{35:[1,192]}),r(s,[2,63],{42:[1,193]}),r(s,[2,91],{38:[1,194]}),r(s,[2,62],{42:[1,195]}),r(s,[2,85],{35:[1,196]}),r(s,[2,86],{35:[1,197]}),r(s,[2,92],{38:[1,198]}),r(s,[2,76],{32:[1,199]}),r(s,[2,87],{38:[1,200]}),r(s,[2,75],{32:[1,201]}),r(s,[2,81],{35:[1,202]}),r(s,[2,82],{35:[1,203]}),r(s,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:f,44:k,45:g},{33:[1,207]},{33:[1,208]},{39:209,43:f,44:k,45:g},{33:[1,210]},r(s,[2,27]),r(s,[2,32]),r(s,[2,28]),r(s,[2,33]),r(s,[2,34]),r(s,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:f,44:k,45:g},{33:[1,215]},{39:216,43:f,44:k,45:g},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:f,44:k,45:g},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:f,44:k,45:g},{33:[1,229]},{39:230,43:f,44:k,45:g},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:f,44:k,45:g},r(s,[2,46]),r(s,[2,48]),r(s,[2,47]),r(s,[2,49]),r(s,[2,51]),r(s,[2,50]),r(s,[2,107]),r(s,[2,108]),r(s,[2,105]),r(s,[2,106]),r(s,[2,110]),r(s,[2,109]),r(s,[2,114]),r(s,[2,113]),r(s,[2,112]),r(s,[2,111]),r(s,[2,116]),r(s,[2,115]),r(s,[2,104]),r(s,[2,103]),r(s,[2,102]),r(s,[2,101]),r(s,[2,99]),r(s,[2,100]),r(s,[2,98]),r(s,[2,97]),r(s,[2,96]),r(s,[2,95]),r(s,[2,93]),r(s,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(o,u){if(u.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=u,d}},parse:function(o){var u=this,d=[0],i=[],w=[null],t=[],X=this.table,e="",rt=0,ft=0,wt=2,pt=1,Rt=t.slice.call(arguments,1),P=Object.create(this.lexer),F={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(F.yy[ct]=this.yy[ct]);P.setInput(o,F.yy),F.yy.lexer=P,F.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var ot=P.yylloc;t.push(ot);var Lt=P.options&&P.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var q;return q=i.pop()||P.lex()||pt,typeof q!="number"&&(q instanceof Array&&(i=q,q=i.pop()),q=u.symbols_[q]||q),q}for(var N,K,V,lt,J={},it,j,bt,st;;){if(K=d[d.length-1],this.defaultActions[K]?V=this.defaultActions[K]:((N===null||typeof N>"u")&&(N=Mt()),V=X[K]&&X[K][N]),typeof V>"u"||!V.length||!V[0]){var ht="";st=[];for(it in X[K])this.terminals_[it]&&it>wt&&st.push("'"+this.terminals_[it]+"'");P.showPosition?ht="Parse error on line "+(rt+1)+`: +`+P.showPosition()+` +Expecting `+st.join(", ")+", got '"+(this.terminals_[N]||N)+"'":ht="Parse error on line "+(rt+1)+": Unexpected "+(N==pt?"end of input":"'"+(this.terminals_[N]||N)+"'"),this.parseError(ht,{text:P.match,token:this.terminals_[N]||N,line:P.yylineno,loc:ot,expected:st})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+K+", token: "+N);switch(V[0]){case 1:d.push(N),w.push(P.yytext),t.push(P.yylloc),d.push(V[1]),N=null,ft=P.yyleng,e=P.yytext,rt=P.yylineno,ot=P.yylloc;break;case 2:if(j=this.productions_[V[1]][1],J.$=w[w.length-j],J._$={first_line:t[t.length-(j||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(j||1)].first_column,last_column:t[t.length-1].last_column},Lt&&(J._$.range=[t[t.length-(j||1)].range[0],t[t.length-1].range[1]]),lt=this.performAction.apply(J,[e,ft,rt,F.yy,V[1],w,t].concat(Rt)),typeof lt<"u")return lt;j&&(d=d.slice(0,-1*j*2),w=w.slice(0,-1*j),t=t.slice(0,-1*j)),d.push(this.productions_[V[1]][0]),w.push(J.$),t.push(J._$),bt=X[d[d.length-2]][d[d.length-1]],d.push(bt);break;case 3:return!0}}return!0}},v=function(){var S={EOF:1,parseError:function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},setInput:function(o,u){return this.yy=u||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var u=o.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var u=o.length,d=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===i.length?this.yylloc.first_column:0)+i[i.length-d.length].length-d[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),u=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+u+"^"},test_match:function(o,u){var d,i,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),i=o[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],d=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),d)return d;if(this._backtrack){for(var t in w)this[t]=w[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,u,d,i;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),t=0;tu[0].length)){if(u=d,i=t,this.options.backtrack_lexer){if(o=this.test_match(d,w[t]),o!==!1)return o;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(o=this.test_match(u,w[i]),o!==!1?o:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var u=this.next();return u||this.lex()},begin:function(u){this.conditionStack.push(u)},popState:function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},pushState:function(u){this.begin(u)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(u,d,i,w){switch(i){case 0:return this.begin("acc_title"),19;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),21;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 13;case 8:break;case 9:break;case 10:return 5;case 11:return 40;case 12:return 32;case 13:return 38;case 14:return 42;case 15:return 43;case 16:return 44;case 17:return 45;case 18:return 35;case 19:return 28;case 20:return 29;case 21:return 37;case 22:return 31;case 23:return 34;case 24:return 26;case 25:return 9;case 26:return 9;case 27:return 8;case 28:return"CARET";case 29:this.begin("options");break;case 30:this.popState();break;case 31:return 12;case 32:return 36;case 33:this.begin("string");break;case 34:this.popState();break;case 35:return 33;case 36:return 30;case 37:return 46;case 38:return 7}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:parent:)/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:TB\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},options:{rules:[30,31],inclusive:!1},string:{rules:[34,35],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,36,37,38,39],inclusive:!0}}};return S}();z.lexer=v;function I(){this.yy={}}return I.prototype=z,z.Parser=I,new I}();mt.parser=mt;const Vt=mt;let at=O().gitGraph.mainBranchName,Dt=O().gitGraph.mainBranchOrder,C={},G=null,tt={};tt[at]={name:at,order:Dt};let M={};M[at]=G;let A=at,kt="LR",W=0;function ut(){return Bt({length:7})}function zt(r,n){const l=Object.create(null);return r.reduce((h,a)=>{const c=n(a);return l[c]||(l[c]=!0,h.push(a)),h},[])}const jt=function(r){kt=r};let xt={};const qt=function(r){H.debug("options str",r),r=r&&r.trim(),r=r||"{}";try{xt=JSON.parse(r)}catch(n){H.error("error while parsing gitGraph options",n.message)}},Yt=function(){return xt},Ft=function(r,n,l,h){H.debug("Entering commit:",r,n,l,h),n=D.sanitizeText(n,O()),r=D.sanitizeText(r,O()),h=D.sanitizeText(h,O());const a={id:n||W+"-"+ut(),message:r,seq:W++,type:l||Q.NORMAL,tag:h||"",parents:G==null?[]:[G.id],branch:A};G=a,C[a.id]=a,M[A]=a.id,H.debug("in pushCommit "+a.id)},Kt=function(r,n){if(r=D.sanitizeText(r,O()),M[r]===void 0)M[r]=G!=null?G.id:null,tt[r]={name:r,order:n?parseInt(n,10):null},yt(r),H.debug("in createBranch");else{let l=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+r+'")');throw l.hash={text:"branch "+r,token:"branch "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+r+'"']},l}},Ut=function(r,n,l,h){r=D.sanitizeText(r,O()),n=D.sanitizeText(n,O());const a=C[M[A]],c=C[M[r]];if(A===r){let m=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(a===void 0||!a){let m=new Error('Incorrect usage of "merge". Current branch ('+A+")has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},m}else if(M[r]===void 0){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+r]},m}else if(c===void 0||!c){let m=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},m}else if(a===c){let m=new Error('Incorrect usage of "merge". Both branches have same head');throw m.hash={text:"merge "+r,token:"merge "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},m}else if(n&&C[n]!==void 0){let m=new Error('Incorrect usage of "merge". Commit with id:'+n+" already exists, use different custom Id");throw m.hash={text:"merge "+r+n+l+h,token:"merge "+r+n+l+h,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+r+" "+n+"_UNIQUE "+l+" "+h]},m}const p={id:n||W+"-"+ut(),message:"merged branch "+r+" into "+A,seq:W++,parents:[G==null?null:G.id,M[r]],branch:A,type:Q.MERGE,customType:l,customId:!!n,tag:h||""};G=p,C[p.id]=p,M[A]=p.id,H.debug(M),H.debug("in mergeBranch")},Wt=function(r,n,l,h){if(H.debug("Entering cherryPick:",r,n,l),r=D.sanitizeText(r,O()),n=D.sanitizeText(n,O()),l=D.sanitizeText(l,O()),h=D.sanitizeText(h,O()),!r||C[r]===void 0){let p=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw p.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},p}let a=C[r],c=a.branch;if(h&&!(Array.isArray(a.parents)&&a.parents.includes(h)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");if(a.type===Q.MERGE&&!h)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!n||C[n]===void 0){if(c===A){let y=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw y.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},y}const p=C[M[A]];if(p===void 0||!p){let y=new Error('Incorrect usage of "cherry-pick". Current branch ('+A+")has no commits");throw y.hash={text:"cherryPick "+r+" "+n,token:"cherryPick "+r+" "+n,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},y}const m={id:W+"-"+ut(),message:"cherry-picked "+a+" into "+A,seq:W++,parents:[G==null?null:G.id,a.id],branch:A,type:Q.CHERRY_PICK,tag:l??`cherry-pick:${a.id}${a.type===Q.MERGE?`|parent:${h}`:""}`};G=m,C[m.id]=m,M[A]=m.id,H.debug(M),H.debug("in cherryPick")}},yt=function(r){if(r=D.sanitizeText(r,O()),M[r]===void 0){let n=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+r+'")');throw n.hash={text:"checkout "+r,token:"checkout "+r,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+r+'"']},n}else{A=r;const n=M[A];G=C[n]}};function gt(r,n,l){const h=r.indexOf(n);h===-1?r.push(l):r.splice(h,1,l)}function _t(r){const n=r.reduce((a,c)=>a.seq>c.seq?a:c,r[0]);let l="";r.forEach(function(a){a===n?l+=" *":l+=" |"});const h=[l,n.id,n.seq];for(let a in M)M[a]===n.id&&h.push(a);if(H.debug(h.join(" ")),n.parents&&n.parents.length==2){const a=C[n.parents[0]];gt(r,n,a),r.push(C[n.parents[1]])}else{if(n.parents.length==0)return;{const a=C[n.parents];gt(r,n,a)}}r=zt(r,a=>a.id),_t(r)}const Jt=function(){H.debug(C);const r=Et()[0];_t([r])},Qt=function(){C={},G=null;let r=O().gitGraph.mainBranchName,n=O().gitGraph.mainBranchOrder;M={},M[r]=null,tt={},tt[r]={name:r,order:n},A=r,W=0,It()},Xt=function(){return Object.values(tt).map((n,l)=>n.order!==null?n:{...n,order:parseFloat(`0.${l}`,10)}).sort((n,l)=>n.order-l.order).map(({name:n})=>({name:n}))},Zt=function(){return M},$t=function(){return C},Et=function(){const r=Object.keys(C).map(function(n){return C[n]});return r.forEach(function(n){H.debug(n.id)}),r.sort((n,l)=>n.seq-l.seq),r},te=function(){return A},ee=function(){return kt},re=function(){return G},Q={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ie={getConfig:()=>O().gitGraph,setDirection:jt,setOptions:qt,getOptions:Yt,commit:Ft,branch:Kt,merge:Ut,cherryPick:Wt,checkout:yt,prettyPrint:Jt,clear:Qt,getBranchesAsObjArray:Xt,getBranches:Zt,getCommits:$t,getCommitsArray:Et,getCurrentBranch:te,getDirection:ee,getHead:re,setAccTitle:vt,getAccTitle:Ct,getAccDescription:Ot,setAccDescription:Pt,setDiagramTitle:At,getDiagramTitle:St,commitType:Q};let Z={};const B={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},U=8;let R={},Y={},nt=[],et=0,L="LR";const se=()=>{R={},Y={},Z={},et=0,nt=[],L="LR"},Tt=r=>{const n=document.createElementNS("http://www.w3.org/2000/svg","text");let l=[];typeof r=="string"?l=r.split(/\\n|\n|/gi):Array.isArray(r)?l=r:l=[];for(const h of l){const a=document.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),a.setAttribute("dy","1em"),a.setAttribute("x","0"),a.setAttribute("class","row"),a.textContent=h.trim(),n.appendChild(a)}return n},ae=r=>{let n="",l=0;return r.forEach(h=>{const a=L==="TB"?Y[h].y:Y[h].x;a>=l&&(n=h,l=a)}),n||void 0},dt=(r,n,l)=>{const h=O().gitGraph,a=r.append("g").attr("class","commit-bullets"),c=r.append("g").attr("class","commit-labels");let p=0;L==="TB"&&(p=30);const y=Object.keys(n).sort((E,b)=>n[E].seq-n[b].seq),x=h.parallelCommits,s=10,_=40;y.forEach(E=>{const b=n[E];if(x)if(b.parents.length){const T=ae(b.parents);p=L==="TB"?Y[T].y+_:Y[T].x+_}else p=0,L==="TB"&&(p=30);const f=p+s,k=L==="TB"?f:R[b.branch].pos,g=L==="TB"?R[b.branch].pos:f;if(l){let T,z=b.customType!==void 0&&b.customType!==""?b.customType:b.type;switch(z){case B.NORMAL:T="commit-normal";break;case B.REVERSE:T="commit-reverse";break;case B.HIGHLIGHT:T="commit-highlight";break;case B.MERGE:T="commit-merge";break;case B.CHERRY_PICK:T="commit-cherry-pick";break;default:T="commit-normal"}if(z===B.HIGHLIGHT){const v=a.append("rect");v.attr("x",g-10),v.attr("y",k-10),v.attr("height",20),v.attr("width",20),v.attr("class",`commit ${b.id} commit-highlight${R[b.branch].index%U} ${T}-outer`),a.append("rect").attr("x",g-6).attr("y",k-6).attr("height",12).attr("width",12).attr("class",`commit ${b.id} commit${R[b.branch].index%U} ${T}-inner`)}else if(z===B.CHERRY_PICK)a.append("circle").attr("cx",g).attr("cy",k).attr("r",10).attr("class",`commit ${b.id} ${T}`),a.append("circle").attr("cx",g-3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${T}`),a.append("circle").attr("cx",g+3).attr("cy",k+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${b.id} ${T}`),a.append("line").attr("x1",g+3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${T}`),a.append("line").attr("x1",g-3).attr("y1",k+1).attr("x2",g).attr("y2",k-5).attr("stroke","#fff").attr("class",`commit ${b.id} ${T}`);else{const v=a.append("circle");if(v.attr("cx",g),v.attr("cy",k),v.attr("r",b.type===B.MERGE?9:10),v.attr("class",`commit ${b.id} commit${R[b.branch].index%U}`),z===B.MERGE){const I=a.append("circle");I.attr("cx",g),I.attr("cy",k),I.attr("r",6),I.attr("class",`commit ${T} ${b.id} commit${R[b.branch].index%U}`)}z===B.REVERSE&&a.append("path").attr("d",`M ${g-5},${k-5}L${g+5},${k+5}M${g-5},${k+5}L${g+5},${k-5}`).attr("class",`commit ${T} ${b.id} commit${R[b.branch].index%U}`)}}if(L==="TB"?Y[b.id]={x:g,y:f}:Y[b.id]={x:f,y:k},l){if(b.type!==B.CHERRY_PICK&&(b.customId&&b.type===B.MERGE||b.type!==B.MERGE)&&h.showCommitLabel){const v=c.append("g"),I=v.insert("rect").attr("class","commit-label-bkg"),S=v.append("text").attr("x",p).attr("y",k+25).attr("class","commit-label").text(b.id);let o=S.node().getBBox();if(I.attr("x",f-o.width/2-2).attr("y",k+13.5).attr("width",o.width+2*2).attr("height",o.height+2*2),L==="TB"&&(I.attr("x",g-(o.width+4*4+5)).attr("y",k-12),S.attr("x",g-(o.width+4*4)).attr("y",k+o.height-12)),L!=="TB"&&S.attr("x",f-o.width/2),h.rotateCommitLabel)if(L==="TB")S.attr("transform","rotate(-45, "+g+", "+k+")"),I.attr("transform","rotate(-45, "+g+", "+k+")");else{let u=-7.5-(o.width+10)/25*9.5,d=10+o.width/25*8.5;v.attr("transform","translate("+u+", "+d+") rotate(-45, "+p+", "+k+")")}}if(b.tag){const v=c.insert("polygon"),I=c.append("circle"),S=c.append("text").attr("y",k-16).attr("class","tag-label").text(b.tag);let o=S.node().getBBox();S.attr("x",f-o.width/2);const u=o.height/2,d=k-19.2;v.attr("class","tag-label-bkg").attr("points",` + ${p-o.width/2-4/2},${d+2} + ${p-o.width/2-4/2},${d-2} + ${f-o.width/2-4},${d-u-2} + ${f+o.width/2+4},${d-u-2} + ${f+o.width/2+4},${d+u+2} + ${f-o.width/2-4},${d+u+2}`),I.attr("cx",p-o.width/2+4/2).attr("cy",d).attr("r",1.5).attr("class","tag-hole"),L==="TB"&&(v.attr("class","tag-label-bkg").attr("points",` + ${g},${p+2} + ${g},${p-2} + ${g+s},${p-u-2} + ${g+s+o.width+4},${p-u-2} + ${g+s+o.width+4},${p+u+2} + ${g+s},${p+u+2}`).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),I.attr("cx",g+4/2).attr("cy",p).attr("transform","translate(12,12) rotate(45, "+g+","+p+")"),S.attr("x",g+5).attr("y",p+3).attr("transform","translate(14,14) rotate(45, "+g+","+p+")"))}}p+=_+s,p>et&&(et=p)})},ne=(r,n,l,h,a)=>{const p=(L==="TB"?l.xx.branch===p,y=x=>x.seq>r.seq&&x.seqy(x)&&m(x))},$=(r,n,l=0)=>{const h=r+Math.abs(r-n)/2;if(l>5)return h;if(nt.every(p=>Math.abs(p-h)>=10))return nt.push(h),h;const c=Math.abs(r-n);return $(r,n-c/5,l+1)},ce=(r,n,l,h)=>{const a=Y[n.id],c=Y[l.id],p=ne(n,l,a,c,h);let m="",y="",x=0,s=0,_=R[l.branch].index,E;if(p){m="A 10 10, 0, 0, 0,",y="A 10 10, 0, 0, 1,",x=10,s=10;const b=a.yc.x&&(m="A 20 20, 0, 0, 0,",y="A 20 20, 0, 0, 1,",x=20,s=20,_=R[n.branch].index,E=`M ${a.x} ${a.y} L ${a.x} ${c.y-x} ${y} ${a.x-s} ${c.y} L ${c.x} ${c.y}`),a.x===c.x&&(_=R[n.branch].index,E=`M ${a.x} ${a.y} L ${a.x+x} ${a.y} ${m} ${a.x+s} ${c.y+x} L ${c.x} ${c.y}`)):(a.yc.y&&(m="A 20 20, 0, 0, 0,",x=20,s=20,_=R[n.branch].index,E=`M ${a.x} ${a.y} L ${c.x-x} ${a.y} ${m} ${c.x} ${a.y-s} L ${c.x} ${c.y}`),a.y===c.y&&(_=R[n.branch].index,E=`M ${a.x} ${a.y} L ${a.x} ${c.y-x} ${m} ${a.x+s} ${c.y} L ${c.x} ${c.y}`));r.append("path").attr("d",E).attr("class","arrow arrow"+_%U)},oe=(r,n)=>{const l=r.append("g").attr("class","commit-arrows");Object.keys(n).forEach(h=>{const a=n[h];a.parents&&a.parents.length>0&&a.parents.forEach(c=>{ce(l,n[c],a,n)})})},le=(r,n)=>{const l=O().gitGraph,h=r.append("g");n.forEach((a,c)=>{const p=c%U,m=R[a.name].pos,y=h.append("line");y.attr("x1",0),y.attr("y1",m),y.attr("x2",et),y.attr("y2",m),y.attr("class","branch branch"+p),L==="TB"&&(y.attr("y1",30),y.attr("x1",m),y.attr("y2",et),y.attr("x2",m)),nt.push(m);let x=a.name;const s=Tt(x),_=h.insert("rect"),b=h.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+p);b.node().appendChild(s);let f=s.getBBox();_.attr("class","branchLabelBkg label"+p).attr("rx",4).attr("ry",4).attr("x",-f.width-4-(l.rotateCommitLabel===!0?30:0)).attr("y",-f.height/2+8).attr("width",f.width+18).attr("height",f.height+4),b.attr("transform","translate("+(-f.width-14-(l.rotateCommitLabel===!0?30:0))+", "+(m-f.height/2-1)+")"),L==="TB"&&(_.attr("x",m-f.width/2-10).attr("y",0),b.attr("transform","translate("+(m-f.width/2-5)+", 0)")),L!=="TB"&&_.attr("transform","translate(-19, "+(m-f.height/2)+")")})},he=function(r,n,l,h){se();const a=O(),c=a.gitGraph;H.debug("in gitgraph renderer",r+` +`,"id:",n,l),Z=h.db.getCommits();const p=h.db.getBranchesAsObjArray();L=h.db.getDirection();const m=Gt(`[id="${n}"]`);let y=0;p.forEach((x,s)=>{const _=Tt(x.name),E=m.append("g"),b=E.insert("g").attr("class","branchLabel"),f=b.insert("g").attr("class","label branch-label");f.node().appendChild(_);let k=_.getBBox();R[x.name]={pos:y,index:s},y+=50+(c.rotateCommitLabel?40:0)+(L==="TB"?k.width/2:0),f.remove(),b.remove(),E.remove()}),dt(m,Z,!1),c.showBranches&&le(m,p),oe(m,Z),dt(m,Z,!0),Nt.insertTitle(m,"gitTitleText",c.titleTopMargin,h.db.getDiagramTitle()),Ht(void 0,m,c.diagramPadding,c.useMaxWidth??a.useMaxWidth)},me={draw:he},ue=r=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(n=>` + .branch-label${n} { fill: ${r["gitBranchLabel"+n]}; } + .commit${n} { stroke: ${r["git"+n]}; fill: ${r["git"+n]}; } + .commit-highlight${n} { stroke: ${r["gitInv"+n]}; fill: ${r["gitInv"+n]}; } + .label${n} { fill: ${r["git"+n]}; } + .arrow${n} { stroke: ${r["git"+n]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${r.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelColor};} + .commit-label-bkg { font-size: ${r.commitLabelFontSize}; fill: ${r.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${r.tagLabelFontSize}; fill: ${r.tagLabelColor};} + .tag-label-bkg { fill: ${r.tagLabelBackground}; stroke: ${r.tagLabelBorder}; } + .tag-hole { fill: ${r.textColor}; } + + .commit-merge { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + .commit-reverse { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${r.primaryColor}; + fill: ${r.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${r.textColor}; + } +`,fe=ue,de={parser:Vt,db:ie,renderer:me,styles:fe};export{de as diagram}; diff --git a/docs/assets/chunks/graph.CEI0PYYp.js b/docs/assets/chunks/graph.CEI0PYYp.js new file mode 100644 index 0000000..5940fb0 --- /dev/null +++ b/docs/assets/chunks/graph.CEI0PYYp.js @@ -0,0 +1 @@ +import{A as I,B as qe,S as O,C as A,D as Te,E as Xe,F as Je,G as Qe,H as Ee,I as G,J as X,K as We,L as Oe,M as ze,N as C,O as R,P as we,Q as me,R as Ve,T as Z,U as ke,V as en,W as P,X as nn,Y as rn,Z as tn,_ as re,$ as sn,a0 as an,a1 as un,a2 as ve,a3 as fn,a4 as B,a5 as on,a6 as dn,a7 as M,a8 as te,a9 as ie}from"../app.Dv4846sG.js";var hn="[object Symbol]";function J(e){return typeof e=="symbol"||I(e)&&qe(e)==hn}function $e(e,n){for(var r=-1,t=e==null?0:e.length,i=Array(t);++r-1}function T(e){return Te(e)?Xe(e):Je(e)}var yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tn=/^\w*$/;function Q(e,n){if(A(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||J(e)?!0:Tn.test(e)||!yn.test(e)||n!=null&&e in Object(n)}var En=500;function On(e){var n=Qe(e,function(t){return r.size===En&&r.clear(),t}),r=n.cache;return n}var wn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,mn=/\\(\\)?/g,vn=On(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(wn,function(r,t,i,s){n.push(i?s.replace(mn,"$1"):t||r)}),n});function $n(e){return e==null?"":Le(e)}function Ie(e,n){return A(e)?e:Q(e,n)?[e]:vn($n(e))}var Ln=1/0;function U(e){if(typeof e=="string"||J(e))return e;var n=e+"";return n=="0"&&1/e==-Ln?"-0":n}function Ce(e,n){n=Ie(n,e);for(var r=0,t=n.length;e!=null&&r0&&r(u)?n>1?Se(u,n-1,r,t,i):W(i,u):t||(i[i.length]=u)}return i}function Cn(e,n,r,t){var i=-1,s=e==null?0:e.length;for(t&&s&&(r=e[++i]);++iu))return!1;var g=s.get(e),l=s.get(n);if(g&&l)return g==n&&l==e;var o=-1,d=!0,y=r&Qr?new S:void 0;for(s.set(e,n),s.set(n,e);++o=Zt){var g=n?null:Yt(e);if(g)return V(g);a=!1,i=Ue,f=new S}else f=n?[]:u;e:for(;++t1?i.setNode(s,r):i.setNode(s)}),this}setNode(n,r){return E(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=v,this._children[n]={},this._children[v][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return E(this._nodes,n)}removeNode(n){var r=this;if(E(this._nodes,n)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],m(this.children(n),function(i){r.setParent(i)}),delete this._children[n]),m(T(this._in[n]),t),delete this._in[n],delete this._preds[n],m(T(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if($(r))r=v;else{r+="";for(var t=r;!$(t);t=this.parent(t))if(t===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var r=this._parent[n];if(r!==v)return r}}children(n){if($(n)&&(n=v),this._isCompound){var r=this._children[n];if(r)return T(r)}else{if(n===v)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var r=this._preds[n];if(r)return T(r)}successors(n){var r=this._sucs[n];if(r)return T(r)}neighbors(n){var r=this.predecessors(n);if(r)return Xt(r,this.successors(n))}isLeaf(n){var r;return this.isDirected()?r=this.successors(n):r=this.neighbors(n),r.length===0}filterNodes(n){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var t=this;m(this._nodes,function(a,u){n(u)&&r.setNode(u,a)}),m(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,t.edge(a))});var i={};function s(a){var u=t.parent(a);return u===void 0||r.hasNode(u)?(i[a]=u,u):u in i?i[u]:s(u)}return this._isCompound&&m(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(n){return te(n)||(n=M(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return H(this._edgeObjs)}setPath(n,r){var t=this,i=arguments;return Kt(n,function(s,a){return i.length>1?t.setEdge(s,a,r):t.setEdge(s,a),a}),this}setEdge(){var n,r,t,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(n=a.v,r=a.w,t=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(n=a,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),n=""+n,r=""+r,$(t)||(t=""+t);var u=L(this._isDirected,n,r,t);if(E(this._edgeLabels,u))return s&&(this._edgeLabels[u]=i),this;if(!$(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(r),this._edgeLabels[u]=s?i:this._defaultEdgeLabelFn(n,r,t);var f=Qt(this._isDirected,n,r,t);return n=f.v,r=f.w,Object.freeze(f),this._edgeObjs[u]=f,Ae(this._preds[r],n),Ae(this._sucs[n],r),this._in[r][u]=f,this._out[n][u]=f,this._edgeCount++,this}edge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return this._edgeLabels[i]}hasEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return E(this._edgeLabels,i)}removeEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t),s=this._edgeObjs[i];return s&&(n=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],ye(this._preds[r],n),ye(this._sucs[n],r),delete this._in[r][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,r){var t=this._in[n];if(t){var i=H(t);return r?D(i,function(s){return s.v===r}):i}}outEdges(n,r){var t=this._out[n];if(t){var i=H(t);return r?D(i,function(s){return s.w===r}):i}}nodeEdges(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))}}Ze.prototype._nodeCount=0;Ze.prototype._edgeCount=0;function Ae(e,n){e[n]?e[n]++:e[n]=1}function ye(e,n){--e[n]||delete e[n]}function L(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+be+s+be+($(t)?Jt:t)}function Qt(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var u={v:i,w:s};return t&&(u.name=t),u}function Y(e,n){return L(e,n.v,n.w,n.name)}export{Ze as G,j as a,Se as b,Ye as c,cn as d,ee as e,m as f,$e as g,E as h,J as i,xt as j,T as k,St as l,Ie as m,Ce as n,mt as o,$n as p,$ as q,D as r,Kt as s,U as t,H as v}; diff --git a/docs/assets/chunks/index-8fae9850.AUF3rEmQ.js b/docs/assets/chunks/index-8fae9850.AUF3rEmQ.js new file mode 100644 index 0000000..d88882f --- /dev/null +++ b/docs/assets/chunks/index-8fae9850.AUF3rEmQ.js @@ -0,0 +1 @@ +import{q as N,G as A}from"./graph.CEI0PYYp.js";import{m as $,l as q}from"./layout.B9Jo_8FM.js";import{c as H}from"./clone.D_kVq7Za.js";import{i as V,u as U,s as W,a as _,b as z,g as D,p as O,c as K,d as Q,e as Y,f as Z,h as J,j as p}from"./edges-d417c7a0.DU1W7dRA.js";import{l as s,c as T,q as S,h as L}from"../app.Dv4846sG.js";import{c as I}from"./createText-423428c9.B39V2kZ0.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tt(e),edges:et(e)};return N(e.graph())||(t.value=H(e.graph())),t}function tt(e){return $(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return N(n)||(i.value=n),N(r)||(i.parent=r),i})}function et(e){return $(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return N(t.name)||(r.name=t.name),N(n)||(r.value=n),r})}let l={},g={},R={};const nt=()=>{g={},R={},l={}},B=(e,t)=>(s.trace("In isDecendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),it=(e,t)=>(s.info("Decendants of ",t," is ",g[t]),s.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||B(e.v,t)||B(e.w,t)||g[t].includes(e.w):(s.debug("Tilt, ",t,",not in decendants"),!1)),P=(e,t,n,r)=>{s.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),s.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)P(a,t,n,r);else{const d=t.node(a);s.info("cp ",a," to ",r," with parent ",e),n.setNode(a,d),r!==t.parent(a)&&(s.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.debug("Setting parent",a,e),n.setParent(a,e)):(s.info("In copy ",e,"root",r,"data",t.node(e),r),s.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const u=t.edges(a);s.debug("Copying Edges",u),u.forEach(f=>{s.info("Edge",f);const h=t.edge(f.v,f.w,f.name);s.info("Edge data",h,r);try{it(f,r)?(s.info("Copying as ",f.v,f.w,h,f.name),n.setEdge(f.v,f.w,h,f.name),s.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",r," clusterId:",e)}catch(w){s.error(w)}})}s.debug("Removing node",a),t.removeNode(a)})},k=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)R[i]=e,r=[...r,...k(i,t)];return r},C=(e,t)=>{s.trace("Searching",e);const n=t.children(e);if(s.trace("Searching children of id ",e,n),n.length<1)return s.trace("This is a valid node",e),e;for(const r of n){const i=C(r,t);if(i)return s.trace("Found replacement for",e," => ",i),i}},X=e=>!l[e]||!l[e].externalConnections?e:l[e]?l[e].id:e,st=(e,t)=>{if(!e||t>10){s.debug("Opting out, no graph ");return}else s.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(s.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),g[n]=k(n,e),l[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),i=e.edges();r.length>0?(s.debug("Cluster identified",n,g),i.forEach(a=>{if(a.v!==n&&a.w!==n){const d=B(a.v,n),u=B(a.w,n);d^u&&(s.warn("Edge: ",a," leaves cluster ",n),s.warn("Decendants of XXX ",n,": ",g[n]),l[n].externalConnections=!0)}})):s.debug("Not a cluster ",n,g)});for(let n of Object.keys(l)){const r=l[n].id,i=e.parent(r);i!==n&&l[i]&&!l[i].externalConnections&&(l[n].id=i)}e.edges().forEach(function(n){const r=e.edge(n);s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(s.warn("Fix XXX",l,"ids:",n.v,n.w,"Translating: ",l[n.v]," --- ",l[n.w]),l[n.v]&&l[n.w]&&l[n.v]===l[n.w]){s.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name);const d=n.w+"---"+n.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const u=structuredClone(r),f=structuredClone(r);u.label="",u.arrowTypeEnd="none",f.label="",u.fromCluster=n.v,f.toCluster=n.v,e.setEdge(i,d,u,n.name+"-cyclic-special"),e.setEdge(d,a,f,n.name+"-cyclic-special")}else if(l[n.v]||l[n.w]){if(s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){const d=e.parent(i);l[d].externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){const d=e.parent(a);l[d].externalConnections=!0,r.toCluster=n.w}s.warn("Fix Replacing with XXX",i,a,n.name),e.setEdge(i,a,r,n.name)}}),s.warn("Adjusted Graph",m(e)),F(e,0),s.trace(l)},F=(e,t)=>{if(s.warn("extractor - ",t,m(e),e.children("D")),t>10){s.error("Bailing out");return}let n=e.nodes(),r=!1;for(const i of n){const a=e.children(i);r=r||a.length>0}if(!r){s.debug("Done, no node has children",e.nodes());return}s.debug("Nodes = ",n,t);for(const i of n)if(s.debug("Extracting node",i,l,l[i]&&!l[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!l[i])s.debug("Not a cluster",i,t);else if(!l[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.warn("Cluster without external connections, without a parent and with children",i,t);let d=e.graph().rankdir==="TB"?"LR":"TB";l[i]&&l[i].clusterData&&l[i].clusterData.dir&&(d=l[i].clusterData.dir,s.warn("Fixing dir",l[i].clusterData.dir,d));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.warn("Old graph before copy",m(e)),P(i,e,u,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:l[i].clusterData,labelText:l[i].labelText,graph:u}),s.warn("New graph after copy node: (",i,")",m(u)),s.debug("Old graph after copy",m(e))}else s.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!l[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.debug(l);n=e.nodes(),s.warn("New list of nodes",n);for(const i of n){const a=e.node(i);s.warn(" Now next level",i,a),a.clusterNode&&F(a.graph,t+1)}},G=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const i=e.children(r),a=G(e,i);n=[...n,...a]}),n},rt=e=>G(e,e.children()),at=(e,t)=>{s.info("Creating subgraph rect for ",t.id,t);const n=T(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=S(n.flowchart.htmlLabels),d=r.insert("g").attr("class","cluster-label"),u=t.labelType==="markdown"?I(d,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):d.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}const h=0*t.padding,w=h/2,x=t.width<=f.width+h?f.width+h:t.width;t.width<=f.width+h?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-x/2).attr("y",t.y-t.height/2-w).attr("width",x).attr("height",t.height+h);const{subGraphTitleTopMargin:v}=D(n);a?d.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+v})`):d.attr("transform",`translate(${t.x}, ${t.y-t.height/2+v})`);const y=i.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(c){return p(t,c)},r},ct=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(u){return p(t,u)},n},ot=(e,t)=>{const n=T(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),d=r.append("rect"),u=a.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}f=u.getBBox();const h=0*t.padding,w=h/2,x=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w).attr("width",x+h).attr("height",t.height+h),d.attr("class","inner").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w+f.height-1).attr("width",x+h).attr("height",t.height+h-f.height-3);const{subGraphTitleTopMargin:v}=D(n);a.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2-t.padding/3+(S(n.flowchart.htmlLabels)?5:3)+v})`);const y=i.node().getBBox();return t.height=y.height,t.intersect=function(c){return p(t,c)},r},lt=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(u){return p(t,u)},n},ft={rect:at,roundedWithTitle:ot,noteGroup:ct,divider:lt};let j={};const dt=(e,t)=>{s.trace("Inserting cluster");const n=t.shape||"rect";j[t.id]=ft[n](e,t)},ut=()=>{j={}},M=async(e,t,n,r,i,a)=>{s.info("Graph in recursive render: XXX",m(t),i);const d=t.graph().rankdir;s.trace("Dir in recursive render - dir:",d);const u=e.insert("g").attr("class","root");t.nodes()?s.info("Recursive render XXX",t.nodes()):s.info("No nodes found for",t),t.edges().length>0&&s.trace("Recursive edges",t.edge(t.edges()[0]));const f=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),w=u.insert("g").attr("class","edgeLabels"),x=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(i!==void 0){const b=JSON.parse(JSON.stringify(i.clusterData));s.info("Setting data for cluster XXX (",c,") ",b,i),t.setNode(i.id,b),t.parent(c)||(s.trace("Setting parent",c,i.id),t.setParent(c,i.id,b))}if(s.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){s.info("Cluster identified",c,o.width,t.node(c));const b=await M(x,o.graph,n,r,t.node(c),a),E=b.elem;U(o,E),o.diff=b.diff||0,s.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),W(E,o),s.warn("Recursive render complete ",E,o)}else t.children(c).length>0?(s.info("Cluster - the non recursive path XXX",c,o.id,o,t),s.info(C(o.id,t)),l[o.id]={id:C(o.id,t),node:o}):(s.info("Node - the non recursive path",c,o.id,o),await _(x,t.node(c),d))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),s.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),s.info("Fix",l,"ids:",c.v,c.w,"Translateing: ",l[c.v],l[c.w]),z(w,o)}),t.edges().forEach(function(c){s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),s.info("#############################################"),s.info("### Layout ###"),s.info("#############################################"),s.info(t),q(t),s.info("Graph after layout:",m(t));let v=0;const{subGraphTitleTotalMargin:y}=D(a);return rt(t).forEach(function(c){const o=t.node(c);s.info("Position "+c+": "+JSON.stringify(t.node(c))),s.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?(o.y+=y,O(o)):t.children(c).length>0?(o.height+=y,dt(f,o),l[o.id].node=o):(o.y+=y/2,O(o))}),t.edges().forEach(function(c){const o=t.edge(c);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o),o.points.forEach(E=>E.y+=y/2);const b=K(h,c,o,l,n,t,r);Q(o,b)}),t.nodes().forEach(function(c){const o=t.node(c);s.info(c,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:u,diff:v}},bt=async(e,t,n,r,i)=>{V(e,n,r,i),Y(),Z(),ut(),nt(),s.warn("Graph at first:",JSON.stringify(m(t))),st(t),s.warn("Graph after:",JSON.stringify(m(t)));const a=T();await M(e,t,r,i,void 0,a)};export{bt as r}; diff --git a/docs/assets/chunks/infoDiagram-db7b18fc.B2RlRoHy.js b/docs/assets/chunks/infoDiagram-db7b18fc.B2RlRoHy.js new file mode 100644 index 0000000..df0d090 --- /dev/null +++ b/docs/assets/chunks/infoDiagram-db7b18fc.B2RlRoHy.js @@ -0,0 +1,7 @@ +import{l as Y,aH as D,i as M}from"../app.Dv4846sG.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";var O=function(){var a=function(u,t,e,n){for(e=e||{},n=u.length;n--;e[u[n]]=t);return e},f=[6,9,10],m={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,d){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},a(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},a(f,[2,3]),a(f,[2,4]),a(f,[2,5]),a(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],d=this.table,P="",v=0,L=0,N=2,T=1,R=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(p.yy[E]=this.yy[E]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var z=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var y;return y=s.pop()||o.lex()||T,typeof y!="number"&&(y instanceof Array&&(s=y,y=s.pop()),y=e.symbols_[y]||y),y}for(var l,g,h,w,_={},b,c,F,S;;){if(g=n[n.length-1],this.defaultActions[g]?h=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),h=d[g]&&d[g][l]),typeof h>"u"||!h.length||!h[0]){var A="";S=[];for(b in d[g])this.terminals_[b]&&b>N&&S.push("'"+this.terminals_[b]+"'");o.showPosition?A="Parse error on line "+(v+1)+`: +`+o.showPosition()+` +Expecting `+S.join(", ")+", got '"+(this.terminals_[l]||l)+"'":A="Parse error on line "+(v+1)+": Unexpected "+(l==T?"end of input":"'"+(this.terminals_[l]||l)+"'"),this.parseError(A,{text:o.match,token:this.terminals_[l]||l,line:o.yylineno,loc:I,expected:S})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+l);switch(h[0]){case 1:n.push(l),r.push(o.yytext),i.push(o.yylloc),n.push(h[1]),l=null,L=o.yyleng,P=o.yytext,v=o.yylineno,I=o.yylloc;break;case 2:if(c=this.productions_[h[1]][1],_.$=r[r.length-c],_._$={first_line:i[i.length-(c||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(c||1)].first_column,last_column:i[i.length-1].last_column},z&&(_._$.range=[i[i.length-(c||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(_,[P,L,v,p.yy,h[1],r,i].concat(R)),typeof w<"u")return w;c&&(n=n.slice(0,-1*c*2),r=r.slice(0,-1*c),i=i.slice(0,-1*c)),n.push(this.productions_[h[1]][0]),r.push(_.$),i.push(_._$),F=d[n[n.length-2]][n[n.length-1]],n.push(F);break;case 3:return!0}}return!0}},k=function(){var u={EOF:1,parseError:function(e,n){if(this.yy.parser)this.yy.parser.parseError(e,n);else throw new Error(e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);return e?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+e+"^"},test_match:function(t,e){var n,s,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),s=t[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var i in r)this[i]=r[i];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,n,s;this._more||(this.yytext="",this.match="");for(var r=this._currentRules(),i=0;ie[0].length)){if(e=n,s=i,this.options.backtrack_lexer){if(t=this.test_match(n,r[i]),t!==!1)return t;if(this._backtrack){e=!1;continue}else return!1}else if(!this.options.flex)break}return e?(t=this.test_match(e,r[s]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){var e=this.conditionStack.length-1;return e>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,n,s,r){switch(s){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};return u}();m.lexer=k;function x(){this.yy={}}return x.prototype=m,m.Parser=x,new x}();O.parser=O;const B=O,j={info:!1};let $=j.info;const H=a=>{$=a},V=()=>$,X=()=>{$=j.info},q={clear:X,setInfo:H,getInfo:V},C=(a,f,m)=>{Y.debug(`rendering info diagram +`+a);const k=D(f);M(k,100,400,!0),k.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${m}`)},G={draw:C},W={parser:B,db:q,renderer:G};export{W as diagram}; diff --git a/docs/assets/chunks/init.Gi6I4Gst.js b/docs/assets/chunks/init.Gi6I4Gst.js new file mode 100644 index 0000000..d44de94 --- /dev/null +++ b/docs/assets/chunks/init.Gi6I4Gst.js @@ -0,0 +1 @@ +function t(e,a){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(a).domain(e);break}return this}export{t as i}; diff --git a/docs/assets/chunks/journeyDiagram-d5636530.DgDqXNxd.js b/docs/assets/chunks/journeyDiagram-d5636530.DgDqXNxd.js new file mode 100644 index 0000000..2a9c2a8 --- /dev/null +++ b/docs/assets/chunks/journeyDiagram-d5636530.DgDqXNxd.js @@ -0,0 +1,139 @@ +import{c as I,v as yt,x as ft,s as dt,g as pt,b as gt,a as mt,z as xt,h as W,i as kt}from"../app.Dv4846sG.js";import{d as _t,f as bt,a as vt,g as it}from"./svgDrawCommon-0ee1b4e9.CCRf0t7P.js";import{a as Q}from"./arc.DUOD18ct.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./path.CbwjOpE9.js";var G=function(){var t=function(p,s,r,a){for(r=r||{},a=p.length;a--;r[p[a]]=s);return r},e=[6,8,10,11,12,14,16,17,18],i=[1,9],l=[1,10],n=[1,11],h=[1,12],c=[1,13],f=[1,14],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(s,r,a,u,d,o,w){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:function(s,r){if(r.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=r,a}},parse:function(s){var r=this,a=[0],u=[],d=[null],o=[],w=this.table,k="",R=0,Z=0,lt=2,J=1,ct=o.slice.call(arguments,1),x=Object.create(this.lexer),S={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(S.yy[z]=this.yy[z]);x.setInput(s,S.yy),S.yy.lexer=x,S.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var Y=x.yylloc;o.push(Y);var ht=x.options&&x.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var T;return T=u.pop()||x.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=r.symbols_[T]||T),T}for(var _,E,b,O,A={},N,$,K,B;;){if(E=a[a.length-1],this.defaultActions[E]?b=this.defaultActions[E]:((_===null||typeof _>"u")&&(_=ut()),b=w[E]&&w[E][_]),typeof b>"u"||!b.length||!b[0]){var q="";B=[];for(N in w[E])this.terminals_[N]&&N>lt&&B.push("'"+this.terminals_[N]+"'");x.showPosition?q="Parse error on line "+(R+1)+`: +`+x.showPosition()+` +Expecting `+B.join(", ")+", got '"+(this.terminals_[_]||_)+"'":q="Parse error on line "+(R+1)+": Unexpected "+(_==J?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(q,{text:x.match,token:this.terminals_[_]||_,line:x.yylineno,loc:Y,expected:B})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+_);switch(b[0]){case 1:a.push(_),d.push(x.yytext),o.push(x.yylloc),a.push(b[1]),_=null,Z=x.yyleng,k=x.yytext,R=x.yylineno,Y=x.yylloc;break;case 2:if($=this.productions_[b[1]][1],A.$=d[d.length-$],A._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},ht&&(A._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),O=this.performAction.apply(A,[k,Z,R,S.yy,b[1],d,o].concat(ct)),typeof O<"u")return O;$&&(a=a.slice(0,-1*$*2),d=d.slice(0,-1*$),o=o.slice(0,-1*$)),a.push(this.productions_[b[1]][0]),d.push(A.$),o.push(A._$),K=w[a[a.length-2]][a[a.length-1]],a.push(K);break;case 3:return!0}}return!0}},m=function(){var p={EOF:1,parseError:function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},setInput:function(s,r){return this.yy=r||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var r=s.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var r=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===u.length?this.yylloc.first_column:0)+u[u.length-a.length].length-a[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var s=this.pastInput(),r=new Array(s.length+1).join("-");return s+this.upcomingInput()+` +`+r+"^"},test_match:function(s,r){var a,u,d;if(this.options.backtrack_lexer&&(d={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(d.yylloc.range=this.yylloc.range.slice(0))),u=s[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(s[0].length),this.matched+=s[0],a=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var o in d)this[o]=d[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,r,a,u;this._more||(this.yytext="",this.match="");for(var d=this._currentRules(),o=0;or[0].length)){if(r=a,u=o,this.options.backtrack_lexer){if(s=this.test_match(a,d[o]),s!==!1)return s;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(s=this.test_match(r,d[u]),s!==!1?s:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,a,u,d){switch(u){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return p}();y.lexer=m;function g(){this.yy={}}return g.prototype=y,y.Parser=g,new g}();G.parser=G;const wt=G;let C="";const H=[],V=[],F=[],$t=function(){H.length=0,V.length=0,C="",F.length=0,xt()},Tt=function(t){C=t,H.push(t)},Mt=function(){return H},St=function(){let t=D();const e=100;let i=0;for(;!t&&i{i.people&&t.push(...i.people)}),[...new Set(t)].sort()},Pt=function(t,e){const i=e.substr(1).split(":");let l=0,n=[];i.length===1?(l=Number(i[0]),n=[]):(l=Number(i[0]),n=i[1].split(","));const h=n.map(f=>f.trim()),c={section:C,type:C,people:h,task:t,score:l};F.push(c)},It=function(t){const e={section:C,type:C,description:t,task:t,classes:[]};V.push(e)},D=function(){const t=function(i){return F[i].processed};let e=!0;for(const[i,l]of F.entries())t(i),e=e&&l.processed;return e},At=function(){return Et()},tt={getConfig:()=>I().journey,clear:$t,setDiagramTitle:yt,getDiagramTitle:ft,setAccTitle:dt,getAccTitle:pt,setAccDescription:gt,getAccDescription:mt,addSection:Tt,getSections:Mt,getTasks:St,addTask:Pt,addTaskOrg:It,getActors:At},Ct=t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,Vt=Ct,U=function(t,e){return _t(t,e)},Ft=function(t,e){const l=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),n=t.append("g");n.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),n.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const m=Q().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function c(y){const m=Q().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",m).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function f(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return e.score>3?h(n):e.score<3?c(n):f(n),l},rt=function(t,e){const i=t.append("circle");return i.attr("cx",e.cx),i.attr("cy",e.cy),i.attr("class","actor-"+e.pos),i.attr("fill",e.fill),i.attr("stroke",e.stroke),i.attr("r",e.r),i.class!==void 0&&i.attr("class",i.class),e.title!==void 0&&i.append("title").text(e.title),i},at=function(t,e){return bt(t,e)},Lt=function(t,e){function i(n,h,c,f,y){return n+","+h+" "+(n+c)+","+h+" "+(n+c)+","+(h+f-y)+" "+(n+c-y*1.2)+","+(h+f)+" "+n+","+(h+f)}const l=t.append("polygon");l.attr("points",i(e.x,e.y,50,20,7)),l.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,at(t,e)},Rt=function(t,e,i){const l=t.append("g"),n=it();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=i.width*e.taskCount+i.diagramMarginX*(e.taskCount-1),n.height=i.height,n.class="journey-section section-type-"+e.num,n.rx=3,n.ry=3,U(l,n),ot(i)(e.text,l,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+e.num},i,e.colour)};let et=-1;const Nt=function(t,e,i){const l=e.x+i.width/2,n=t.append("g");et++;const h=300+5*30;n.append("line").attr("id","task"+et).attr("x1",l).attr("y1",e.y).attr("x2",l).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Ft(n,{cx:l,cy:300+(5-e.score)*30,score:e.score});const c=it();c.x=e.x,c.y=e.y,c.fill=e.fill,c.width=i.width,c.height=i.height,c.class="task task-type-"+e.num,c.rx=3,c.ry=3,U(n,c);let f=e.x+14;e.people.forEach(y=>{const m=e.actors[y].color,g={cx:f,cy:e.y,r:7,fill:m,stroke:"#000",title:y,pos:e.actors[y].position};rt(n,g),f+=10}),ot(i)(e.task,n,c.x,c.y,c.width,c.height,{class:"task"},i,e.colour)},Bt=function(t,e){vt(t,e)},ot=function(){function t(n,h,c,f,y,m,g,p){const s=h.append("text").attr("x",c+y/2).attr("y",f+m/2+5).style("font-color",p).style("text-anchor","middle").text(n);l(s,g)}function e(n,h,c,f,y,m,g,p,s){const{taskFontSize:r,taskFontFamily:a}=p,u=n.split(//gi);for(let d=0;d{const n=M[l].color,h={cx:20,cy:i,r:7,fill:n,stroke:"#000",pos:M[l].position};L.drawCircle(t,h);const c={x:40,y:i+7,fill:"#666",text:l,textMargin:e.boxTextMargin|5};L.drawText(t,c),i+=20})}const j=I().journey,P=j.leftMargin,Ot=function(t,e,i,l){const n=I().journey,h=I().securityLevel;let c;h==="sandbox"&&(c=W("#i"+e));const f=h==="sandbox"?W(c.nodes()[0].contentDocument.body):W("body");v.init();const y=f.select("#"+e);L.initGraphics(y);const m=l.db.getTasks(),g=l.db.getDiagramTitle(),p=l.db.getActors();for(const o in M)delete M[o];let s=0;p.forEach(o=>{M[o]={color:n.actorColours[s%n.actorColours.length],position:s},s++}),Yt(y),v.insert(0,0,P,Object.keys(M).length*50),qt(y,m,0);const r=v.getBounds();g&&y.append("text").text(g).attr("x",P).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const a=r.stopy-r.starty+2*n.diagramMarginY,u=P+r.stopx+2*n.diagramMarginX;kt(y,a,u,n.useMaxWidth),y.append("line").attr("x1",P).attr("y1",n.height*4).attr("x2",u-P-4).attr("y2",n.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const d=g?70:0;y.attr("viewBox",`${r.startx} -25 ${u} ${a+d}`),y.attr("preserveAspectRatio","xMinYMin meet"),y.attr("height",a+d+25)},v={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,i,l){t[e]===void 0?t[e]=i:t[e]=l(i,t[e])},updateBounds:function(t,e,i,l){const n=I().journey,h=this;let c=0;function f(y){return function(g){c++;const p=h.sequenceItems.length-c+1;h.updateVal(g,"starty",e-p*n.boxMargin,Math.min),h.updateVal(g,"stopy",l+p*n.boxMargin,Math.max),h.updateVal(v.data,"startx",t-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopx",i+p*n.boxMargin,Math.max),y!=="activation"&&(h.updateVal(g,"startx",t-p*n.boxMargin,Math.min),h.updateVal(g,"stopx",i+p*n.boxMargin,Math.max),h.updateVal(v.data,"starty",e-p*n.boxMargin,Math.min),h.updateVal(v.data,"stopy",l+p*n.boxMargin,Math.max))}}this.sequenceItems.forEach(f())},insert:function(t,e,i,l){const n=Math.min(t,i),h=Math.max(t,i),c=Math.min(e,l),f=Math.max(e,l);this.updateVal(v.data,"startx",n,Math.min),this.updateVal(v.data,"starty",c,Math.min),this.updateVal(v.data,"stopx",h,Math.max),this.updateVal(v.data,"stopy",f,Math.max),this.updateBounds(n,c,h,f)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},X=j.sectionFills,st=j.sectionColours,qt=function(t,e,i){const l=I().journey;let n="";const h=l.height*2+l.diagramMarginY,c=i+h;let f=0,y="#CCC",m="black",g=0;for(const[p,s]of e.entries()){if(n!==s.section){y=X[f%X.length],g=f%X.length,m=st[f%st.length];let a=0;const u=s.section;for(let o=p;o(M[u]&&(a[u]=M[u]),a),{});s.x=p*l.taskMargin+p*l.width+P,s.y=c,s.width=l.diagramMarginX,s.height=l.diagramMarginY,s.colour=m,s.fill=y,s.num=g,s.actors=r,L.drawTask(t,s,l),v.insert(s.x,s.y,s.x+s.width+l.taskMargin,300+5*30)}},nt={setConf:zt,draw:Ot},Jt={parser:wt,db:tt,renderer:nt,styles:Vt,init:t=>{nt.setConf(t.journey),tt.clear()}};export{Jt as diagram}; diff --git a/docs/assets/chunks/layout.B9Jo_8FM.js b/docs/assets/chunks/layout.B9Jo_8FM.js new file mode 100644 index 0000000..0d2d0de --- /dev/null +++ b/docs/assets/chunks/layout.B9Jo_8FM.js @@ -0,0 +1 @@ +import{i as F,b as xn,a as zn,c as L,k as Un,d as Hn,e as Jn,g as P,j as En,l as kn,m as yn,t as Zn,n as Nn,o as jn,p as Kn,f as s,G as x,h as w,q as g,r as M,v as y,s as Y}from"./graph.CEI0PYYp.js";import{Q as A,af as Qn,ag as ne,ah as ee,a5 as Ln,ai as B,J as _n,Z as re,D as Cn,C as Z,a3 as te,aj as ie,a2 as j,a1 as ae,X as In,P as oe,a7 as ue,ak as H}from"../app.Dv4846sG.js";var de=/\s/;function fe(n){for(var e=n.length;e--&&de.test(n.charAt(e)););return e}var se=/^\s+/;function ce(n){return n&&n.slice(0,fe(n)+1).replace(se,"")}var un=NaN,he=/^[-+]0x[0-9a-f]+$/i,le=/^0b[01]+$/i,ve=/^0o[0-7]+$/i,pe=parseInt;function we(n){if(typeof n=="number")return n;if(F(n))return un;if(A(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=A(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=ce(n);var r=le.test(n);return r||ve.test(n)?pe(n.slice(2),r?2:8):he.test(n)?un:+n}var dn=1/0,me=17976931348623157e292;function S(n){if(!n)return n===0?n:0;if(n=we(n),n===dn||n===-dn){var e=n<0?-1:1;return e*me}return n===n?n:0}function be(n){var e=S(n),r=e%1;return e===e?r?e-r:e:0}function _(n){var e=n==null?0:n.length;return e?xn(n,1):[]}function ge(n){return Qn(ne(n,void 0,_),n+"")}var xe=1,Ee=4;function ke(n){return zn(n,xe|Ee)}var fn=function(){return ee.Date.now()},Rn=Object.prototype,ye=Rn.hasOwnProperty,Ne=Ln(function(n,e){n=Object(n);var r=-1,t=e.length,i=t>2?e[2]:void 0;for(i&&B(e[0],e[1],i)&&(t=1);++r-1?i[o?e[a]:a]:void 0}}var Ce=Math.max;function Ie(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:be(r);return i<0&&(i=Ce(t+i,0)),Hn(n,L(e),i)}var K=_e(Ie);function Tn(n,e){var r=-1,t=Cn(n)?Array(n.length):[];return Jn(n,function(i,o,a){t[++r]=e(i,o,a)}),t}function m(n,e){var r=Z(n)?P:Tn;return r(n,L(e))}function Re(n,e){return n==null?n:te(n,En(e),_n)}function Te(n,e){return n&&kn(n,En(e))}function Me(n,e){return n>e}function Mn(n,e){return ne||o&&a&&d&&!u&&!f||t&&a&&d||!r&&d||!i)return 1;if(!t&&!o&&!f&&n=u)return d;var f=r[t];return d*(f=="desc"?-1:1)}}return n.index-e.index}function Be(n,e,r){e.length?e=P(e,function(o){return Z(o)?function(a){return Nn(a,o.length===1?o[0]:o)}:o}):e=[j];var t=-1;e=P(e,oe(L));var i=Tn(n,function(o,a,u){var d=P(e,function(f){return f(o)});return{criteria:d,index:++t,value:o}});return Se(i,function(o,a){return Ae(o,a,r)})}function Ge(n,e){return Pe(n,e,function(r,t){return jn(n,t)})}var V=ge(function(n,e){return n==null?{}:Ge(n,e)}),Ve=Math.ceil,Ye=Math.max;function $e(n,e,r,t){for(var i=-1,o=Ye(Ve((e-n)/(r||1)),0),a=Array(o);o--;)a[t?o:++i]=n,n+=r;return a}function De(n){return function(e,r,t){return t&&typeof t!="number"&&B(e,r,t)&&(r=t=void 0),e=S(e),r===void 0?(r=e,e=0):r=S(r),t=t===void 0?e1&&B(n,e[0],e[1])?e=[]:r>2&&B(e[0],e[1],e[2])&&(e=[e[0]]),Be(n,xn(e,1),[])}),qe=0;function en(n){var e=++qe;return Kn(n)+e}function We(n,e,r){for(var t=-1,i=n.length,o=e.length,a={};++t0;--u)if(a=e[u].dequeue(),a){t=t.concat(q(n,e,r,a,!0));break}}}return t}function q(n,e,r,t,i){var o=i?[]:void 0;return s(n.inEdges(t.v),function(a){var u=n.edge(a),d=n.node(a.v);i&&o.push({v:a.v,w:a.w}),d.out-=u,J(e,r,d)}),s(n.outEdges(t.v),function(a){var u=n.edge(a),d=a.w,f=n.node(d);f.in-=u,J(e,r,f)}),n.removeNode(t.v),o}function je(n,e){var r=new x,t=0,i=0;s(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),s(n.edges(),function(u){var d=r.edge(u.v,u.w)||0,f=e(u),c=d+f;r.setEdge(u.v,u.w,c),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var o=N(i+t+3).map(function(){return new ze}),a=t+1;return s(r.nodes(),function(u){J(o,a,r.node(u))}),{graph:r,buckets:o,zeroIdx:a}}function J(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function Ke(n){var e=n.graph().acyclicer==="greedy"?Je(n,r(n)):Qe(n);s(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,en("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function Qe(n){var e=[],r={},t={};function i(o){w(t,o)||(t[o]=!0,r[o]=!0,s(n.outEdges(o),function(a){w(r,a.w)?e.push(a):i(a.w)}),delete r[o])}return s(n.nodes(),i),e}function nr(n){s(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function C(n,e,r,t){var i;do i=en(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function er(n){var e=new x().setGraph(n.graph());return s(n.nodes(),function(r){e.setNode(r,n.node(r))}),s(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function On(n){var e=new x({multigraph:n.isMultigraph()}).setGraph(n.graph());return s(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),s(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function cn(n,e){var r=n.x,t=n.y,i=e.x-r,o=e.y-t,a=n.width/2,u=n.height/2;if(!i&&!o)throw new Error("Not possible to find intersection inside of the rectangle");var d,f;return Math.abs(o)*a>Math.abs(i)*u?(o<0&&(u=-u),d=u*i/o,f=u):(i<0&&(a=-a),d=a,f=a*o/i),{x:r+d,y:t+f}}function D(n){var e=m(N(Pn(n)+1),function(){return[]});return s(n.nodes(),function(r){var t=n.node(r),i=t.rank;g(i)||(e[i][t.order]=r)}),e}function rr(n){var e=R(m(n.nodes(),function(r){return n.node(r).rank}));s(n.nodes(),function(r){var t=n.node(r);w(t,"rank")&&(t.rank-=e)})}function tr(n){var e=R(m(n.nodes(),function(o){return n.node(o).rank})),r=[];s(n.nodes(),function(o){var a=n.node(o).rank-e;r[a]||(r[a]=[]),r[a].push(o)});var t=0,i=n.graph().nodeRankFactor;s(r,function(o,a){g(o)&&a%i!==0?--t:t&&s(o,function(u){n.node(u).rank+=t})})}function hn(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),C(n,"border",i,e)}function Pn(n){return E(m(n.nodes(),function(e){var r=n.node(e).rank;if(!g(r))return r}))}function ir(n,e){var r={lhs:[],rhs:[]};return s(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function ar(n,e){var r=fn();try{return e()}finally{console.log(n+" time: "+(fn()-r)+"ms")}}function or(n,e){return e()}function ur(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&s(t,e),w(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var o=i.minRank,a=i.maxRank+1;oa.lim&&(u=a,d=!0);var f=M(e.edges(),function(c){return d===pn(n,n.node(c.v),u)&&d!==pn(n,n.node(c.w),u)});return nn(f,function(c){return T(e,c)})}function Dn(n,e,r,t){var i=r.v,o=r.w;n.removeEdge(i,o),n.setEdge(t.v,t.w,{}),an(n),tn(n,e),kr(n,e)}function kr(n,e){var r=K(n.nodes(),function(i){return!e.node(i).parent}),t=xr(n,r);t=t.slice(1),s(t,function(i){var o=n.node(i).parent,a=e.edge(i,o),u=!1;a||(a=e.edge(o,i),u=!0),e.node(i).rank=e.node(o).rank+(u?a.minlen:-a.minlen)})}function yr(n,e,r){return n.hasEdge(e,r)}function pn(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function Nr(n){switch(n.graph().ranker){case"network-simplex":wn(n);break;case"tight-tree":_r(n);break;case"longest-path":Lr(n);break;default:wn(n)}}var Lr=rn;function _r(n){rn(n),Fn(n)}function wn(n){k(n)}function Cr(n){var e=C(n,"root",{},"_root"),r=Ir(n),t=E(y(r))-1,i=2*t+1;n.graph().nestingRoot=e,s(n.edges(),function(a){n.edge(a).minlen*=i});var o=Rr(n)+1;s(n.children(),function(a){qn(n,e,i,o,t,r,a)}),n.graph().nodeRankFactor=i}function qn(n,e,r,t,i,o,a){var u=n.children(a);if(!u.length){a!==e&&n.setEdge(e,a,{weight:0,minlen:r});return}var d=hn(n,"_bt"),f=hn(n,"_bb"),c=n.node(a);n.setParent(d,a),c.borderTop=d,n.setParent(f,a),c.borderBottom=f,s(u,function(h){qn(n,e,r,t,i,o,h);var l=n.node(h),v=l.borderTop?l.borderTop:h,p=l.borderBottom?l.borderBottom:h,b=l.borderTop?t:2*t,I=v!==p?1:i-o[a]+1;n.setEdge(d,v,{weight:b,minlen:I,nestingEdge:!0}),n.setEdge(p,f,{weight:b,minlen:I,nestingEdge:!0})}),n.parent(a)||n.setEdge(e,d,{weight:0,minlen:i+o[a]})}function Ir(n){var e={};function r(t,i){var o=n.children(t);o&&o.length&&s(o,function(a){r(a,i+1)}),e[t]=i}return s(n.children(),function(t){r(t,1)}),e}function Rr(n){return Y(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function Tr(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,s(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Mr(n,e,r){var t={},i;s(r,function(o){for(var a=n.parent(o),u,d;a;){if(u=n.parent(a),u?(d=t[u],t[u]=a):(d=i,i=a),d&&d!==a){e.setEdge(d,a);return}a=u}})}function Or(n,e,r){var t=Pr(n),i=new x({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(o){return n.node(o)});return s(n.nodes(),function(o){var a=n.node(o),u=n.parent(o);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(o),i.setParent(o,u||t),s(n[r](o),function(d){var f=d.v===o?d.w:d.v,c=i.edge(f,o),h=g(c)?0:c.weight;i.setEdge(f,o,{weight:n.edge(d).weight+h})}),w(a,"minRank")&&i.setNode(o,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function Pr(n){for(var e;n.hasNode(e=en("_root")););return e}function Sr(n,e){for(var r=0,t=1;t0;)c%2&&(h+=u[c+1]),c=c-1>>1,u[c]+=f.weight;d+=f.weight*h})),d}function Ar(n){var e={},r=M(n.nodes(),function(u){return!n.children(u).length}),t=E(m(r,function(u){return n.node(u).rank})),i=m(N(t+1),function(){return[]});function o(u){if(!w(e,u)){e[u]=!0;var d=n.node(u);i[d.rank].push(u),s(n.successors(u),o)}}var a=O(r,function(u){return n.node(u).rank});return s(a,o),i}function Br(n,e){return m(e,function(r){var t=n.inEdges(r);if(t.length){var i=Y(t,function(o,a){var u=n.edge(a),d=n.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function Gr(n,e){var r={};s(n,function(i,o){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};g(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),s(e.edges(),function(i){var o=r[i.v],a=r[i.w];!g(o)&&!g(a)&&(a.indegree++,o.out.push(r[i.w]))});var t=M(r,function(i){return!i.indegree});return Vr(t)}function Vr(n){var e=[];function r(o){return function(a){a.merged||(g(a.barycenter)||g(o.barycenter)||a.barycenter>=o.barycenter)&&Yr(o,a)}}function t(o){return function(a){a.in.push(o),--a.indegree===0&&n.push(a)}}for(;n.length;){var i=n.pop();e.push(i),s(i.in.reverse(),r(i)),s(i.out,t(i))}return m(M(e,function(o){return!o.merged}),function(o){return V(o,["vs","i","barycenter","weight"])})}function Yr(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function $r(n,e){var r=ir(n,function(c){return w(c,"barycenter")}),t=r.lhs,i=O(r.rhs,function(c){return-c.i}),o=[],a=0,u=0,d=0;t.sort(Dr(!!e)),d=mn(o,i,d),s(t,function(c){d+=c.vs.length,o.push(c.vs),a+=c.barycenter*c.weight,u+=c.weight,d=mn(o,i,d)});var f={vs:_(o)};return u&&(f.barycenter=a/u,f.weight=u),f}function mn(n,e,r){for(var t;e.length&&(t=G(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function Dr(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function Wn(n,e,r,t){var i=n.children(e),o=n.node(e),a=o?o.borderLeft:void 0,u=o?o.borderRight:void 0,d={};a&&(i=M(i,function(p){return p!==a&&p!==u}));var f=Br(n,i);s(f,function(p){if(n.children(p.v).length){var b=Wn(n,p.v,r,t);d[p.v]=b,w(b,"barycenter")&&Wr(p,b)}});var c=Gr(f,r);qr(c,d);var h=$r(c,t);if(a&&(h.vs=_([a,h.vs,u]),n.predecessors(a).length)){var l=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(u)[0]);w(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+v.order)/(h.weight+2),h.weight+=2}return h}function qr(n,e){s(n,function(r){r.vs=_(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function Wr(n,e){g(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function Xr(n){var e=Pn(n),r=bn(n,N(1,e+1),"inEdges"),t=bn(n,N(e-1,-1,-1),"outEdges"),i=Ar(n);gn(n,i);for(var o=Number.POSITIVE_INFINITY,a,u=0,d=0;d<4;++u,++d){zr(u%2?r:t,u%4>=2),i=D(n);var f=Sr(n,i);fa||u>e[d].lim));for(f=d,d=t;(d=n.parent(d))!==f;)o.push(d);return{path:i.concat(o.reverse()),lca:f}}function Jr(n){var e={},r=0;function t(i){var o=r;s(n.children(i),t),e[i]={low:o,lim:r++}}return s(n.children(),t),e}function Zr(n,e){var r={};function t(i,o){var a=0,u=0,d=i.length,f=G(o);return s(o,function(c,h){var l=Kr(n,c),v=l?n.node(l).order:d;(l||c===f)&&(s(o.slice(u,h+1),function(p){s(n.predecessors(p),function(b){var I=n.node(b),on=I.order;(onf)&&Xn(r,l,c)})})}function i(o,a){var u=-1,d,f=0;return s(a,function(c,h){if(n.node(c).dummy==="border"){var l=n.predecessors(c);l.length&&(d=n.node(l[0]).order,t(a,f,h,u,d),f=h,u=d)}t(a,f,a.length,d,o.length)}),a}return Y(e,i),r}function Kr(n,e){if(n.node(e).dummy)return K(n.predecessors(e),function(r){return n.node(r).dummy})}function Xn(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function Qr(n,e,r){if(e>r){var t=e;e=r,r=t}return w(n[e],r)}function nt(n,e,r,t){var i={},o={},a={};return s(e,function(u){s(u,function(d,f){i[d]=d,o[d]=d,a[d]=f})}),s(e,function(u){var d=-1;s(u,function(f){var c=t(f);if(c.length){c=O(c,function(b){return a[b]});for(var h=(c.length-1)/2,l=Math.floor(h),v=Math.ceil(h);l<=v;++l){var p=c[l];o[f]===f&&dt?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=$,e=(u,c)=>$(n(u),c),r=(u,c)=>n(u)-c):(t=n===$||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_($),dn=sn.right;_(ln).center;const gn=Math.sqrt(50),yn=Math.sqrt(10),Mn=Math.sqrt(2);function E(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=gn?10:f>=yn?5:f>=Mn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function R(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=R(Math.abs(n)),n?n[1]:NaN}function jn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function Pn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var zn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=zn.exec(n)))throw new Error("invalid format: "+n);var t;return new G({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=G.prototype;function G(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}G.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function $n(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+R(n,Math.max(0,t+f-1))[0]}function Z(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const H={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:bn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Z(n*100,t),r:Z,s:$n,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:jn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:Pn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,T=h.comma,w=h.precision,B=h.trim,d=h.type;d==="n"?(T=!0,d="g"):H[d]||(w===void 0&&(w=12),B=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=H[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),B&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}T&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var F,tn,rn;Rn({thousands:",",grouping:[3],currency:["$",""]});function Rn(n){return F=En(n),tn=F.format,rn=F.formatPrefix,F}function Dn(n){return Math.max(0,-v(Math.abs(n)))}function Tn(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Cn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function In(n){return function(){return n}}function Ln(n){return+n}var W=[0,1];function A(n){return n}function L(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:In(isNaN(t)?NaN:.5)}function qn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?Bn:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),C)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,Ln),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=Sn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Xn(){return Vn()(A,A)}function Un(n,t,e,r){var i=wn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=Tn(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Cn(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Dn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Yn(n){var t=n.domain;return n.ticks=function(e){var r=t();return pn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Un(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=I(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Zn(){var n=Xn();return n.copy=function(){return On(n,Zn())},cn.apply(n,arguments),Yn(n)}export{On as a,_ as b,Xn as c,Zn as l,wn as t}; diff --git a/docs/assets/chunks/mindmap-definition-377f8f1f.B9TexoUI.js b/docs/assets/chunks/mindmap-definition-377f8f1f.B9TexoUI.js new file mode 100644 index 0000000..e3149be --- /dev/null +++ b/docs/assets/chunks/mindmap-definition-377f8f1f.B9TexoUI.js @@ -0,0 +1,109 @@ +import{b0 as Vt,b1 as Ys,l as ur,c as Qn,aH as _l,t as Ul,aJ as _a,d as Ua,h as Hl,b3 as Yl,b4 as Xl,b5 as Wl,aL as ql}from"../app.Dv4846sG.js";import{c as Kl}from"./createText-423428c9.B39V2kZ0.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";function Zl(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var la=Zl,Ql=typeof Vt=="object"&&Vt&&Vt.Object===Object&&Vt,Jl=Ql,jl=Jl,eu=typeof self=="object"&&self&&self.Object===Object&&self,tu=jl||eu||Function("return this")(),tn=tu,ru=tn,au=function(){return ru.Date.now()},nu=au,iu=/\s/;function su(t){for(var e=t.length;e--&&iu.test(t.charAt(e)););return e}var ou=su,lu=ou,uu=/^\s+/;function fu(t){return t&&t.slice(0,lu(t)+1).replace(uu,"")}var hu=fu,vu=tn,cu=vu.Symbol,Jn=cu,Li=Jn,Xs=Object.prototype,du=Xs.hasOwnProperty,gu=Xs.toString,Vr=Li?Li.toStringTag:void 0;function pu(t){var e=du.call(t,Vr),r=t[Vr];try{t[Vr]=void 0;var a=!0}catch{}var n=gu.call(t);return a&&(e?t[Vr]=r:delete t[Vr]),n}var yu=pu,mu=Object.prototype,bu=mu.toString;function Eu(t){return bu.call(t)}var wu=Eu,Ai=Jn,xu=yu,Tu=wu,Cu="[object Null]",Du="[object Undefined]",Oi=Ai?Ai.toStringTag:void 0;function Su(t){return t==null?t===void 0?Du:Cu:Oi&&Oi in Object(t)?xu(t):Tu(t)}var Ws=Su;function Lu(t){return t!=null&&typeof t=="object"}var Au=Lu,Ou=Ws,Nu=Au,Iu="[object Symbol]";function Mu(t){return typeof t=="symbol"||Nu(t)&&Ou(t)==Iu}var ua=Mu,Ru=hu,Ni=la,ku=ua,Ii=NaN,Pu=/^[-+]0x[0-9a-f]+$/i,Bu=/^0b[01]+$/i,Fu=/^0o[0-7]+$/i,Gu=parseInt;function zu(t){if(typeof t=="number")return t;if(ku(t))return Ii;if(Ni(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Ni(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Ru(t);var r=Bu.test(t);return r||Fu.test(t)?Gu(t.slice(2),r?2:8):Pu.test(t)?Ii:+t}var $u=zu,Vu=la,Tn=nu,Mi=$u,_u="Expected a function",Uu=Math.max,Hu=Math.min;function Yu(t,e,r){var a,n,i,s,o,l,u=0,f=!1,h=!1,c=!0;if(typeof t!="function")throw new TypeError(_u);e=Mi(e)||0,Vu(r)&&(f=!!r.leading,h="maxWait"in r,i=h?Uu(Mi(r.maxWait)||0,e):i,c="trailing"in r?!!r.trailing:c);function v(S){var b=a,x=n;return a=n=void 0,u=S,s=t.apply(x,b),s}function d(S){return u=S,o=setTimeout(y,e),f?v(S):s}function g(S){var b=S-l,x=S-u,w=e-b;return h?Hu(w,i-x):w}function p(S){var b=S-l,x=S-u;return l===void 0||b>=e||b<0||h&&x>=i}function y(){var S=Tn();if(p(S))return E(S);o=setTimeout(y,g(S))}function E(S){return o=void 0,c&&a?v(S):(a=n=void 0,s)}function m(){o!==void 0&&clearTimeout(o),u=0,a=l=n=o=void 0}function T(){return o===void 0?s:E(Tn())}function C(){var S=Tn(),b=p(S);if(a=arguments,n=this,l=S,b){if(o===void 0)return d(l);if(h)return clearTimeout(o),o=setTimeout(y,e),v(l)}return o===void 0&&(o=setTimeout(y,e)),s}return C.cancel=m,C.flush=T,C}var Xu=Yu,qs={exports:{}};(function(t,e){(function(){var r,a,n,i,s,o,l,u,f,h,c,v,d,g,p;n=Math.floor,h=Math.min,a=function(y,E){return yE?1:0},f=function(y,E,m,T,C){var S;if(m==null&&(m=0),C==null&&(C=a),m<0)throw new Error("lo must be non-negative");for(T==null&&(T=y.length);mD;0<=D?w++:w--)x.push(w);return x}).apply(this).reverse(),b=[],T=0,C=S.length;TA;0<=A?++x:--x)L.push(s(y,m));return L},g=function(y,E,m,T){var C,S,b;for(T==null&&(T=a),C=y[m];m>E;){if(b=m-1>>1,S=y[b],T(C,S)<0){y[m]=S,m=b;continue}break}return y[m]=C},p=function(y,E,m){var T,C,S,b,x;for(m==null&&(m=a),C=y.length,x=E,S=y[E],T=2*E+1;T-1}var Sh=Dh,Lh=nn;function Ah(t,e){var r=this.__data__,a=Lh(r,t);return a<0?(++this.size,r.push([t,e])):r[a][1]=e,this}var Oh=Ah,Nh=vh,Ih=Eh,Mh=Th,Rh=Sh,kh=Oh;function Nr(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&tt.length)&&(e=t.length);for(var r=0,a=new Array(e);r"u"?null:window,Ui=$e?$e.navigator:null;$e&&$e.document;var Gc=Ue(""),ao=Ue({}),zc=Ue(function(){}),$c=typeof HTMLElement>"u"?"undefined":Ue(HTMLElement),va=function(e){return e&&e.instanceString&&Be(e.instanceString)?e.instanceString():null},ve=function(e){return e!=null&&Ue(e)==Gc},Be=function(e){return e!=null&&Ue(e)===zc},Me=function(e){return!ht(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},De=function(e){return e!=null&&Ue(e)===ao&&!Me(e)&&e.constructor===Object},Vc=function(e){return e!=null&&Ue(e)===ao},ae=function(e){return e!=null&&Ue(e)===Ue(1)&&!isNaN(e)},_c=function(e){return ae(e)&&Math.floor(e)===e},Ha=function(e){if($c!=="undefined")return e!=null&&e instanceof HTMLElement},ht=function(e){return ca(e)||no(e)},ca=function(e){return va(e)==="collection"&&e._private.single},no=function(e){return va(e)==="collection"&&!e._private.single},ni=function(e){return va(e)==="core"},io=function(e){return va(e)==="stylesheet"},Uc=function(e){return va(e)==="event"},Yt=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},Hc=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},Yc=function(e){return De(e)&&ae(e.x1)&&ae(e.x2)&&ae(e.y1)&&ae(e.y2)},Xc=function(e){return Vc(e)&&Be(e.then)},Wc=function(){return Ui&&Ui.userAgent.match(/msie|trident|edge/i)},Jr=function(e,r){r||(r=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;sr?1:0},ed=function(e,r){return-1*oo(e,r)},de=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(p-=1),p<1/6?d+(g-d)*6*p:p<1/2?g:p<2/3?d+(g-d)*(2/3-p)*6:d}var h=new RegExp("^"+Zc+"$").exec(e);if(h){if(a=parseInt(h[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(h[2]),n<0||n>100||(n=n/100,i=parseFloat(h[3]),i<0||i>100)||(i=i/100,s=h[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var c=i<.5?i*(1+n):i+n-i*n,v=2*i-c;o=Math.round(255*f(v,c,a+1/3)),l=Math.round(255*f(v,c,a)),u=Math.round(255*f(v,c,a-1/3))}r=[o,l,u,s]}return r},ad=function(e){var r,a=new RegExp("^"+qc+"$").exec(e);if(a){r=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var o=n[1]||n[2]||n[3],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;r.push(u)}}return r},nd=function(e){return sd[e.toLowerCase()]},id=function(e){return(Me(e)?e:null)||nd(e)||td(e)||ad(e)||rd(e)},sd={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]},lo=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i1&&arguments[1]!==void 0?arguments[1]:br,a=r,n;n=e.next(),!n.done;)a=a*ho+n.value|0;return a},jr=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:br;return r*ho+e|0},ea=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Xr;return(r<<5)+r+e|0},ld=function(e,r){return e*2097152+r},Gt=function(e){return e[0]*2097152+e[1]},Ta=function(e,r){return[jr(e[0],r[0]),ea(e[1],r[1])]},ud=function(e,r){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0&&!(e[n]===r&&(e.splice(n,1),a));n--);},li=function(e){e.splice(0,e.length)},pd=function(e,r){for(var a=0;a"u"?"undefined":Ue(Set))!==md?Set:bd,un=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!ni(e)){Ge("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Ge("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:r.data||{},position:r.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:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new Mr,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),r.renderedPosition){var s=r.renderedPosition,o=e.pan(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];Me(r.classes)?u=r.classes:ve(r.classes)&&(u=r.classes.split(/\s+/));for(var f=0,h=u.length;f0;){var S=E.pop(),b=p(S),x=S.id();if(c[x]=b,b!==1/0)for(var w=S.neighborhood().intersect(d),D=0;D0)for(k.unshift(M);h[G];){var F=h[G];k.unshift(F.edge),k.unshift(F.node),B=F.node,G=B.id()}return o.spawn(k)}}}},xd={kruskal:function(e){e=e||function(m){return 1};for(var r=this.byGroup(),a=r.nodes,n=r.edges,i=a.length,s=new Array(i),o=a,l=function(T){for(var C=0;C0;){if(C(),b++,T===f){for(var x=[],w=i,D=f,A=y[D];x.unshift(w),A!=null&&x.unshift(A),w=p[D],w!=null;)D=w.id(),A=y[D];return{found:!0,distance:h[T],path:this.spawn(x),steps:b}}v[T]=!0;for(var L=m._private.edges,I=0;IA&&(d[D]=A,E[D]=w,m[D]=C),!i){var L=w*f+x;!i&&d[L]>A&&(d[L]=A,E[L]=x,m[L]=C)}}}for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:s,xe=m(se),Ee=[],ge=xe;;){if(ge==null)return r.spawn();var we=E(ge),H=we.edge,N=we.pred;if(Ee.unshift(ge[0]),ge.same(fe)&&Ee.length>0)break;H!=null&&Ee.unshift(H),ge=N}return l.spawn(Ee)},S=0;S=0;f--){var h=u[f],c=h[1],v=h[2];(r[c]===o&&r[v]===l||r[c]===l&&r[v]===o)&&u.splice(f,1)}for(var d=0;dn;){var i=Math.floor(Math.random()*r.length);r=Nd(i,e,r),a--}return r},Id={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(k){return k.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/Od);if(i<2){Ge("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=r;s1&&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;n?e=e.slice(r,a):(a0&&e.splice(0,r));for(var o=0,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(c,v){return c-v});var f=e.length,h=Math.floor(f/2);return f%2!==0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},Fd=function(e){return Math.PI*e/180},Ca=function(e,r){return Math.atan2(r,e)-Math.PI/2},ui=Math.log2||function(t){return Math.log(t)/Math.log(2)},Eo=function(e){return e>0?1:e<0?-1:0},nr=function(e,r){return Math.sqrt(er(e,r))},er=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},Gd=function(e){for(var r=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},$d=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Vd=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},_d=function(e,r,a){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}},wo=function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},Ud=function(e,r,a){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},ka=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Pa=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(r.length===1)a=n=i=s=r[0];else if(r.length===2)a=i=r[0],s=n=r[1];else if(r.length===4){var o=Et(r,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},qi=function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},fi=function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},Sr=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},Hd=function(e,r){return Sr(e,r.x,r.y)},xo=function(e,r){return Sr(e,r.x1,r.y1)&&Sr(e,r.x2,r.y2)},To=function(e,r,a,n,i,s,o){var l=da(i,s),u=i/2,f=s/2,h;{var c=a-u+l-o,v=n-f-o,d=a+u-l+o,g=v;if(h=_t(e,r,a,n,c,v,d,g,!1),h.length>0)return h}{var p=a+u+o,y=n-f+l-o,E=p,m=n+f-l+o;if(h=_t(e,r,a,n,p,y,E,m,!1),h.length>0)return h}{var T=a-u+l-o,C=n+f+o,S=a+u-l+o,b=C;if(h=_t(e,r,a,n,T,C,S,b,!1),h.length>0)return h}{var x=a-u-o,w=n-f+l-o,D=x,A=n+f-l+o;if(h=_t(e,r,a,n,x,w,D,A,!1),h.length>0)return h}var L;{var I=a-u+l,O=n-f+l;if(L=Wr(e,r,a,n,I,O,l+o),L.length>0&&L[0]<=I&&L[1]<=O)return[L[0],L[1]]}{var P=a+u-l,R=n-f+l;if(L=Wr(e,r,a,n,P,R,l+o),L.length>0&&L[0]>=P&&L[1]<=R)return[L[0],L[1]]}{var M=a+u-l,k=n+f-l;if(L=Wr(e,r,a,n,M,k,l+o),L.length>0&&L[0]>=M&&L[1]>=k)return[L[0],L[1]]}{var B=a-u+l,G=n+f-l;if(L=Wr(e,r,a,n,B,G,l+o),L.length>0&&L[0]<=B&&L[1]>=G)return[L[0],L[1]]}return[]},Yd=function(e,r,a,n,i,s,o){var l=o,u=Math.min(a,i),f=Math.max(a,i),h=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=f+l&&h-l<=r&&r<=c+l},Xd=function(e,r,a,n,i,s,o,l,u){var f={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(ef.x2||rf.y2)},Wd=function(e,r,a,n){a-=n;var i=r*r-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,l=(-r+s)/o,u=(-r-s)/o;return[l,u]},qd=function(e,r,a,n,i){var s=1e-5;e===0&&(e=s),r/=e,a/=e,n/=e;var o,l,u,f,h,c,v,d;if(l=(3*a-r*r)/9,u=-(27*n)+r*(9*a-2*(r*r)),u/=54,o=l*l*l+u*u,i[1]=0,v=r/3,o>0){h=u+Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),c=u-Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-v+h+c,v+=(h+c)/2,i[4]=i[2]=-v,v=Math.sqrt(3)*(-c+h)/2,i[3]=v,i[5]=-v;return}if(i[5]=i[3]=0,o===0){d=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-v+2*d,i[4]=i[2]=-(d+v);return}l=-l,f=l*l*l,f=Math.acos(u/Math.sqrt(f)),d=2*Math.sqrt(l),i[0]=-v+d*Math.cos(f/3),i[2]=-v+d*Math.cos((f+2*Math.PI)/3),i[4]=-v+d*Math.cos((f+4*Math.PI)/3)},Kd=function(e,r,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,f=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,h=1*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*l-n*r+2*s*s+2*s*r-l*r,c=1*a*i-a*a+a*e-i*e+n*s-n*n+n*r-s*r,v=[];qd(u,f,h,c,v);for(var d=1e-7,g=[],p=0;p<6;p+=2)Math.abs(v[p+1])=0&&v[p]<=1&&g.push(v[p]);g.push(1),g.push(0);for(var y=-1,E,m,T,C=0;C=0?Tu?(e-i)*(e-i)+(r-s)*(r-s):f-c},ut=function(e,r,a){for(var n,i,s,o,l,u=0,f=0;f=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>r&&u++;else continue;return u%2!==0},Rt=function(e,r,a,n,i,s,o,l,u){var f=new Array(a.length),h;l[0]!=null?(h=Math.atan(l[1]/l[0]),l[0]<0?h=h+Math.PI/2:h=-h-Math.PI/2):h=l;for(var c=Math.cos(-h),v=Math.sin(-h),d=0;d0){var p=qa(f,-u);g=Wa(p)}else g=f;return ut(e,r,g)},Qd=function(e,r,a,n,i,s,o){for(var l=new Array(a.length),u=s/2,f=o/2,h=hi(s,o),c=h*h,v=0;v=0&&p<=1&&E.push(p),y>=0&&y<=1&&E.push(y),E.length===0)return[];var m=E[0]*l[0]+e,T=E[0]*l[1]+r;if(E.length>1){if(E[0]==E[1])return[m,T];var C=E[1]*l[0]+e,S=E[1]*l[1]+r;return[m,T,C,S]}else return[m,T]},Ln=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},_t=function(e,r,a,n,i,s,o,l,u){var f=e-i,h=a-e,c=o-i,v=r-s,d=n-r,g=l-s,p=c*v-g*f,y=h*v-d*f,E=g*h-c*d;if(E!==0){var m=p/E,T=y/E,C=.001,S=0-C,b=1+C;return S<=m&&m<=b&&S<=T&&T<=b?[e+m*h,r+m*d]:u?[e+m*h,r+m*d]:[]}else return p===0||y===0?Ln(e,a,o)===o?[o,l]:Ln(e,a,i)===i?[i,s]:Ln(i,o,a)===a?[a,n]:[]:[]},aa=function(e,r,a,n,i,s,o,l){var u=[],f,h=new Array(a.length),c=!0;s==null&&(c=!1);var v;if(c){for(var d=0;d0){var g=qa(h,-l);v=Wa(g)}else v=h}else v=a;for(var p,y,E,m,T=0;T2){for(var R=[u[0],u[1]],M=Math.pow(R[0]-e,2)+Math.pow(R[1]-r,2),k=1;kf&&(f=T)},get:function(m){return u[m]}},c=0;c0?R=P.edgesTo(O)[0]:R=O.edgesTo(P)[0];var M=n(R);O=O.id(),x[O]>x[L]+M&&(x[O]=x[L]+M,w.nodes.indexOf(O)<0?w.push(O):w.updateItem(O),b[O]=0,S[O]=[]),x[O]==x[L]+M&&(b[O]=b[O]+b[L],S[O].push(L))}else for(var k=0;k0;){for(var $=C.pop(),U=0;U0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},cg=function(e,r){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:pg,o=n,l,u,f=0;f=2?_r(e,r,a,0,ji,yg):_r(e,r,a,0,Ji)},squaredEuclidean:function(e,r,a){return _r(e,r,a,0,ji)},manhattan:function(e,r,a){return _r(e,r,a,0,Ji)},max:function(e,r,a){return _r(e,r,a,-1/0,mg)}};Lr["squared-euclidean"]=Lr.squaredEuclidean;Lr.squaredeuclidean=Lr.squaredEuclidean;function hn(t,e,r,a,n,i){var s;return Be(t)?s=t:s=Lr[t]||Lr.euclidean,e===0&&Be(t)?s(n,i):s(e,r,a,n,i)}var bg=Qe({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),vi=function(e){return bg(e)},Ka=function(e,r,a,n,i){var s=i!=="kMedoids",o=s?function(h){return a[h]}:function(h){return n[h](a)},l=function(c){return n[c](r)},u=a,f=r;return hn(e,n.length,o,l,u,f)},An=function(e,r,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(r),l=null,u=0;ua)return!1}return!0},xg=function(e,r,a){for(var n=0;no&&(o=r[u][f],l=f);i[l].push(e[u])}for(var h=0;h=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var d=r[s],g=r[n[s]],p;i.mode==="dendrogram"?p={left:d,right:g,key:d.key}:p={value:d.value.concat(g.value),key:d.key},e[d.index]=p,e.splice(g.index,1),r[d.key]=p;for(var y=0;ya[g.key][E.key]&&(l=a[g.key][E.key])):i.linkage==="max"?(l=a[d.key][E.key],a[d.key][E.key]0&&n.push(i);return n},is=function(e,r,a){for(var n=[],i=0;io&&(s=u,o=r[i*e+u])}s>0&&n.push(s)}for(var f=0;fu&&(l=f,u=h)}a[i]=s[l]}return n=is(e,r,a),n},ss=function(e){for(var r=this.cy(),a=this.nodes(),n=Bg(e),i={},s=0;s=A?(L=A,A=O,I=P):O>L&&(L=O);for(var R=0;R0?1:0;b[w%n.minIterations*o+$]=U,F+=U}if(F>0&&(w>=n.minIterations-1||w==n.maxIterations-1)){for(var _=0,Y=0;Y1||S>1)&&(o=!0),h[m]=[],E.outgoers().forEach(function(x){x.isEdge()&&h[m].push(x.id())})}else c[m]=[void 0,E.target().id()]}):s.forEach(function(E){var m=E.id();if(E.isNode()){var T=E.degree(!0);T%2&&(l?u?o=!0:u=m:l=m),h[m]=[],E.connectedEdges().forEach(function(C){return h[m].push(C.id())})}else c[m]=[E.source().id(),E.target().id()]});var v={found:!1,trail:void 0};if(o)return v;if(u&&l)if(i){if(f&&u!=f)return v;f=u}else{if(f&&u!=f&&l!=f)return v;f||(f=u)}else f||(f=s[0].id());var d=function(m){for(var T=m,C=[m],S,b,x;h[T].length;)S=h[T].shift(),b=c[S][0],x=c[S][1],T!=x?(h[x]=h[x].filter(function(w){return w!=S}),T=x):!i&&T!=b&&(h[b]=h[b].filter(function(w){return w!=S}),T=b),C.unshift(S),C.unshift(T);return C},g=[],p=[];for(p=d(f);p.length!=1;)h[p[0]].length==0?(g.unshift(s.getElementById(p.shift())),g.unshift(s.getElementById(p.shift()))):p=d(p.shift()).concat(p);g.unshift(s.getElementById(p.shift()));for(var y in h)if(h[y].length)return v;return v.found=!0,v.trail=this.spawn(g,!0),v}},La=function(){var e=this,r={},a=0,n=0,i=[],s=[],o={},l=function(c,v){for(var d=s.length-1,g=[],p=e.spawn();s[d].x!=c||s[d].y!=v;)g.push(s.pop().edge),d--;g.push(s.pop().edge),g.forEach(function(y){var E=y.connectedNodes().intersection(e);p.merge(y),E.forEach(function(m){var T=m.id(),C=m.connectedEdges().intersection(e);p.merge(m),r[T].cutVertex?p.merge(C.filter(function(S){return S.isLoop()})):p.merge(C)})}),i.push(p)},u=function h(c,v,d){c===d&&(n+=1),r[v]={id:a,low:a++,cutVertex:!1};var g=e.getElementById(v).connectedEdges().intersection(e);if(g.size()===0)i.push(e.spawn(e.getElementById(v)));else{var p,y,E,m;g.forEach(function(T){p=T.source().id(),y=T.target().id(),E=p===v?y:p,E!==d&&(m=T.id(),o[m]||(o[m]=!0,s.push({x:v,y:E,edge:T})),E in r?r[v].low=Math.min(r[v].low,r[E].id):(h(c,E,v),r[v].low=Math.min(r[v].low,r[E].low),r[v].id<=r[E].low&&(r[v].cutVertex=!0,l(v,E))))})}};e.forEach(function(h){if(h.isNode()){var c=h.id();c in r||(n=0,u(c,c),r[c].cutVertex=n>1)}});var f=Object.keys(r).filter(function(h){return r[h].cutVertex}).map(function(h){return e.getElementById(h)});return{cut:e.spawn(f),components:i}},Hg={hopcroftTarjanBiconnected:La,htbc:La,htb:La,hopcroftTarjanBiconnectedComponents:La},Aa=function(){var e=this,r={},a=0,n=[],i=[],s=e.spawn(e),o=function l(u){i.push(u),r[u]={index:a,low:a++,explored:!1};var f=e.getElementById(u).connectedEdges().intersection(e);if(f.forEach(function(g){var p=g.target().id();p!==u&&(p in r||l(p),r[p].explored||(r[u].low=Math.min(r[u].low,r[p].low)))}),r[u].index===r[u].low){for(var h=e.spawn();;){var c=i.pop();if(h.merge(e.getElementById(c)),r[c].low=r[u].index,r[c].explored=!0,c===u)break}var v=h.edgesWith(h),d=h.merge(v);n.push(d),s=s.difference(d)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in r||o(u)}}),{cut:s,components:n}},Yg={tarjanStronglyConnected:Aa,tsc:Aa,tscc:Aa,tarjanStronglyConnectedComponents:Aa},No={};[ta,wd,xd,Cd,Sd,Ad,Id,rg,Tr,Cr,$n,gg,Ag,kg,Vg,Ug,Hg,Yg].forEach(function(t){de(No,t)});/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/var Io=0,Mo=1,Ro=2,kt=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Io,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))};kt.prototype={fulfill:function(e){return os(this,Mo,"fulfillValue",e)},reject:function(e){return os(this,Ro,"rejectReason",e)},then:function(e,r){var a=this,n=new kt;return a.onFulfilled.push(us(e,n,"fulfill")),a.onRejected.push(us(r,n,"reject")),ko(a),n.proxy}};var os=function(e,r,a,n){return e.state===Io&&(e.state=r,e[a]=n,ko(e)),e},ko=function(e){e.state===Mo?ls(e,"onFulfilled",e.fulfillValue):e.state===Ro&&ls(e,"onRejected",e.rejectReason)},ls=function(e,r,a){if(e[r].length!==0){var n=e[r];e[r]=[];var i=function(){for(var o=0;o0}},clearQueue:function(){return function(){var r=this,a=r.length!==void 0,n=a?r:[r],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s0&&this.spawn(n).updateStyle().emit("class"),r},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},toggleClass:function(e,r){Me(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=r===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,r){var a=this;if(r==null)r=250;else if(r===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},r),a}};Ba.className=Ba.classNames=Ba.classes;var Ce={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:_e,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Ce.variable="(?:[\\w-.]|(?:\\\\"+Ce.metaChar+"))+";Ce.className="(?:[\\w-]|(?:\\\\"+Ce.metaChar+"))+";Ce.value=Ce.string+"|"+Ce.number;Ce.id=Ce.variable;(function(){var t,e,r;for(t=Ce.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&(Ce.comparatorOp+="|\\!"+e)})();var Ie=function(){return{checks:[]}},ie={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},_n=[{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){return e.isNode()?e.isParent():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(t,e){return ed(t.selector,e.selector)}),Qg=function(){for(var t={},e,r=0;r<_n.length;r++)e=_n[r],t[e.selector]=e.matches;return t}(),Jg=function(e,r){return Qg[e](r)},jg="("+_n.map(function(t){return t.selector}).join("|")+")",dr=function(e){return e.replace(new RegExp("\\\\("+Ce.metaChar+")","g"),function(r,a){return a})},zt=function(e,r,a){e[e.length-1]=a},Un=[{name:"group",query:!0,regex:"("+Ce.group+")",populate:function(e,r,a){var n=Et(a,1),i=n[0];r.checks.push({type:ie.GROUP,value:i==="*"?i:i+"s"})}},{name:"state",query:!0,regex:jg,populate:function(e,r,a){var n=Et(a,1),i=n[0];r.checks.push({type:ie.STATE,value:i})}},{name:"id",query:!0,regex:"\\#("+Ce.id+")",populate:function(e,r,a){var n=Et(a,1),i=n[0];r.checks.push({type:ie.ID,value:dr(i)})}},{name:"className",query:!0,regex:"\\.("+Ce.className+")",populate:function(e,r,a){var n=Et(a,1),i=n[0];r.checks.push({type:ie.CLASS,value:dr(i)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+Ce.variable+")\\s*\\]",populate:function(e,r,a){var n=Et(a,1),i=n[0];r.checks.push({type:ie.DATA_EXIST,field:dr(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+Ce.variable+")\\s*("+Ce.comparatorOp+")\\s*("+Ce.value+")\\s*\\]",populate:function(e,r,a){var n=Et(a,3),i=n[0],s=n[1],o=n[2],l=new RegExp("^"+Ce.string+"$").exec(o)!=null;l?o=o.substring(1,o.length-1):o=parseFloat(o),r.checks.push({type:ie.DATA_COMPARE,field:dr(i),operator:s,value:o})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+Ce.boolOp+")\\s*("+Ce.variable+")\\s*\\]",populate:function(e,r,a){var n=Et(a,2),i=n[0],s=n[1];r.checks.push({type:ie.DATA_BOOL,field:dr(s),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+Ce.meta+")\\s*("+Ce.comparatorOp+")\\s*("+Ce.number+")\\s*\\]\\]",populate:function(e,r,a){var n=Et(a,3),i=n[0],s=n[1],o=n[2];r.checks.push({type:ie.META_COMPARE,field:dr(i),operator:s,value:parseFloat(o)})}},{name:"nextQuery",separator:!0,regex:Ce.separator,populate:function(e,r){var a=e.currentSubject,n=e.edgeCount,i=e.compoundCount,s=e[e.length-1];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++]=Ie();return o}},{name:"directedEdge",separator:!0,regex:Ce.directedEdge,populate:function(e,r){if(e.currentSubject==null){var a=Ie(),n=r,i=Ie();return a.checks.push({type:ie.DIRECTED_EDGE,source:n,target:i}),zt(e,r,a),e.edgeCount++,i}else{var s=Ie(),o=r,l=Ie();return s.checks.push({type:ie.NODE_SOURCE,source:o,target:l}),zt(e,r,s),e.edgeCount++,l}}},{name:"undirectedEdge",separator:!0,regex:Ce.undirectedEdge,populate:function(e,r){if(e.currentSubject==null){var a=Ie(),n=r,i=Ie();return a.checks.push({type:ie.UNDIRECTED_EDGE,nodes:[n,i]}),zt(e,r,a),e.edgeCount++,i}else{var s=Ie(),o=r,l=Ie();return s.checks.push({type:ie.NODE_NEIGHBOR,node:o,neighbor:l}),zt(e,r,s),l}}},{name:"child",separator:!0,regex:Ce.child,populate:function(e,r){if(e.currentSubject==null){var a=Ie(),n=Ie(),i=e[e.length-1];return a.checks.push({type:ie.CHILD,parent:i,child:n}),zt(e,r,a),e.compoundCount++,n}else if(e.currentSubject===r){var s=Ie(),o=e[e.length-1],l=Ie(),u=Ie(),f=Ie(),h=Ie();return s.checks.push({type:ie.COMPOUND_SPLIT,left:o,right:l,subject:u}),u.checks=r.checks,r.checks=[{type:ie.TRUE}],h.checks.push({type:ie.TRUE}),l.checks.push({type:ie.PARENT,parent:h,child:f}),zt(e,o,s),e.currentSubject=u,e.compoundCount++,f}else{var c=Ie(),v=Ie(),d=[{type:ie.PARENT,parent:c,child:v}];return c.checks=r.checks,r.checks=d,e.compoundCount++,v}}},{name:"descendant",separator:!0,regex:Ce.descendant,populate:function(e,r){if(e.currentSubject==null){var a=Ie(),n=Ie(),i=e[e.length-1];return a.checks.push({type:ie.DESCENDANT,ancestor:i,descendant:n}),zt(e,r,a),e.compoundCount++,n}else if(e.currentSubject===r){var s=Ie(),o=e[e.length-1],l=Ie(),u=Ie(),f=Ie(),h=Ie();return s.checks.push({type:ie.COMPOUND_SPLIT,left:o,right:l,subject:u}),u.checks=r.checks,r.checks=[{type:ie.TRUE}],h.checks.push({type:ie.TRUE}),l.checks.push({type:ie.ANCESTOR,ancestor:h,descendant:f}),zt(e,o,s),e.currentSubject=u,e.compoundCount++,f}else{var c=Ie(),v=Ie(),d=[{type:ie.ANCESTOR,ancestor:c,descendant:v}];return c.checks=r.checks,r.checks=d,e.compoundCount++,v}}},{name:"subject",modifier:!0,regex:Ce.subject,populate:function(e,r){if(e.currentSubject!=null&&e.currentSubject!==r)return Ne("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=r;var a=e[e.length-1],n=a.checks[0],i=n==null?null:n.type;i===ie.DIRECTED_EDGE?n.type=ie.NODE_TARGET:i===ie.UNDIRECTED_EDGE&&(n.type=ie.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Un.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});var ep=function(e){for(var r,a,n,i=0;i0&&f.edgeCount>0)return Ne("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return Ne("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&Ne("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},ap=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(f){return f??""},r=function(f){return ve(f)?'"'+f+'"':e(f)},a=function(f){return" "+f+" "},n=function(f,h){var c=f.type,v=f.value;switch(c){case ie.GROUP:{var d=e(v);return d.substring(0,d.length-1)}case ie.DATA_COMPARE:{var g=f.field,p=f.operator;return"["+g+a(e(p))+r(v)+"]"}case ie.DATA_BOOL:{var y=f.operator,E=f.field;return"["+e(y)+E+"]"}case ie.DATA_EXIST:{var m=f.field;return"["+m+"]"}case ie.META_COMPARE:{var T=f.operator,C=f.field;return"[["+C+a(e(T))+r(v)+"]]"}case ie.STATE:return v;case ie.ID:return"#"+v;case ie.CLASS:return"."+v;case ie.PARENT:case ie.CHILD:return i(f.parent,h)+a(">")+i(f.child,h);case ie.ANCESTOR:case ie.DESCENDANT:return i(f.ancestor,h)+" "+i(f.descendant,h);case ie.COMPOUND_SPLIT:{var S=i(f.left,h),b=i(f.subject,h),x=i(f.right,h);return S+(S.length>0?" ":"")+b+x}case ie.TRUE:return""}},i=function(f,h){return f.checks.reduce(function(c,v,d){return c+(h===f&&d===0?"$":"")+n(v,h)},"")},s="",o=0;o1&&o=0&&(r=r.replace("!",""),h=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(i||o||f)&&(l=!i&&!s?"":""+e,u=""+a),f&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),r){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===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=e0;){var f=n.shift();e(f),i.add(f.id()),o&&a(n,i,f)}return t}function Bo(t,e,r){if(r.isParent())for(var a=r._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return di(this,t,e,Bo)};function Fo(t,e,r){if(r.isChild()){var a=r._private.parent;e.has(a.id())||t.push(a)}}Ar.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return di(this,t,e,Fo)};function hp(t,e,r){Fo(t,e,r),Bo(t,e,r)}Ar.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return di(this,t,e,hp)};Ar.ancestors=Ar.parents;var na,Go;na=Go={data:Oe.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:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Oe.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Oe.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}};na.attr=na.data;na.removeAttr=na.removeData;var vp=Go,vn={};function On(t){return function(e){var r=this;if(e===void 0&&(e=!0),r.length!==0)if(r.isNode()&&!r.removed()){for(var a=0,n=r[0],i=n._private.edges,s=0;se}),minIndegree:gr("indegree",function(t,e){return te}),minOutdegree:gr("outdegree",function(t,e){return te})});de(vn,{totalDegree:function(e){for(var r=0,a=this.nodes(),n=0;n0,c=h;h&&(f=f[0]);var v=c?f.position():{x:0,y:0};r!==void 0?u.position(e,r+v[e]):i!==void 0&&u.position({x:i.x+v.x,y:i.y+v.y})}else{var d=a.position(),g=o?a.parent():null,p=g&&g.length>0,y=p;p&&(g=g[0]);var E=y?g.position():{x:0,y:0};return i={x:d.x-E.x,y:d.y-E.y},e===void 0?i:i[e]}else if(!s)return;return this}};Tt.modelPosition=Tt.point=Tt.position;Tt.modelPositions=Tt.points=Tt.positions;Tt.renderedPoint=Tt.renderedPosition;Tt.relativePoint=Tt.relativePosition;var cp=zo,Dr,Zt;Dr=Zt={};Zt.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),a=r.zoom(),n=r.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}};Zt.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var a=r._private;a.compoundBoundsClean=!1,a.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Zt.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var o=s._private,l=s.children(),u=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},h=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(h.w===0||h.h===0)&&(h={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},h.x1=c.x-h.w/2,h.x2=c.x+h.w/2,h.y1=c.y-h.h/2,h.y2=c.y+h.h/2);function v(w,D,A){var L=0,I=0,O=D+A;return w>0&&O>0&&(L=D/O*w,I=A/O*w),{biasDiff:L,biasComplementDiff:I}}function d(w,D,A,L){if(A.units==="%")switch(L){case"width":return w>0?A.pfValue*w:0;case"height":return D>0?A.pfValue*D:0;case"average":return w>0&&D>0?A.pfValue*(w+D)/2:0;case"min":return w>0&&D>0?w>D?A.pfValue*D:A.pfValue*w:0;case"max":return w>0&&D>0?w>D?A.pfValue*w:A.pfValue*D:0;default:return 0}else return A.units==="px"?A.pfValue:0}var g=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(g=g*100/f.width.val);var p=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(p=p*100/f.width.val);var y=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(y=y*100/f.height.val);var E=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(E=E*100/f.height.val);var m=v(f.width.val-h.w,g,p),T=m.biasDiff,C=m.biasComplementDiff,S=v(f.height.val-h.h,y,E),b=S.biasDiff,x=S.biasComplementDiff;o.autoPadding=d(h.w,h.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(h.w,f.width.val),c.x=(-T+h.x1+h.x2+C)/2,o.autoHeight=Math.max(h.h,f.height.val),c.y=(-b+h.y1+h.y2+x)/2}for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},tr=function(e,r){return r==null?e:wt(e,r.x1,r.y1,r.x2,r.y2)},Ur=function(e,r,a){return xt(e,r,a)},Oa=function(e,r,a){if(!r.cy().headless()){var n=r._private,i=n.rstyle,s=i.arrowWidth/2,o=r.pstyle(a+"-arrow-shape").value,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var f=n.arrowBounds=n.arrowBounds||{},h=f[a]=f[a]||{};h.x1=l-s,h.y1=u-s,h.x2=l+s,h.y2=u+s,h.w=h.x2-h.x1,h.h=h.y2-h.y1,ka(h,1),wt(e,h.x1,h.y1,h.x2,h.y2)}}},Nn=function(e,r,a){if(!r.cy().headless()){var n;a?n=a+"-":n="";var i=r._private,s=i.rstyle,o=r.pstyle(n+"label").strValue;if(o){var l=r.pstyle("text-halign"),u=r.pstyle("text-valign"),f=Ur(s,"labelWidth",a),h=Ur(s,"labelHeight",a),c=Ur(s,"labelX",a),v=Ur(s,"labelY",a),d=r.pstyle(n+"text-margin-x").pfValue,g=r.pstyle(n+"text-margin-y").pfValue,p=r.isEdge(),y=r.pstyle(n+"text-rotation"),E=r.pstyle("text-outline-width").pfValue,m=r.pstyle("text-border-width").pfValue,T=m/2,C=r.pstyle("text-background-padding").pfValue,S=2,b=h,x=f,w=x/2,D=b/2,A,L,I,O;if(p)A=c-w,L=c+w,I=v-D,O=v+D;else{switch(l.value){case"left":A=c-x,L=c;break;case"center":A=c-w,L=c+w;break;case"right":A=c,L=c+x;break}switch(u.value){case"top":I=v-b,O=v;break;case"center":I=v-D,O=v+D;break;case"bottom":I=v,O=v+b;break}}A+=d-Math.max(E,T)-C-S,L+=d+Math.max(E,T)+C+S,I+=g-Math.max(E,T)-C-S,O+=g+Math.max(E,T)+C+S;var P=a||"main",R=i.labelBounds,M=R[P]=R[P]||{};M.x1=A,M.y1=I,M.x2=L,M.y2=O,M.w=L-A,M.h=O-I;var k=p&&y.strValue==="autorotate",B=y.pfValue!=null&&y.pfValue!==0;if(k||B){var G=k?Ur(i.rstyle,"labelAngle",a):y.pfValue,F=Math.cos(G),$=Math.sin(G),U=(A+L)/2,_=(I+O)/2;if(!p){switch(l.value){case"left":U=L;break;case"right":U=A;break}switch(u.value){case"top":_=O;break;case"bottom":_=I;break}}var Y=function(ce,te){return ce=ce-U,te=te-_,{x:ce*F-te*$+U,y:ce*$+te*F+_}},W=Y(A,I),z=Y(A,O),K=Y(L,I),j=Y(L,O);A=Math.min(W.x,z.x,K.x,j.x),L=Math.max(W.x,z.x,K.x,j.x),I=Math.min(W.y,z.y,K.y,j.y),O=Math.max(W.y,z.y,K.y,j.y)}var Q=P+"Rot",ee=R[Q]=R[Q]||{};ee.x1=A,ee.y1=I,ee.x2=L,ee.y2=O,ee.w=L-A,ee.h=O-I,wt(e,A,I,L,O),wt(i.labelBounds.all,A,I,L,O)}return e}},dp=function(e,r){if(!r.cy().headless()){var a=r.pstyle("outline-opacity").value,n=r.pstyle("outline-width").value;if(a>0&&n>0){var i=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,o=n+i,l=(e.w+o*2)/e.w,u=(e.h+o*2)/e.h,f=0,h=0;["diamond","pentagon","round-triangle"].includes(s)?(l=(e.w+o*2.4)/e.w,h=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?l=(e.w+o*2.4)/e.w:s==="star"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.6)/e.h,h=-o/3.8):s==="triangle"?(l=(e.w+o*2.8)/e.w,u=(e.h+o*2.4)/e.h,h=-o/1.4):s==="vee"&&(l=(e.w+o*4.4)/e.w,u=(e.h+o*3.8)/e.h,h=-o*.5);var c=e.h*u-e.h,v=e.w*l-e.w;if(Pa(e,[Math.ceil(c/2),Math.ceil(v/2)]),f!=0||h!==0){var d=_d(e,f,h);wo(e,d)}}}},gp=function(e,r){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=ft(),o=e._private,l=e.isNode(),u=e.isEdge(),f,h,c,v,d,g,p=o.rstyle,y=l&&n?e.pstyle("bounds-expansion").pfValue:[0],E=function(ue){return ue.pstyle("display").value!=="none"},m=!n||E(e)&&(!u||E(e.source())&&E(e.target()));if(m){var T=0,C=0;n&&r.includeOverlays&&(T=e.pstyle("overlay-opacity").value,T!==0&&(C=e.pstyle("overlay-padding").value));var S=0,b=0;n&&r.includeUnderlays&&(S=e.pstyle("underlay-opacity").value,S!==0&&(b=e.pstyle("underlay-padding").value));var x=Math.max(C,b),w=0,D=0;if(n&&(w=e.pstyle("width").pfValue,D=w/2),l&&r.includeNodes){var A=e.position();d=A.x,g=A.y;var L=e.outerWidth(),I=L/2,O=e.outerHeight(),P=O/2;f=d-I,h=d+I,c=g-P,v=g+P,wt(s,f,c,h,v),n&&r.includeOutlines&&dp(s,e)}else if(u&&r.includeEdges)if(n&&!i){var R=e.pstyle("curve-style").strValue;if(f=Math.min(p.srcX,p.midX,p.tgtX),h=Math.max(p.srcX,p.midX,p.tgtX),c=Math.min(p.srcY,p.midY,p.tgtY),v=Math.max(p.srcY,p.midY,p.tgtY),f-=D,h+=D,c-=D,v+=D,wt(s,f,c,h,v),R==="haystack"){var M=p.haystackPts;if(M&&M.length===2){if(f=M[0].x,c=M[0].y,h=M[1].x,v=M[1].y,f>h){var k=f;f=h,h=k}if(c>v){var B=c;c=v,v=B}wt(s,f-D,c-D,h+D,v+D)}}else if(R==="bezier"||R==="unbundled-bezier"||R==="segments"||R==="taxi"){var G;switch(R){case"bezier":case"unbundled-bezier":G=p.bezierPts;break;case"segments":case"taxi":G=p.linePts;break}if(G!=null)for(var F=0;Fh){var z=f;f=h,h=z}if(c>v){var K=c;c=v,v=K}f-=D,h+=D,c-=D,v+=D,wt(s,f,c,h,v)}if(n&&r.includeEdges&&u&&(Oa(s,e,"mid-source"),Oa(s,e,"mid-target"),Oa(s,e,"source"),Oa(s,e,"target")),n){var j=e.pstyle("ghost").value==="yes";if(j){var Q=e.pstyle("ghost-offset-x").pfValue,ee=e.pstyle("ghost-offset-y").pfValue;wt(s,s.x1+Q,s.y1+ee,s.x2+Q,s.y2+ee)}}var ne=o.bodyBounds=o.bodyBounds||{};qi(ne,s),Pa(ne,y),ka(ne,1),n&&(f=s.x1,h=s.x2,c=s.y1,v=s.y2,wt(s,f-x,c-x,h+x,v+x));var ce=o.overlayBounds=o.overlayBounds||{};qi(ce,s),Pa(ce,y),ka(ce,1);var te=o.labelBounds=o.labelBounds||{};te.all!=null?Vd(te.all):te.all=ft(),n&&r.includeLabels&&(r.includeMainLabels&&Nn(s,e,null),u&&(r.includeSourceLabels&&Nn(s,e,"source"),r.includeTargetLabels&&Nn(s,e,"target")))}return s.x1=dt(s.x1),s.y1=dt(s.y1),s.x2=dt(s.x2),s.y2=dt(s.y2),s.w=dt(s.x2-s.x1),s.h=dt(s.y2-s.y1),s.w>0&&s.h>0&&m&&(Pa(s,y),ka(s,1)),s},Vo=function(e){var r=0,a=function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:Np,e=arguments.length>1?arguments[1]:void 0,r=0;r=0;o--)s(o);return this};Kt.removeAllListeners=function(){return this.removeListener("*")};Kt.emit=Kt.trigger=function(t,e,r){var a=this.listeners,n=a.length;return this.emitting++,Me(e)||(e=[e]),Ip(this,function(i,s){r!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],n=a.length);for(var o=function(f){var h=a[f];if(h.type===s.type&&(!h.namespace||h.namespace===s.namespace||h.namespace===Op)&&i.eventMatches(i.context,h,s)){var c=[s];e!=null&&pd(c,e),i.beforeEmit(i.context,h,s),h.conf&&h.conf.one&&(i.listeners=i.listeners.filter(function(g){return g!==h}));var v=i.callbackContext(i.context,h,s),d=h.callback.apply(v,c);i.afterEmit(i.context,h,s),d===!1&&(s.stopPropagation(),s.preventDefault())}},l=0;l1&&!s){var o=this.length-1,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var r=this._private,a=e._private.data.id,n=r.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var r=this._private.cy;if(!e)return this;if(e&&ve(e)){var a=e;e=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];e(a)&&this.unmergeAt(r)}return this},map:function(e,r){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},min:function(e,r){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":Ue(Symbol))!=e&&Ue(Symbol.iterator)!=e;r&&(Za[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return ro({next:function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){this.cleanStyle();var i=a._private.style[e];return i??(r?n.style().getDefaultProperty(e):null)}},numericStyle:function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var a=r.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},numericStyleUnits:function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},renderedStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=this[0];if(a)return r.style().getRenderedStyle(a,e)},style:function(e,r){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(De(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(ve(e))if(r===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,r,n),this.emitAndNotify("style");else if(e===void 0){var l=this[0];return l?i.getRawStyle(l):void 0}return this},removeStyle:function(e){var r=this.cy();if(!r.styleEnabled())return this;var a=!1,n=r.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(o[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}});tt.neighbourhood=tt.neighborhood;tt.closedNeighbourhood=tt.closedNeighborhood;tt.openNeighbourhood=tt.openNeighborhood;de(tt,{source:gt(function(e){var r=this[0],a;return r&&(a=r._private.source||r.cy().collection()),a&&e?a.filter(e):a},"source"),target:gt(function(e){var r=this[0],a;return r&&(a=r._private.target||r.cy().collection()),a&&e?a.filter(e):a},"target"),sources:ws({attr:"source"}),targets:ws({attr:"target"})});function ws(t){return function(r){for(var a=[],n=0;n0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}});tt.componentsOf=tt.components;var Ze=function(e,r){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){Ge("A collection must have a reference to the core");return}var i=new Lt,s=!1;if(!r)r=[];else if(r.length>0&&De(r[0])&&!ca(r[0])){s=!0;for(var o=[],l=new Mr,u=0,f=r.length;u0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=r.cy(),n=a._private,i=[],s=[],o,l=0,u=r.length;l0){for(var B=o.length===r.length?r:new Ze(a,o),G=0;G0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,a=[],n={},i=r._private.cy;function s(O){for(var P=O._private.edges,R=0;R0&&(t?A.emitAndNotify("remove"):e&&A.emit("remove"));for(var L=0;L0?L=O:A=O;while(Math.abs(I)>s&&++P=i?E(D,P):R===0?P:T(D,A,A+u)}var S=!1;function b(){S=!0,(t!==e||r!==a)&&m()}var x=function(A){return S||b(),t===e&&r===a?A:A===0?0:A===1?1:p(C(A),e,a)};x.getControlPoints=function(){return[{x:t,y:e},{x:r,y:a}]};var w="generateBezier("+[t,e,r,a]+")";return x.toString=function(){return w},x}/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */var _p=function(){function t(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:t(s)}}function r(a,n){var i={dx:a.v,dv:t(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),f=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+f*n,a}return function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,f=1/1e4,h=16/1e3,c,v,d;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,c=s!==null,c?(u=a(n,i),v=u/s*h):v=h;d=r(d||o,v),l.push(1+d.x),u+=16,Math.abs(d.x)>f&&Math.abs(d.v)>f;);return c?function(g){return l[g*(l.length-1)|0]}:u}}(),Re=function(e,r,a,n){var i=Vp(e,r,a,n);return function(s,o,l){return s+(o-s)*i(l)}},Ga={linear:function(e,r,a){return e+(r-e)*a},ease:Re(.25,.1,.25,1),"ease-in":Re(.42,0,1,1),"ease-out":Re(0,0,.58,1),"ease-in-out":Re(.42,0,.58,1),"ease-in-sine":Re(.47,0,.745,.715),"ease-out-sine":Re(.39,.575,.565,1),"ease-in-out-sine":Re(.445,.05,.55,.95),"ease-in-quad":Re(.55,.085,.68,.53),"ease-out-quad":Re(.25,.46,.45,.94),"ease-in-out-quad":Re(.455,.03,.515,.955),"ease-in-cubic":Re(.55,.055,.675,.19),"ease-out-cubic":Re(.215,.61,.355,1),"ease-in-out-cubic":Re(.645,.045,.355,1),"ease-in-quart":Re(.895,.03,.685,.22),"ease-out-quart":Re(.165,.84,.44,1),"ease-in-out-quart":Re(.77,0,.175,1),"ease-in-quint":Re(.755,.05,.855,.06),"ease-out-quint":Re(.23,1,.32,1),"ease-in-out-quint":Re(.86,0,.07,1),"ease-in-expo":Re(.95,.05,.795,.035),"ease-out-expo":Re(.19,1,.22,1),"ease-in-out-expo":Re(1,0,0,1),"ease-in-circ":Re(.6,.04,.98,.335),"ease-out-circ":Re(.075,.82,.165,1),"ease-in-out-circ":Re(.785,.135,.15,.86),spring:function(e,r,a){if(a===0)return Ga.linear;var n=_p(e,r,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":Re};function Cs(t,e,r,a,n){if(a===1||e===r)return r;var i=n(e,r,a);return t==null||((t.roundValue||t.color)&&(i=Math.round(i)),t.min!==void 0&&(i=Math.max(i,t.min)),t.max!==void 0&&(i=Math.min(i,t.max))),i}function Ds(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function pr(t,e,r,a,n){var i=n!=null?n.type:null;r<0?r=0:r>1&&(r=1);var s=Ds(t,n),o=Ds(e,n);if(ae(s)&&ae(o))return Cs(i,s,o,r,a);if(Me(s)&&Me(o)){for(var l=[],u=0;u0?(v==="spring"&&d.push(s.duration),s.easingImpl=Ga[v].apply(null,d)):s.easingImpl=Ga[v]}var g=s.easingImpl,p;if(s.duration===0?p=1:p=(r-l)/s.duration,s.applying&&(p=s.progress),p<0?p=0:p>1&&(p=1),s.delay==null){var y=s.startPosition,E=s.position;if(E&&n&&!t.locked()){var m={};Yr(y.x,E.x)&&(m.x=pr(y.x,E.x,p,g)),Yr(y.y,E.y)&&(m.y=pr(y.y,E.y,p,g)),t.position(m)}var T=s.startPan,C=s.pan,S=i.pan,b=C!=null&&a;b&&(Yr(T.x,C.x)&&(S.x=pr(T.x,C.x,p,g)),Yr(T.y,C.y)&&(S.y=pr(T.y,C.y,p,g)),t.emit("pan"));var x=s.startZoom,w=s.zoom,D=w!=null&&a;D&&(Yr(x,w)&&(i.zoom=ra(i.minZoom,pr(x,w,p,g),i.maxZoom)),t.emit("zoom")),(b||D)&&t.emit("viewport");var A=s.style;if(A&&A.length>0&&n){for(var L=0;L=0;b--){var x=S[b];x()}S.splice(0,S.length)},E=v.length-1;E>=0;E--){var m=v[E],T=m._private;if(T.stopped){v.splice(E,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.frames);continue}!T.playing&&!T.applying||(T.playing&&T.applying&&(T.applying=!1),T.started||Hp(f,m,t),Up(f,m,t,h),T.applying&&(T.applying=!1),y(T.frames),T.step!=null&&T.step(t),m.completed()&&(v.splice(E,1),T.hooked=!1,T.playing=!1,T.started=!1,y(T.completes)),g=!0)}return!h&&v.length===0&&d.length===0&&a.push(f),g}for(var i=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(a),e.emit("step")}var Yp={animate:Oe.animate(),animation:Oe.animation(),animated:Oe.animated(),clearQueue:Oe.clearQueue(),delay:Oe.delay(),delayAnimation:Oe.delayAnimation(),stop:Oe.stop(),addToAnimationPool:function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&Ya(function(i){Ss(i,e),r()})}var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){Ss(s,e)},a.beforeRenderPriorities.animations):r()}},Xp={qualifierCompare:function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},eventMatches:function(e,r,a){var n=r.qualifier;return n!=null?e!==a.target&&ca(a.target)&&n.matches(a.target):!0},addEventFields:function(e,r){r.cy=e,r.target=e},callbackContext:function(e,r,a){return r.qualifier!=null?a.target:e}},Ma=function(e){return ve(e)?new Wt(e):e},Jo={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new cn(Xp,this)),this},emitter:function(){return this._private.emitter},on:function(e,r,a){return this.emitter().on(e,Ma(r),a),this},removeListener:function(e,r,a){return this.emitter().removeListener(e,Ma(r),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,r,a){return this.emitter().one(e,Ma(r),a),this},once:function(e,r,a){return this.emitter().one(e,Ma(r),a),this},emit:function(e,r){return this.emitter().emit(e,r),this},emitAndNotify:function(e,r){return this.emit(e),this.notify(e,r),this}};Oe.eventAliasesOn(Jo);var Hn={png:function(e){var r=this._private.renderer;return e=e||{},r.png(e)},jpg:function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)}};Hn.jpeg=Hn.jpg;var za={layout:function(e){var r=this;if(e==null){Ge("Layout options must be specified to make a layout");return}if(e.name==null){Ge("A `name` must be specified to make a layout");return}var a=e.name,n=r.extension("layout",a);if(n==null){Ge("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;ve(e.eles)?i=r.$(e.eles):i=e.eles!=null?e.eles:r.$();var s=new n(de({},e,{cy:r,eles:i}));return s}};za.createLayout=za.makeLayout=za.layout;var Wp={notify:function(e,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();r!=null&&n.merge(r);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,r)}},notifications:function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),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 r=this.renderer();Object.keys(e.batchNotifications).forEach(function(a){var n=e.batchNotifications[a];n.empty()?r.notify(a):r.notify(a,n)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var r=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)r.removeChild(r.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)}};Yn.invalidateDimensions=Yn.resize;var $a={collection:function(e,r){return ve(e)?this.$(e):ht(e)?e.collection():Me(e)?(r||(r={}),new Ze(this,e,r.unique,r.removed)):new Ze(this)},nodes:function(e){var r=this.$(function(a){return a.isNode()});return e?r.filter(e):r},edges:function(e){var r=this.$(function(a){return a.isEdge()});return e?r.filter(e):r},$:function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},mutableElements:function(){return this._private.elements}};$a.elements=$a.filter=$a.$;var at={},Zr="t",Kp="f";at.apply=function(t){for(var e=this,r=e._private,a=r.cy,n=a.collection(),i=0;i0;if(c||h&&v){var d=void 0;c&&v||c?d=u.properties:v&&(d=u.mappedProperties);for(var g=0;g1&&(T=1),o.color){var S=a.valueMin[0],b=a.valueMax[0],x=a.valueMin[1],w=a.valueMax[1],D=a.valueMin[2],A=a.valueMax[2],L=a.valueMin[3]==null?1:a.valueMin[3],I=a.valueMax[3]==null?1:a.valueMax[3],O=[Math.round(S+(b-S)*T),Math.round(x+(w-x)*T),Math.round(D+(A-D)*T),Math.round(L+(I-L)*T)];i={bypass:a.bypass,name:a.name,value:O,strValue:"rgb("+O[0]+", "+O[1]+", "+O[2]+")"}}else if(o.number){var P=a.valueMin+(a.valueMax-a.valueMin)*T;i=this.parse(a.name,P,a.bypass,c)}else return!1;if(!i)return g(),!1;i.mapping=a,a=i;break}case s.data:{for(var R=a.field.split("."),M=h.data,k=0;k0&&i>0){for(var o={},l=!1,u=0;u0?t.delayAnimation(s).play().promise().then(m):m()}).then(function(){return t.animation({style:o,duration:i,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(t,n),t.emitAndNotify("style"),a.transitioning=!1)};at.checkTrigger=function(t,e,r,a,n,i){var s=this.properties[e],o=n(s);o!=null&&o(r,a)&&i(s)};at.checkZOrderTrigger=function(t,e,r,a){var n=this;this.checkTrigger(t,e,r,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",t)})};at.checkBoundsTrigger=function(t,e,r,a){this.checkTrigger(t,e,r,a,function(n){return n.triggersBounds},function(n){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),n.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||a==="bezier")&&t.parallelEdges().forEach(function(i){i.isBundledBezier()&&i.dirtyBoundingBoxCache()}),n.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||a==="none")&&t.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};at.checkTriggers=function(t,e,r,a){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,a),this.checkBoundsTrigger(t,e,r,a)};var pa={};pa.applyBypass=function(t,e,r,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}function l(){i.length>s.length?i=i.substr(s.length):i=""}for(;;){var u=a.match(/^\s*$/);if(u)break;var f=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){Ne("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=f[0];var h=f[1];if(h!=="core"){var c=new Wt(h);if(c.invalid){Ne("Skipping parsing of block: Invalid selector found in string stylesheet: "+h),o();continue}}var v=f[2],d=!1;i=v;for(var g=[];;){var p=i.match(/^\s*$/);if(p)break;var y=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){Ne("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+v),d=!0;break}s=y[0];var E=y[1],m=y[2],T=e.properties[E];if(!T){Ne("Skipping property: Invalid property name in: "+s),l();continue}var C=r.parse(E,m);if(!C){Ne("Skipping property: Invalid property definition in: "+s),l();continue}g.push({name:E,val:m}),l()}if(d){o();break}r.selector(h);for(var S=0;S=7&&e[0]==="d"&&(f=new RegExp(o.data.regex).exec(e))){if(r)return!1;var c=o.data;return{name:t,value:f,strValue:""+e,mapped:c,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(h=new RegExp(o.mapData.regex).exec(e))){if(r||u.multiple)return!1;var v=o.mapData;if(!(u.color||u.number))return!1;var d=this.parse(t,h[4]);if(!d||d.mapped)return!1;var g=this.parse(t,h[5]);if(!g||g.mapped)return!1;if(d.pfValue===g.pfValue||d.strValue===g.strValue)return Ne("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+d.strValue+"`"),this.parse(t,d.strValue);if(u.color){var p=d.value,y=g.value,E=p[0]===y[0]&&p[1]===y[1]&&p[2]===y[2]&&(p[3]===y[3]||(p[3]==null||p[3]===1)&&(y[3]==null||y[3]===1));if(E)return!1}return{name:t,value:h,strValue:""+e,mapped:v,field:h[1],fieldMin:parseFloat(h[2]),fieldMax:parseFloat(h[3]),valueMin:d.value,valueMax:g.value,bypass:r}}}if(u.multiple&&a!=="multiple"){var m;if(l?m=e.split(/\s+/):Me(e)?m=e:m=[e],u.evenMultiple&&m.length%2!==0)return null;for(var T=[],C=[],S=[],b="",x=!1,w=0;w0?" ":"")+D.strValue}return u.validate&&!u.validate(T,C)?null:u.singleEnum&&x?T.length===1&&ve(T[0])?{name:t,value:T[0],strValue:T[0],bypass:r}:null:{name:t,value:T,pfValue:S,strValue:b,bypass:r,units:C}}var A=function(){for(var j=0;ju.max||u.strictMax&&e===u.max))return null;var R={name:t,value:e,strValue:""+e+(L||""),units:L,bypass:r};return u.unitless||L!=="px"&&L!=="em"?R.pfValue=e:R.pfValue=L==="px"||!L?e:this.getEmSizeInPixels()*e,(L==="ms"||L==="s")&&(R.pfValue=L==="ms"?e:1e3*e),(L==="deg"||L==="rad")&&(R.pfValue=L==="rad"?e:Fd(e)),L==="%"&&(R.pfValue=e/100),R}else if(u.propList){var M=[],k=""+e;if(k!=="none"){for(var B=k.split(/\s*,\s*|\s+/),G=0;G0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*r)/a.w,(o-2*r)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l=a.minZoom&&(a.maxZoom=r),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var r=this._private,a=r.pan,n=r.zoom,i,s,o=!1;if(r.zoomingEnabled||(o=!0),ae(e)?s=e:De(e)&&(s=e.level,e.position!=null?i=fn(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!r.panningEnabled&&(o=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var u=e.pan;ae(u.x)&&(r.pan.x=u.x,o=!1),ae(u.y)&&(r.pan.y=u.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,r){if(this._private.panningEnabled){if(ve(e)){var a=e;e=this.mutableElements().filter(a)}else ht(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var o={x:(i-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2};return o}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,r=e.container,a=this;return e.sizeCache=e.sizeCache||(r?function(){var n=a.window().getComputedStyle(r),i=function(o){return parseFloat(n.getPropertyValue(o))};return{width:r.clientWidth-i("padding-left")-i("padding-right"),height:r.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,r=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/r,x2:(a.x2-e.x)/r,y1:(a.y1-e.y)/r,y2:(a.y2-e.y)/r};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},renderedExtent:function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};sr.centre=sr.center;sr.autolockNodes=sr.autolock;sr.autoungrabifyNodes=sr.autoungrabify;var sa={data:Oe.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Oe.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Oe.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Oe.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};sa.attr=sa.data;sa.removeAttr=sa.removeData;var oa=function(e){var r=this;e=de({},e);var a=e.container;a&&!Ha(a)&&Ha(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=r;var s=$e!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=de({name:s?"grid":"null"},o.layout),o.renderer=de({name:s?"canvas":"null"},o.renderer);var l=function(d,g,p){return g!==void 0?g:p!==void 0?p:d},u=this._private={container:a,ready:!1,options:o,elements:new Ze(this),listeners:[],aniEles:new Ze(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ae(o.zoom)?o.zoom:1,pan:{x:De(o.pan)&&ae(o.pan.x)?o.pan.x:0,y:De(o.pan)&&ae(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var f=function(d,g){var p=d.some(Xc);if(p)return Rr.all(d).then(g);g(d)};u.styleEnabled&&r.setStyle([]);var h=de({},o,o.renderer);r.initRenderer(h);var c=function(d,g,p){r.notifications(!1);var y=r.mutableElements();y.length>0&&y.remove(),d!=null&&(De(d)||Me(d))&&r.add(d),r.one("layoutready",function(m){r.notifications(!0),r.emit(m),r.one("load",g),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",p),r.emit("done")});var E=de({},r._private.options.layout);E.eles=r.elements(),r.layout(E).run()};f([o.style,o.elements],function(v){var d=v[0],g=v[1];u.styleEnabled&&r.style().append(d),c(g,function(){r.startAnimationLoop(),u.ready=!0,Be(o.ready)&&r.on("ready",o.ready);for(var p=0;p0,l=ft(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),u;if(ht(e.roots))u=e.roots;else if(Me(e.roots)){for(var f=[],h=0;h0;){var P=O(),R=D(P,L);if(R)P.outgoers().filter(function(te){return te.isNode()&&a.has(te)}).forEach(I);else if(R===null){Ne("Detected double maximal shift for node `"+P.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}w();var M=0;if(e.avoidOverlap)for(var k=0;k0&&y[0].length<=3?ge/2:0),N=2*Math.PI/y[le].length*se;return le===0&&y[0].length===1&&(H=1),{x:ee.x+H*Math.cos(N),y:ee.y+H*Math.sin(N)}}else{var we={x:ee.x+(se+1-(fe+1)/2)*xe,y:(le+1)*Ee};return we}};return a.nodes().layoutPositions(this,e,ce),this};var ey={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function el(t){this.options=de({},ey,t)}el.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=ft(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),f,h=0,c=0;c1&&e.avoidOverlap){h*=1.75;var y=Math.cos(u)-Math.cos(0),E=Math.sin(u)-Math.sin(0),m=Math.sqrt(h*h/(y*y+E*E));f=Math.max(m,f)}var T=function(S,b){var x=e.startAngle+b*u*(n?1:-1),w=f*Math.cos(x),D=f*Math.sin(x),A={x:o.x+w,y:o.y+D};return A};return a.nodes().layoutPositions(this,e,T),this};var ty={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function tl(t){this.options=de({},ty,t)}tl.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=t.cy,n=e.eles,i=n.nodes().not(":parent"),s=ft(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},l=[],u=0,f=0;f0){var C=Math.abs(E[0].value-T.value);C>=p&&(E=[],y.push(E))}E.push(T)}var S=u+e.minNodeSpacing;if(!e.avoidOverlap){var b=y.length>0&&y[0].length>1,x=Math.min(s.w,s.h)/2-S,w=x/(y.length+b?1:0);S=Math.min(S,w)}for(var D=0,A=0;A1&&e.avoidOverlap){var P=Math.cos(O)-Math.cos(0),R=Math.sin(O)-Math.sin(0),M=Math.sqrt(S*S/(P*P+R*R));D=Math.max(M,D)}L.r=D,D+=S}if(e.equidistant){for(var k=0,B=0,G=0;G=t.numIter||(uy(a,t),a.temperature=a.temperature*t.coolingFactor,a.temperature=t.animationThreshold&&i(),Ya(h)}};f()}else{for(;u;)u=s(l),l++;Os(a,t),o()}return this};mn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};mn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var ay=function(e,r,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=ft(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},l=a.eles.components(),u={},f=0;f0){o.graphSet.push(x);for(var f=0;fn.count?0:n.graph},iy=function t(e,r,a,n){var i=n.graphSet[a];if(-10)var h=n.nodeOverlap*f,c=Math.sqrt(o*o+l*l),v=h*o/c,d=h*l/c;else var g=Ja(e,o,l),p=Ja(r,-1*o,-1*l),y=p.x-g.x,E=p.y-g.y,m=y*y+E*E,c=Math.sqrt(m),h=(e.nodeRepulsion+r.nodeRepulsion)/m,v=h*y/c,d=h*E/c;e.isLocked||(e.offsetX-=v,e.offsetY-=d),r.isLocked||(r.offsetX+=v,r.offsetY+=d)}},vy=function(e,r,a,n){if(a>0)var i=e.maxX-r.minX;else var i=r.maxX-e.minX;if(n>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},Ja=function(e,r,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/r,u=s/o,f={};return r===0&&0a?(f.x=n,f.y=i+s/2,f):0r&&-1*u<=l&&l<=u?(f.x=n-o/2,f.y=i-o*a/2/r,f):0=u)?(f.x=n+s*r/2/a,f.y=i+s/2,f):(0>a&&(l<=-1*u||l>=u)&&(f.x=n-s*r/2/a,f.y=i-s/2),f)},cy=function(e,r){for(var a=0;aa){var p=r.gravity*v/g,y=r.gravity*d/g;c.offsetX+=p,c.offsetY+=y}}}}},gy=function(e,r){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],l=e.layoutNodes[o],u=l.children;if(0a)var i={x:a*e/n,y:a*r/n};else var i={x:e,y:r};return i},my=function t(e,r){var a=e.parentId;if(a!=null){var n=r.layoutNodes[r.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopy&&(d+=p+r.componentSpacing,v=0,g=0,p=0)}}},by={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,r){return!0},ready:void 0,stop:void 0,transform:function(e,r){return r}};function al(t){this.options=de({},by,t)}al.prototype.run=function(){var t=this.options,e=t,r=t.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=ft(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(U){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),f=function(_){if(_==null)return Math.min(l,u);var Y=Math.min(l,u);Y==l?l=_:u=_},h=function(_){if(_==null)return Math.max(l,u);var Y=Math.max(l,u);Y==l?l=_:u=_},c=e.rows,v=e.cols!=null?e.cols:e.columns;if(c!=null&&v!=null)l=c,u=v;else if(c!=null&&v==null)l=c,u=Math.ceil(s/l);else if(c==null&&v!=null)u=v,l=Math.ceil(s/u);else if(u*l>s){var d=f(),g=h();(d-1)*g>=s?f(d-1):(g-1)*d>=s&&h(g-1)}else for(;u*l=s?h(y+1):f(p+1)}var E=i.w/u,m=i.h/l;if(e.condense&&(E=0,m=0),e.avoidOverlap)for(var T=0;T=u&&(P=0,O++)},M={},k=0;k(P=Zd(t,e,R[M],R[M+1],R[M+2],R[M+3])))return p(b,P),!0}else if(w.edgeType==="bezier"||w.edgeType==="multibezier"||w.edgeType==="self"||w.edgeType==="compound"){for(var R=w.allpts,M=0;M+5(P=Kd(t,e,R[M],R[M+1],R[M+2],R[M+3],R[M+4],R[M+5])))return p(b,P),!0}for(var k=k||x.source,B=B||x.target,G=n.getArrowWidth(D,A),F=[{name:"source",x:w.arrowStartX,y:w.arrowStartY,angle:w.srcArrowAngle},{name:"target",x:w.arrowEndX,y:w.arrowEndY,angle:w.tgtArrowAngle},{name:"mid-source",x:w.midX,y:w.midY,angle:w.midsrcArrowAngle},{name:"mid-target",x:w.midX,y:w.midY,angle:w.midtgtArrowAngle}],M=0;M0&&(y(k),y(B))}function m(b,x,w){return xt(b,x,w)}function T(b,x){var w=b._private,D=c,A;x?A=x+"-":A="",b.boundingBox();var L=w.labelBounds[x||"main"],I=b.pstyle(A+"label").value,O=b.pstyle("text-events").strValue==="yes";if(!(!O||!I)){var P=m(w.rscratch,"labelX",x),R=m(w.rscratch,"labelY",x),M=m(w.rscratch,"labelAngle",x),k=b.pstyle(A+"text-margin-x").pfValue,B=b.pstyle(A+"text-margin-y").pfValue,G=L.x1-D-k,F=L.x2+D-k,$=L.y1-D-B,U=L.y2+D-B;if(M){var _=Math.cos(M),Y=Math.sin(M),W=function(ce,te){return ce=ce-P,te=te-R,{x:ce*_-te*Y+P,y:ce*Y+te*_+R}},z=W(G,$),K=W(G,U),j=W(F,$),Q=W(F,U),ee=[z.x+k,z.y+B,j.x+k,j.y+B,Q.x+k,Q.y+B,K.x+k,K.y+B];if(ut(t,e,ee))return p(b),!0}else if(Sr(L,t,e))return p(b),!0}}for(var C=s.length-1;C>=0;C--){var S=s[C];S.isNode()?y(S)||T(S):E(S)||T(S)||T(S,"source")||T(S,"target")}return o};fr.getAllInBox=function(t,e,r,a){var n=this.getCachedZSortedEles().interactive,i=[],s=Math.min(t,r),o=Math.max(t,r),l=Math.min(e,a),u=Math.max(e,a);t=s,r=o,e=l,a=u;for(var f=ft({x1:t,y1:e,x2:r,y2:a}),h=0;h0?Math.max(Z-oe,0):Math.min(Z+oe,0)},I=L(D,x),O=L(A,w),P=!1;E===u?y=Math.abs(I)>Math.abs(O)?n:a:E===l||E===o?(y=a,P=!0):(E===i||E===s)&&(y=n,P=!0);var R=y===a,M=R?O:I,k=R?A:D,B=Eo(k),G=!1;!(P&&(T||S))&&(E===o&&k<0||E===l&&k>0||E===i&&k>0||E===s&&k<0)&&(B*=-1,M=B*Math.abs(M),G=!0);var F;if(T){var $=C<0?1+C:C;F=$*M}else{var U=C<0?M:0;F=U+C*B}var _=function(Z){return Math.abs(Z)=Math.abs(M)},Y=_(F),W=_(Math.abs(M)-Math.abs(F)),z=Y||W;if(z&&!G)if(R){var K=Math.abs(k)<=c/2,j=Math.abs(D)<=v/2;if(K){var Q=(f.x1+f.x2)/2,ee=f.y1,ne=f.y2;r.segpts=[Q,ee,Q,ne]}else if(j){var ce=(f.y1+f.y2)/2,te=f.x1,re=f.x2;r.segpts=[te,ce,re,ce]}else r.segpts=[f.x1,f.y2]}else{var ue=Math.abs(k)<=h/2,le=Math.abs(A)<=d/2;if(ue){var se=(f.y1+f.y2)/2,fe=f.x1,xe=f.x2;r.segpts=[fe,se,xe,se]}else if(le){var Ee=(f.x1+f.x2)/2,ge=f.y1,we=f.y2;r.segpts=[Ee,ge,Ee,we]}else r.segpts=[f.x2,f.y1]}else if(R){var H=f.y1+F+(p?c/2*B:0),N=f.x1,V=f.x2;r.segpts=[N,H,V,H]}else{var J=f.x1+F+(p?h/2*B:0),X=f.y1,q=f.y2;r.segpts=[J,X,J,q]}};nt.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,f=e.tgtShape,h=!ae(r.startX)||!ae(r.startY),c=!ae(r.arrowStartX)||!ae(r.arrowStartY),v=!ae(r.endX)||!ae(r.endY),d=!ae(r.arrowEndX)||!ae(r.arrowEndY),g=3,p=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,y=g*p,E=nr({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),m=EO.poolIndex()){var P=I;I=O,O=P}var R=w.srcPos=I.position(),M=w.tgtPos=O.position(),k=w.srcW=I.outerWidth(),B=w.srcH=I.outerHeight(),G=w.tgtW=O.outerWidth(),F=w.tgtH=O.outerHeight(),$=w.srcShape=r.nodeShapes[e.getNodeShape(I)],U=w.tgtShape=r.nodeShapes[e.getNodeShape(O)];w.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var _=0;_0){var K=i,j=er(K,Er(r)),Q=er(K,Er(z)),ee=j;if(Q2){var ne=er(K,{x:z[2],y:z[3]});ne0){var N=s,V=er(N,Er(r)),J=er(N,Er(H)),X=V;if(J2){var q=er(N,{x:H[2],y:H[3]});q=d||b){p={cp:T,segment:S};break}}if(p)break}var x=p.cp,w=p.segment,D=(d-y)/w.length,A=w.t1-w.t0,L=v?w.t0+A*D:w.t1-A*D;L=ra(0,L,1),e=xr(x.p0,x.p1,x.p2,L),c=Dy(x.p0,x.p1,x.p2,L);break}case"straight":case"segments":case"haystack":{for(var I=0,O,P,R,M,k=a.allpts.length,B=0;B+3=d));B+=2);var G=d-P,F=G/O;F=ra(0,F,1),e=zd(R,M,F),c=ul(R,M);break}}s("labelX",h,e.x),s("labelY",h,e.y),s("labelAutoAngle",h,c)}};u("source"),u("target"),this.applyLabelDimensions(t)}};Ot.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Ot.applyPrefixedLabelDimensions=function(t,e){var r=t._private,a=this.getLabelText(t,e),n=this.calculateLabelDimensions(t,a),i=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,o=xt(r.rscratch,"labelWrapCachedLines",e)||[],l=s!=="wrap"?1:Math.max(o.length,1),u=n.height/l,f=u*i,h=n.width,c=n.height+(l-1)*(i-1)*u;$t(r.rstyle,"labelWidth",e,h),$t(r.rscratch,"labelWidth",e,h),$t(r.rstyle,"labelHeight",e,c),$t(r.rscratch,"labelHeight",e,c),$t(r.rscratch,"labelLineHeight",e,f)};Ot.getLabelText=function(t,e){var r=t._private,a=e?e+"-":"",n=t.pstyle(a+"label").strValue,i=t.pstyle("text-transform").value,s=function(G,F){return F?($t(r.rscratch,G,e,F),F):xt(r.rscratch,G,e)};if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=t.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="​",f=n.split(` +`),h=t.pstyle("text-max-width").pfValue,c=t.pstyle("text-overflow-wrap").value,v=c==="anywhere",d=[],g=/[\s\u200b]+/,p=v?"":" ",y=0;yh){for(var S=E.split(g),b="",x=0;xI)break;O+=n[M],M===n.length-1&&(R=!0)}return R||(O+=P),O}return n};Ot.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Ot.calculateLabelDimensions=function(t,e){var r=this,a=ar(e,t._private.labelDimsKey),n=r.labelDimCache||(r.labelDimCache=[]),i=n[a];if(i!=null)return i;var s=0,o=t.pstyle("font-style").strValue,l=t.pstyle("font-size").pfValue,u=t.pstyle("font-family").strValue,f=t.pstyle("font-weight").strValue,h=this.labelCalcCanvas,c=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=document.createElement("canvas"),c=this.labelCalcCanvasContext=h.getContext("2d");var v=h.style;v.position="absolute",v.left="-9999px",v.top="-9999px",v.zIndex="-1",v.visibility="hidden",v.pointerEvents="none"}c.font="".concat(o," ").concat(f," ").concat(l,"px ").concat(u);for(var d=0,g=0,p=e.split(` +`),y=0;y1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var l=0;l=t.desktopTapThreshold2}var It=n(N);Xe&&(t.hoverData.tapholdCancelled=!0);var Ft=function(){var Dt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];Dt.length===0?(Dt.push(be[0]),Dt.push(be[1])):(Dt[0]+=be[0],Dt[1]+=be[1])};J=!0,a(pe,["mousemove","vmousemove","tapdrag"],N,{x:Z[0],y:Z[1]});var vr=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||X.emit({originalEvent:N,type:"boxstart",position:{x:Z[0],y:Z[1]}}),Se[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(t.hoverData.which===3){if(Xe){var Jt={originalEvent:N,type:"cxtdrag",position:{x:Z[0],y:Z[1]}};ye?ye.emit(Jt):X.emit(Jt),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||pe!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:N,type:"cxtdragout",position:{x:Z[0],y:Z[1]}}),t.hoverData.cxtOver=pe,pe&&pe.emit({originalEvent:N,type:"cxtdragover",position:{x:Z[0],y:Z[1]}}))}}else if(t.hoverData.dragging){if(J=!0,X.panningEnabled()&&X.userPanningEnabled()){var cr;if(t.hoverData.justStartedPan){var Ea=t.hoverData.mdownPos;cr={x:(Z[0]-Ea[0])*q,y:(Z[1]-Ea[1])*q},t.hoverData.justStartedPan=!1}else cr={x:be[0]*q,y:be[1]*q};X.panBy(cr),X.emit("dragpan"),t.hoverData.dragged=!0}Z=t.projectIntoViewport(N.clientX,N.clientY)}else if(Se[4]==1&&(ye==null||ye.pannable())){if(Xe){if(!t.hoverData.dragging&&X.boxSelectionEnabled()&&(It||!X.panningEnabled()||!X.userPanningEnabled()))vr();else if(!t.hoverData.selecting&&X.panningEnabled()&&X.userPanningEnabled()){var jt=i(ye,t.hoverData.downs);jt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Se[4]=0,t.data.bgActivePosistion=Er(oe),t.redrawHint("select",!0),t.redraw())}ye&&ye.pannable()&&ye.active()&&ye.unactivate()}}else{if(ye&&ye.pannable()&&ye.active()&&ye.unactivate(),(!ye||!ye.grabbed())&&pe!=Te&&(Te&&a(Te,["mouseout","tapdragout"],N,{x:Z[0],y:Z[1]}),pe&&a(pe,["mouseover","tapdragover"],N,{x:Z[0],y:Z[1]}),t.hoverData.last=pe),ye)if(Xe){if(X.boxSelectionEnabled()&&It)ye&&ye.grabbed()&&(p(Fe),ye.emit("freeon"),Fe.emit("free"),t.dragData.didDrag&&(ye.emit("dragfreeon"),Fe.emit("dragfree"))),vr();else if(ye&&ye.grabbed()&&t.nodeIsDraggable(ye)){var ot=!t.dragData.didDrag;ot&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||d(Fe,{inDragLayer:!0});var je={x:0,y:0};if(ae(be[0])&&ae(be[1])&&(je.x+=be[0],je.y+=be[1],ot)){var lt=t.hoverData.dragDelta;lt&&ae(lt[0])&&ae(lt[1])&&(je.x+=lt[0],je.y+=lt[1])}t.hoverData.draggingEles=!0,Fe.silentShift(je).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else Ft();J=!0}if(Se[2]=Z[0],Se[3]=Z[1],J)return N.stopPropagation&&N.stopPropagation(),N.preventDefault&&N.preventDefault(),!1}},!1);var D,A,L;t.registerBinding(e,"mouseup",function(N){var V=t.hoverData.capture;if(V){t.hoverData.capture=!1;var J=t.cy,X=t.projectIntoViewport(N.clientX,N.clientY),q=t.selection,he=t.findNearestElement(X[0],X[1],!0,!1),Z=t.dragData.possibleDragElements,oe=t.hoverData.down,me=n(N);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,oe&&oe.unactivate(),t.hoverData.which===3){var Se={originalEvent:N,type:"cxttapend",position:{x:X[0],y:X[1]}};if(oe?oe.emit(Se):J.emit(Se),!t.hoverData.cxtDragged){var pe={originalEvent:N,type:"cxttap",position:{x:X[0],y:X[1]}};oe?oe.emit(pe):J.emit(pe)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(a(he,["mouseup","tapend","vmouseup"],N,{x:X[0],y:X[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(a(oe,["click","tap","vclick"],N,{x:X[0],y:X[1]}),A=!1,N.timeStamp-L<=J.multiClickDebounceTime()?(D&&clearTimeout(D),A=!0,L=null,a(oe,["dblclick","dbltap","vdblclick"],N,{x:X[0],y:X[1]})):(D=setTimeout(function(){A||a(oe,["oneclick","onetap","voneclick"],N,{x:X[0],y:X[1]})},J.multiClickDebounceTime()),L=N.timeStamp)),oe==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!n(N)&&(J.$(r).unselect(["tapunselect"]),Z.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=Z=J.collection()),he==oe&&!t.dragData.didDrag&&!t.hoverData.selecting&&he!=null&&he._private.selectable&&(t.hoverData.dragging||(J.selectionType()==="additive"||me?he.selected()?he.unselect(["tapunselect"]):he.select(["tapselect"]):me||(J.$(r).unmerge(he).unselect(["tapunselect"]),he.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Te=J.collection(t.getAllInBox(q[0],q[1],q[2],q[3]));t.redrawHint("select",!0),Te.length>0&&t.redrawHint("eles",!0),J.emit({type:"boxend",originalEvent:N,position:{x:X[0],y:X[1]}});var ye=function(Xe){return Xe.selectable()&&!Xe.selected()};J.selectionType()==="additive"||me||J.$(r).unmerge(Te).unselect(),Te.emit("box").stdFilter(ye).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!q[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var be=oe&&oe.grabbed();p(Z),be&&(oe.emit("freeon"),Z.emit("free"),t.dragData.didDrag&&(oe.emit("dragfreeon"),Z.emit("dragfree")))}}q[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null}},!1);var I=function(N){if(!t.scrollingPage){var V=t.cy,J=V.zoom(),X=V.pan(),q=t.projectIntoViewport(N.clientX,N.clientY),he=[q[0]*J+X.x,q[1]*J+X.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||x()){N.preventDefault();return}if(V.panningEnabled()&&V.userPanningEnabled()&&V.zoomingEnabled()&&V.userZoomingEnabled()){N.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var Z;N.deltaY!=null?Z=N.deltaY/-250:N.wheelDeltaY!=null?Z=N.wheelDeltaY/1e3:Z=N.wheelDelta/1e3,Z=Z*t.wheelSensitivity;var oe=N.deltaMode===1;oe&&(Z*=33);var me=V.zoom()*Math.pow(10,Z);N.type==="gesturechange"&&(me=t.gestureStartZoom*N.scale),V.zoom({level:me,renderedPosition:{x:he[0],y:he[1]}}),V.emit(N.type==="gesturechange"?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",I,!0),t.registerBinding(e,"scroll",function(N){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},!0),t.registerBinding(t.container,"gesturestart",function(N){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||N.preventDefault()},!0),t.registerBinding(t.container,"gesturechange",function(H){t.hasTouchStarted||I(H)},!0),t.registerBinding(t.container,"mouseout",function(N){var V=t.projectIntoViewport(N.clientX,N.clientY);t.cy.emit({originalEvent:N,type:"mouseout",position:{x:V[0],y:V[1]}})},!1),t.registerBinding(t.container,"mouseover",function(N){var V=t.projectIntoViewport(N.clientX,N.clientY);t.cy.emit({originalEvent:N,type:"mouseover",position:{x:V[0],y:V[1]}})},!1);var O,P,R,M,k,B,G,F,$,U,_,Y,W,z=function(N,V,J,X){return Math.sqrt((J-N)*(J-N)+(X-V)*(X-V))},K=function(N,V,J,X){return(J-N)*(J-N)+(X-V)*(X-V)},j;t.registerBinding(t.container,"touchstart",j=function(N){if(t.hasTouchStarted=!0,!!w(N)){E(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var V=t.cy,J=t.touchData.now,X=t.touchData.earlier;if(N.touches[0]){var q=t.projectIntoViewport(N.touches[0].clientX,N.touches[0].clientY);J[0]=q[0],J[1]=q[1]}if(N.touches[1]){var q=t.projectIntoViewport(N.touches[1].clientX,N.touches[1].clientY);J[2]=q[0],J[3]=q[1]}if(N.touches[2]){var q=t.projectIntoViewport(N.touches[2].clientX,N.touches[2].clientY);J[4]=q[0],J[5]=q[1]}if(N.touches[1]){t.touchData.singleTouchMoved=!0,p(t.dragData.touchDragEles);var he=t.findContainerClientCoords();$=he[0],U=he[1],_=he[2],Y=he[3],O=N.touches[0].clientX-$,P=N.touches[0].clientY-U,R=N.touches[1].clientX-$,M=N.touches[1].clientY-U,W=0<=O&&O<=_&&0<=R&&R<=_&&0<=P&&P<=Y&&0<=M&&M<=Y;var Z=V.pan(),oe=V.zoom();k=z(O,P,R,M),B=K(O,P,R,M),G=[(O+R)/2,(P+M)/2],F=[(G[0]-Z.x)/oe,(G[1]-Z.y)/oe];var me=200,Se=me*me;if(B=1){for(var yt=t.touchData.startPosition=[null,null,null,null,null,null],We=0;We=t.touchTapThreshold2}if(V&&t.touchData.cxt){N.preventDefault();var yt=N.touches[0].clientX-$,We=N.touches[0].clientY-U,ct=N.touches[1].clientX-$,it=N.touches[1].clientY-U,It=K(yt,We,ct,it),Ft=It/B,vr=150,Jt=vr*vr,cr=1.5,Ea=cr*cr;if(Ft>=Ea||It>=Jt){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var jt={originalEvent:N,type:"cxttapend",position:{x:q[0],y:q[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(jt),t.touchData.start=null):X.emit(jt)}}if(V&&t.touchData.cxt){var jt={originalEvent:N,type:"cxtdrag",position:{x:q[0],y:q[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(jt):X.emit(jt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var ot=t.findNearestElement(q[0],q[1],!0,!0);(!t.touchData.cxtOver||ot!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:N,type:"cxtdragout",position:{x:q[0],y:q[1]}}),t.touchData.cxtOver=ot,ot&&ot.emit({originalEvent:N,type:"cxtdragover",position:{x:q[0],y:q[1]}}))}else if(V&&N.touches[2]&&X.boxSelectionEnabled())N.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||X.emit({originalEvent:N,type:"boxstart",position:{x:q[0],y:q[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,J[4]=1,!J||J.length===0||J[0]===void 0?(J[0]=(q[0]+q[2]+q[4])/3,J[1]=(q[1]+q[3]+q[5])/3,J[2]=(q[0]+q[2]+q[4])/3+1,J[3]=(q[1]+q[3]+q[5])/3+1):(J[2]=(q[0]+q[2]+q[4])/3,J[3]=(q[1]+q[3]+q[5])/3),t.redrawHint("select",!0),t.redraw();else if(V&&N.touches[1]&&!t.touchData.didSelect&&X.zoomingEnabled()&&X.panningEnabled()&&X.userZoomingEnabled()&&X.userPanningEnabled()){N.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var je=t.dragData.touchDragEles;if(je){t.redrawHint("drag",!0);for(var lt=0;lt0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1);var ee;t.registerBinding(e,"touchcancel",ee=function(N){var V=t.touchData.start;t.touchData.capture=!1,V&&V.unactivate()});var ne,ce,te,re;if(t.registerBinding(e,"touchend",ne=function(N){var V=t.touchData.start,J=t.touchData.capture;if(J)N.touches.length===0&&(t.touchData.capture=!1),N.preventDefault();else return;var X=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var q=t.cy,he=q.zoom(),Z=t.touchData.now,oe=t.touchData.earlier;if(N.touches[0]){var me=t.projectIntoViewport(N.touches[0].clientX,N.touches[0].clientY);Z[0]=me[0],Z[1]=me[1]}if(N.touches[1]){var me=t.projectIntoViewport(N.touches[1].clientX,N.touches[1].clientY);Z[2]=me[0],Z[3]=me[1]}if(N.touches[2]){var me=t.projectIntoViewport(N.touches[2].clientX,N.touches[2].clientY);Z[4]=me[0],Z[5]=me[1]}V&&V.unactivate();var Se;if(t.touchData.cxt){if(Se={originalEvent:N,type:"cxttapend",position:{x:Z[0],y:Z[1]}},V?V.emit(Se):q.emit(Se),!t.touchData.cxtDragged){var pe={originalEvent:N,type:"cxttap",position:{x:Z[0],y:Z[1]}};V?V.emit(pe):q.emit(pe)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!N.touches[2]&&q.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Te=q.collection(t.getAllInBox(X[0],X[1],X[2],X[3]));X[0]=void 0,X[1]=void 0,X[2]=void 0,X[3]=void 0,X[4]=0,t.redrawHint("select",!0),q.emit({type:"boxend",originalEvent:N,position:{x:Z[0],y:Z[1]}});var ye=function(Jt){return Jt.selectable()&&!Jt.selected()};Te.emit("box").stdFilter(ye).select().emit("boxselect"),Te.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(V!=null&&V.unactivate(),N.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!N.touches[1]){if(!N.touches[0]){if(!N.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var be=t.dragData.touchDragEles;if(V!=null){var Fe=V._private.grabbed;p(be),t.redrawHint("drag",!0),t.redrawHint("eles",!0),Fe&&(V.emit("freeon"),be.emit("free"),t.dragData.didDrag&&(V.emit("dragfreeon"),be.emit("dragfree"))),a(V,["touchend","tapend","vmouseup","tapdragout"],N,{x:Z[0],y:Z[1]}),V.unactivate(),t.touchData.start=null}else{var Xe=t.findNearestElement(Z[0],Z[1],!0,!0);a(Xe,["touchend","tapend","vmouseup","tapdragout"],N,{x:Z[0],y:Z[1]})}var pt=t.touchData.startPosition[0]-Z[0],yt=pt*pt,We=t.touchData.startPosition[1]-Z[1],ct=We*We,it=yt+ct,It=it*he*he;t.touchData.singleTouchMoved||(V||q.$(":selected").unselect(["tapunselect"]),a(V,["tap","vclick"],N,{x:Z[0],y:Z[1]}),ce=!1,N.timeStamp-re<=q.multiClickDebounceTime()?(te&&clearTimeout(te),ce=!0,re=null,a(V,["dbltap","vdblclick"],N,{x:Z[0],y:Z[1]})):(te=setTimeout(function(){ce||a(V,["onetap","voneclick"],N,{x:Z[0],y:Z[1]})},q.multiClickDebounceTime()),re=N.timeStamp)),V!=null&&!t.dragData.didDrag&&V._private.selectable&&It"u"){var ue=[],le=function(N){return{clientX:N.clientX,clientY:N.clientY,force:1,identifier:N.pointerId,pageX:N.pageX,pageY:N.pageY,radiusX:N.width/2,radiusY:N.height/2,screenX:N.screenX,screenY:N.screenY,target:N.target}},se=function(N){return{event:N,touch:le(N)}},fe=function(N){ue.push(se(N))},xe=function(N){for(var V=0;V0)return F[0]}return null},v=Object.keys(h),d=0;d0?c:To(i,s,e,r,a,n,o)},checkPoint:function(e,r,a,n,i,s,o){var l=da(n,i),u=2*l;if(Rt(e,r,this.points,s,o,n,i-u,[0,-1],a)||Rt(e,r,this.points,s,o,n-u,i,[0,-1],a))return!0;var f=n/2+2*a,h=i/2+2*a,c=[s-f,o-h,s-f,o,s+f,o,s+f,o-h];return!!(ut(e,r,c)||rr(e,r,u,u,s+n/2-l,o+i/2-l,a)||rr(e,r,u,u,s-n/2+l,o+i/2-l,a))}}};Pt.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",st(3,0)),this.generateRoundPolygon("round-triangle",st(3,0)),this.generatePolygon("rectangle",st(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",st(5,0)),this.generateRoundPolygon("round-pentagon",st(5,0)),this.generatePolygon("hexagon",st(6,0)),this.generateRoundPolygon("round-hexagon",st(6,0)),this.generatePolygon("heptagon",st(7,0)),this.generateRoundPolygon("round-heptagon",st(7,0)),this.generatePolygon("octagon",st(8,0)),this.generateRoundPolygon("round-octagon",st(8,0));var a=new Array(20);{var n=Gn(5,0),i=Gn(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*T)break}else if(u){if(E>=e.deqCost*v||E>=e.deqAvgCost*c)break}else if(m>=e.deqNoDrawCost*Rn)break;var C=e.deq(a,p,g);if(C.length>0)for(var S=0;S0&&(e.onDeqd(a,d),!u&&e.shouldRedraw(a,d,p,g)&&i())},o=e.priority||oi;n.beforeRender(s,o(a))}}}},Ly=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Xa;ri(this,t),this.idsByKey=new Lt,this.keyForId=new Lt,this.cachesByLvl=new Lt,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return ai(t,[{key:"getIdsFor",value:function(r){r==null&&Ge("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(r);return n||(n=new Mr,a.set(r,n)),n}},{key:"addIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).add(a)}},{key:"deleteIdForKey",value:function(r,a){r!=null&&this.getIdsFor(r).delete(a)}},{key:"getNumberOfIdsForKey",value:function(r){return r==null?0:this.getIdsFor(r).size}},{key:"updateKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)}},{key:"deleteKeyMappingFor",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(r){var a=r.id(),n=this.keyForId.get(a),i=this.getKey(r);return n!==i}},{key:"isInvalid",value:function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)}},{key:"getCachesAt",value:function(r){var a=this.cachesByLvl,n=this.lvls,i=a.get(r);return i||(i=new Lt,a.set(r,i),n.push(r)),i}},{key:"getCache",value:function(r,a){return this.getCachesAt(a).get(r)}},{key:"get",value:function(r,a){var n=this.getKey(r),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(r),i}},{key:"getForCachedKey",value:function(r,a){var n=this.keyForId.get(r.id()),i=this.getCache(n,a);return i}},{key:"hasCache",value:function(r,a){return this.getCachesAt(a).has(r)}},{key:"has",value:function(r,a){var n=this.getKey(r);return this.hasCache(n,a)}},{key:"setCache",value:function(r,a,n){n.key=r,this.getCachesAt(a).set(r,n)}},{key:"set",value:function(r,a,n){var i=this.getKey(r);this.setCache(i,a,n),this.updateKeyMappingFor(r)}},{key:"deleteCache",value:function(r,a){this.getCachesAt(a).delete(r)}},{key:"delete",value:function(r,a){var n=this.getKey(r);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(r){var a=this;this.lvls.forEach(function(n){return a.deleteCache(r,n)})}},{key:"invalidate",value:function(r){var a=r.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(r);var i=this.doesEleInvalidateKey(r);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0}}]),t}(),Ps=25,Ra=50,Va=-4,Xn=3,Ay=7.99,Oy=8,Ny=1024,Iy=1024,My=1024,Ry=.2,ky=.8,Py=10,By=.15,Fy=.1,Gy=.9,zy=.9,$y=100,Vy=1,wr={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},_y=Qe({getKey:null,doesEleInvalidateKey:Xa,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:go,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Kr=function(e,r){var a=this;a.renderer=e,a.onDequeues=[];var n=_y(r);de(a,n),a.lookup=new Ly(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},He=Kr.prototype;He.reasons=wr;He.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};He.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=r[t]=r[t]||[];return a};He.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new ha.default(function(r,a){return a.reqs-r.reqs});return e};He.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};He.getElement=function(t,e,r,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!i.allowEdgeTxrCaching&&t.isEdge()||!i.allowParentTxrCaching&&t.isParent())return null;if(a==null&&(a=Math.ceil(ui(o*r))),a=Ay||a>Xn)return null;var u=Math.pow(2,a),f=e.h*u,h=e.w*u,c=s.eleTextBiggerThanMin(t,u);if(!this.isVisible(t,c))return null;var v=l.get(t,a);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;var d;if(f<=Ps?d=Ps:f<=Ra?d=Ra:d=Math.ceil(f/Ra)*Ra,f>My||h>Iy)return null;var g=i.getTextureQueue(d),p=g[g.length-2],y=function(){return i.recycleTexture(d,h)||i.addTexture(d,h)};p||(p=g[g.length-1]),p||(p=y()),p.width-p.usedWidtha;A--)w=i.getElement(t,e,r,A,wr.downscale);D()}else return i.queueElement(t,S.level-1),S;else{var L;if(!m&&!T&&!C)for(var I=a-1;I>=Va;I--){var O=l.get(t,I);if(O){L=O;break}}if(E(L))return i.queueElement(t,a),L;p.context.translate(p.usedWidth,0),p.context.scale(u,u),this.drawElement(p.context,t,e,c,!1),p.context.scale(1/u,1/u),p.context.translate(-p.usedWidth,0)}return v={x:p.usedWidth,texture:p,level:a,scale:u,width:h,height:f,scaledLabelShown:c},p.usedWidth+=Math.ceil(h+Oy),p.eleCaches.push(v),l.set(t,a,v),i.checkTextureFullness(p),v};He.invalidateElements=function(t){for(var e=0;e=Ry*t.width&&this.retireTexture(t)};He.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>ky&&t.fullnessChecks>=Py?Xt(r,t):t.fullnessChecks++};He.retireTexture=function(t){var e=this,r=t.height,a=e.getTextureQueue(r),n=this.lookup;Xt(a,t),t.retired=!0;for(var i=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,li(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Xt(n,s),a.push(s),s}};He.queueElement=function(t,e){var r=this,a=r.getElementQueue(),n=r.getElementKeyToQueue(),i=this.getKey(t),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,a.updateItem(s);else{var o={eles:t.spawn().merge(t),level:e,reqs:1,key:i};a.push(o),n[i]=o}};He.dequeue=function(t){for(var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s0;s++){var o=r.pop(),l=o.key,u=o.eles[0],f=i.hasCache(u,o.level);if(a[l]=null,f)continue;n.push(o);var h=e.getBoundingBox(u);e.getElement(u,h,t,o.level,wr.dequeue)}return n};He.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(t),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=si,r.updateItem(i),r.pop(),a[n]=null):i.eles.unmerge(t))};He.onDequeue=function(t){this.onDequeues.push(t)};He.offDequeue=function(t){Xt(this.onDequeues,t)};He.setupDequeueing=dl.setupDequeueing({deqRedrawThreshold:$y,deqCost:By,deqAvgCost:Fy,deqNoDrawCost:Gy,deqFastCost:zy,deq:function(e,r,a){return e.dequeue(r,a)},onDeqd:function(e,r){for(var a=0;a=Hy||r>en)return null}a.validateLayersElesOrdering(r,t);var l=a.layersByLevel,u=Math.pow(2,r),f=l[r]=l[r]||[],h,c=a.levelIsComplete(r,t),v,d=function(){var D=function(P){if(a.validateLayersElesOrdering(P,t),a.levelIsComplete(P,t))return v=l[P],!0},A=function(P){if(!v)for(var R=r+P;Qr<=R&&R<=en&&!D(R);R+=P);};A(1),A(-1);for(var L=f.length-1;L>=0;L--){var I=f[L];I.invalid&&Xt(f,I)}};if(!c)d();else return f;var g=function(){if(!h){h=ft();for(var D=0;DJy)return null;var I=a.makeLayer(h,r);if(A!=null){var O=f.indexOf(A)+1;f.splice(O,0,I)}else(D.insert===void 0||D.insert)&&f.unshift(I);return I};if(a.skipping&&!o)return null;for(var y=null,E=t.length/Uy,m=!o,T=0;T=E||!xo(y.bb,C.boundingBox()))&&(y=p({insert:!0,after:y}),!y))return null;v||m?a.queueLayer(y,C):a.drawEleInLayer(y,C,r,e),y.eles.push(C),b[r]=y}return v||(m?null:f)};Je.getEleLevelForLayerLevel=function(t,e){return t};Je.drawEleInLayer=function(t,e,r,a){var n=this,i=this.renderer,s=t.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(r=n.getEleLevelForLayerLevel(r,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,r,jy),i.setImgSmoothing(s,!0))};Je.levelIsComplete=function(t,e){var r=this,a=r.layersByLevel[t];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length};Je.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var a=0;a0){e=!0;break}}return e};Je.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Mt(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,function(a,n,i){e.invalidateLayer(a)}))};Je.invalidateLayer=function(t){if(this.lastInvalidationTime=Mt(),!t.invalid){var e=t.level,r=t.eles,a=this.layersByLevel[e];Xt(a,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var n=0;n3&&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())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var l;r&&(l=r,t.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,f=i?e.pstyle("line-opacity").value:1,h=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,v=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,g=u*f,p=u*f,y=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;h==="straight-triangle"?(s.eleStrokeStyle(t,e,L),s.drawEdgeTrianglePath(e,t,o.allpts)):(t.lineWidth=v,t.lineCap=d,s.eleStrokeStyle(t,e,L),s.drawEdgePath(e,t,o.allpts,c),t.lineCap="butt")},E=function(){n&&s.drawEdgeOverlay(t,e)},m=function(){n&&s.drawEdgeUnderlay(t,e)},T=function(){var L=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p;s.drawArrowheads(t,e,L)},C=function(){s.drawElementText(t,e,null,a)};t.lineJoin="round";var S=e.pstyle("ghost").value==="yes";if(S){var b=e.pstyle("ghost-offset-x").pfValue,x=e.pstyle("ghost-offset-y").pfValue,w=e.pstyle("ghost-opacity").value,D=g*w;t.translate(b,x),y(D),T(D),t.translate(-b,-x)}m(),y(),T(),E(),C(),r&&t.translate(l.x1,l.y1)}};var yl=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,f=a.pstyle("".concat(e,"-color")).value;r.lineWidth=u,o.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",i.colorStrokeStyle(r,f[0],f[1],f[2],n),i.drawEdgePath(a,r,o.allpts,"solid")}}}};Bt.drawEdgeOverlay=yl("overlay");Bt.drawEdgeUnderlay=yl("underlay");Bt.drawEdgePath=function(t,e,r,a){var n=t._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(l){var h=r.join("$"),c=n.pathCacheKey&&n.pathCacheKey===h;c?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=h,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var v=2;v+35&&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 l=s.getLabelJustification(e);t.textAlign=l,t.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,f=e.pstyle("label"),h=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!f||!f.value)&&(!h||!h.value)&&(!c||!c.value))return;t.textAlign="center",t.textBaseline="bottom"}var v=!r,d;r&&(d=r,t.translate(-d.x1,-d.y1)),n==null?(s.drawText(t,e,null,v,i),e.isEdge()&&(s.drawText(t,e,"source",v,i),s.drawText(t,e,"target",v,i))):s.drawText(t,e,n,v,i),r&&t.translate(d.x1,d.y1)};hr.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&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=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=a+" "+s+" "+n+" "+i,t.lineJoin="round",this.colorFillStyle(t,u[0],u[1],u[2],o),this.colorStrokeStyle(t,f[0],f[1],f[2],l)};function Pn(t,e,r,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+i,r),t.lineTo(e+a-i,r),t.quadraticCurveTo(e+a,r,e+a,r+i),t.lineTo(e+a,r+n-i),t.quadraticCurveTo(e+a,r+n,e+a-i,r+n),t.lineTo(e+i,r+n),t.quadraticCurveTo(e,r+n,e,r+n-i),t.lineTo(e,r+i),t.quadraticCurveTo(e,r,e+i,r),t.closePath(),s?t.stroke():t.fill()}hr.getTextAngle=function(t,e){var r,a=t._private,n=a.rscratch,i=e?e+"-":"",s=t.pstyle(i+"text-rotation"),o=xt(n,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?o:0:s.strValue==="none"?r=0:r=s.pfValue,r};hr.drawText=function(t,e,r){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))){r==="main"&&(r=null);var l=xt(s,"labelX",r),u=xt(s,"labelY",r),f,h,c=this.getLabelText(e,r);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(t,e,n);var v=r?r+"-":"",d=xt(s,"labelWidth",r),g=xt(s,"labelHeight",r),p=e.pstyle(v+"text-margin-x").pfValue,y=e.pstyle(v+"text-margin-y").pfValue,E=e.isEdge(),m=e.pstyle("text-halign").value,T=e.pstyle("text-valign").value;E&&(m="center",T="center"),l+=p,u+=y;var C;switch(a?C=this.getTextAngle(e,r):C=0,C!==0&&(f=l,h=u,t.translate(f,h),t.rotate(C),l=0,u=0),T){case"top":break;case"center":u+=g/2;break;case"bottom":u+=g;break}var S=e.pstyle("text-background-opacity").value,b=e.pstyle("text-border-opacity").value,x=e.pstyle("text-border-width").pfValue,w=e.pstyle("text-background-padding").pfValue,D=e.pstyle("text-background-shape").strValue,A=D.indexOf("round")===0,L=2;if(S>0||x>0&&b>0){var I=l-w;switch(m){case"left":I-=d;break;case"center":I-=d/2;break}var O=u-g-w,P=d+2*w,R=g+2*w;if(S>0){var M=t.fillStyle,k=e.pstyle("text-background-color").value;t.fillStyle="rgba("+k[0]+","+k[1]+","+k[2]+","+S*o+")",A?Pn(t,I,O,P,R,L):t.fillRect(I,O,P,R),t.fillStyle=M}if(x>0&&b>0){var B=t.strokeStyle,G=t.lineWidth,F=e.pstyle("text-border-color").value,$=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+b*o+")",t.lineWidth=x,t.setLineDash)switch($){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=x/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(A?Pn(t,I,O,P,R,L,"stroke"):t.strokeRect(I,O,P,R),$==="double"){var U=x/2;A?Pn(t,I+U,O+U,P-U*2,R-U*2,L,"stroke"):t.strokeRect(I+U,O+U,P-U*2,R-U*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=G,t.strokeStyle=B}}var _=2*e.pstyle("text-outline-width").pfValue;if(_>0&&(t.lineWidth=_),e.pstyle("text-wrap").value==="wrap"){var Y=xt(s,"labelWrapCachedLines",r),W=xt(s,"labelLineHeight",r),z=d/2,K=this.getLabelJustification(e);switch(K==="auto"||(m==="left"?K==="left"?l+=-d:K==="center"&&(l+=-z):m==="center"?K==="left"?l+=-z:K==="right"&&(l+=z):m==="right"&&(K==="center"?l+=z:K==="right"&&(l+=d))),T){case"top":u-=(Y.length-1)*W;break;case"center":case"bottom":u-=(Y.length-1)*W;break}for(var j=0;j0&&t.strokeText(Y[j],l,u),t.fillText(Y[j],l,u),u+=W}else _>0&&t.strokeText(c,l,u),t.fillText(c,l,u);C!==0&&(t.rotate(-C),t.translate(-f,-h))}}};var Gr={};Gr.drawNode=function(t,e,r){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,l,u=e._private,f=u.rscratch,h=e.position();if(!(!ae(h.x)||!ae(h.y))&&!(i&&!e.visible())){var c=i?e.effectiveOpacity():1,v=s.usePaths(),d,g=!1,p=e.padding();o=e.width()+2*p,l=e.height()+2*p;var y;r&&(y=r,t.translate(-y.x1,-y.y1));for(var E=e.pstyle("background-image"),m=E.value,T=new Array(m.length),C=new Array(m.length),S=0,b=0;b0&&arguments[0]!==void 0?arguments[0]:I;s.eleFillStyle(t,e,H)},U=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:R;s.colorStrokeStyle(t,O[0],O[1],O[2],H)},_=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:G;s.colorStrokeStyle(t,k[0],k[1],k[2],H)},Y=function(H,N,V,J){var X=s.nodePathCache=s.nodePathCache||[],q=co(V==="polygon"?V+","+J.join(","):V,""+N,""+H),he=X[q],Z,oe=!1;return he!=null?(Z=he,oe=!0,f.pathCache=Z):(Z=new Path2D,X[q]=f.pathCache=Z),{path:Z,cacheHit:oe}},W=e.pstyle("shape").strValue,z=e.pstyle("shape-polygon-points").pfValue;if(v){t.translate(h.x,h.y);var K=Y(o,l,W,z);d=K.path,g=K.cacheHit}var j=function(){if(!g){var H=h;v&&(H={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(d||t,H.x,H.y,o,l)}v?t.fill(d):t.fill()},Q=function(){for(var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,V=u.backgrounding,J=0,X=0;X0&&arguments[0]!==void 0?arguments[0]:!1,N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c;s.hasPie(e)&&(s.drawPie(t,e,N),H&&(v||s.nodeShapes[s.getNodeShape(e)].draw(t,h.x,h.y,o,l)))},ne=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:c,N=(A>0?A:-A)*H,V=A>0?0:255;A!==0&&(s.colorFillStyle(t,V,V,V,N),v?t.fill(d):t.fill())},ce=function(){if(L>0){if(t.lineWidth=L,t.lineCap="butt",t.setLineDash)switch(P){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}if(v?t.stroke(d):t.stroke(),P==="double"){t.lineWidth=L/3;var H=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(d):t.stroke(),t.globalCompositeOperation=H}t.setLineDash&&t.setLineDash([])}},te=function(){if(M>0){if(t.lineWidth=M,t.lineCap="butt",t.setLineDash)switch(B){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var H=h;v&&(H={x:0,y:0});var N=s.getNodeShape(e),V=(o+L+(M+F))/o,J=(l+L+(M+F))/l,X=o*V,q=l*J,he=s.nodeShapes[N].points,Z;if(v){var oe=Y(X,q,N,he);Z=oe.path}if(N==="ellipse")s.drawEllipsePath(Z||t,H.x,H.y,X,q);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(N)){var me=0,Se=0,pe=0;N==="round-diamond"?me=(L+F+M)*1.4:N==="round-heptagon"?(me=(L+F+M)*1.075,pe=-(L/2+F+M)/35):N==="round-hexagon"?me=(L+F+M)*1.12:N==="round-pentagon"?(me=(L+F+M)*1.13,pe=-(L/2+F+M)/15):N==="round-tag"?(me=(L+F+M)*1.12,Se=(L/2+M+F)*.07):N==="round-triangle"&&(me=(L+F+M)*(Math.PI/2),pe=-(L+F/2+M)/Math.PI),me!==0&&(V=(o+me)/o,J=(l+me)/l),s.drawRoundPolygonPath(Z||t,H.x+Se,H.y+pe,o*V,l*J,he)}else if(["roundrectangle","round-rectangle"].includes(N))s.drawRoundRectanglePath(Z||t,H.x,H.y,X,q);else if(["cutrectangle","cut-rectangle"].includes(N))s.drawCutRectanglePath(Z||t,H.x,H.y,X,q);else if(["bottomroundrectangle","bottom-round-rectangle"].includes(N))s.drawBottomRoundRectanglePath(Z||t,H.x,H.y,X,q);else if(N==="barrel")s.drawBarrelPath(Z||t,H.x,H.y,X,q);else if(N.startsWith("polygon")||["rhomboid","right-rhomboid","round-tag","tag","vee"].includes(N)){var Te=(L+M+F)/o;he=Wa(qa(he,Te)),s.drawPolygonPath(Z||t,H.x,H.y,o,l,he)}else{var ye=(L+M+F)/o;he=Wa(qa(he,-ye)),s.drawPolygonPath(Z||t,H.x,H.y,o,l,he)}if(v?t.stroke(Z):t.stroke(),B==="double"){t.lineWidth=L/3;var be=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",v?t.stroke(Z):t.stroke(),t.globalCompositeOperation=be}t.setLineDash&&t.setLineDash([])}},re=function(){n&&s.drawNodeOverlay(t,e,h,o,l)},ue=function(){n&&s.drawNodeUnderlay(t,e,h,o,l)},le=function(){s.drawElementText(t,e,null,a)},se=e.pstyle("ghost").value==="yes";if(se){var fe=e.pstyle("ghost-offset-x").pfValue,xe=e.pstyle("ghost-offset-y").pfValue,Ee=e.pstyle("ghost-opacity").value,ge=Ee*c;t.translate(fe,xe),_(),te(),$(Ee*I),j(),Q(ge,!0),U(Ee*R),ce(),ee(A!==0||L!==0),Q(ge,!1),ne(ge),t.translate(-fe,-xe)}v&&t.translate(-h.x,-h.y),ue(),v&&t.translate(h.x,h.y),_(),te(),$(),j(),Q(c,!0),U(),ce(),ee(A!==0||L!==0),Q(c,!1),ne(),v&&t.translate(-h.x,-h.y),le(),re(),r&&t.translate(y.x1,y.y1)}};var ml=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,a,n,i,s){var o=this;if(a.visible()){var l=a.pstyle("".concat(e,"-padding")).pfValue,u=a.pstyle("".concat(e,"-opacity")).value,f=a.pstyle("".concat(e,"-color")).value,h=a.pstyle("".concat(e,"-shape")).value;if(u>0){if(n=n||a.position(),i==null||s==null){var c=a.padding();i=a.width()+2*c,s=a.height()+2*c}o.colorFillStyle(r,f[0],f[1],f[2],u),o.nodeShapes[h].draw(r,n.x,n.y,i+l*2,s+l*2),r.fill()}}}};Gr.drawNodeOverlay=ml("overlay");Gr.drawNodeUnderlay=ml("underlay");Gr.hasPie=function(t){return t=t[0],t._private.hasPie};Gr.drawPie=function(t,e,r,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=a.x,o=a.y,l=e.width(),u=e.height(),f=Math.min(l,u)/2,h=0,c=this.usePaths();c&&(s=0,o=0),i.units==="%"?f=f*i.pfValue:i.pfValue!==void 0&&(f=i.pfValue/2);for(var v=1;v<=n.pieBackgroundN;v++){var d=e.pstyle("pie-"+v+"-background-size").value,g=e.pstyle("pie-"+v+"-background-color").value,p=e.pstyle("pie-"+v+"-background-opacity").value*r,y=d/100;y+h>1&&(y=1-h);var E=1.5*Math.PI+2*Math.PI*h,m=2*Math.PI*y,T=E+m;d===0||h>=1||h+y>1||(t.beginPath(),t.moveTo(s,o),t.arc(s,o,f,E,T),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],p),t.fill(),h+=y)}};var vt={},fm=100;vt.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/e};vt.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,a,n=0;ns.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!h&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var E=l.style(),m=l.zoom(),T=n!==void 0?n:m,C=l.pan(),S={x:C.x,y:C.y},b={zoom:m,pan:{x:C.x,y:C.y}},x=s.prevViewport,w=x===void 0||b.zoom!==x.zoom||b.pan.x!==x.pan.x||b.pan.y!==x.pan.y;!w&&!(g&&!d)&&(s.motionBlurPxRatio=1),i&&(S=i),T*=o,S.x*=o,S.y*=o;var D=s.getCachedZSortedEles();function A(te,re,ue,le,se){var fe=te.globalCompositeOperation;te.globalCompositeOperation="destination-out",s.colorFillStyle(te,255,255,255,s.motionBlurTransparency),te.fillRect(re,ue,le,se),te.globalCompositeOperation=fe}function L(te,re){var ue,le,se,fe;!s.clearingMotionBlur&&(te===u.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||te===u.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(ue={x:C.x*v,y:C.y*v},le=m*v,se=s.canvasWidth*v,fe=s.canvasHeight*v):(ue=S,le=T,se=s.canvasWidth,fe=s.canvasHeight),te.setTransform(1,0,0,1,0,0),re==="motionBlur"?A(te,0,0,se,fe):!e&&(re===void 0||re)&&te.clearRect(0,0,se,fe),r||(te.translate(ue.x,ue.y),te.scale(le,le)),i&&te.translate(i.x,i.y),n&&te.scale(n,n)}if(h||(s.textureDrawLastFrame=!1),h){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=l.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var I=s.data.bufferContexts[s.TEXTURE_BUFFER];I.setTransform(1,0,0,1,0,0),I.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:I,drawOnlyNodeLayer:!0,forcedPxRatio:o*s.textureMult});var b=s.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:s.canvasWidth,height:s.canvasHeight};b.mpan={x:(0-b.pan.x)/b.zoom,y:(0-b.pan.y)/b.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var O=u.contexts[s.NODE],P=s.textureCache.texture,b=s.textureCache.viewport;O.setTransform(1,0,0,1,0,0),c?A(O,0,0,b.width,b.height):O.clearRect(0,0,b.width,b.height);var R=E.core("outside-texture-bg-color").value,M=E.core("outside-texture-bg-opacity").value;s.colorFillStyle(O,R[0],R[1],R[2],M),O.fillRect(0,0,b.width,b.height);var m=l.zoom();L(O,!1),O.clearRect(b.mpan.x,b.mpan.y,b.width/b.zoom/o,b.height/b.zoom/o),O.drawImage(P,b.mpan.x,b.mpan.y,b.width/b.zoom/o,b.height/b.zoom/o)}else s.textureOnViewport&&!e&&(s.textureCache=null);var k=l.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),G=s.hideEdgesOnViewport&&B,F=[];if(F[s.NODE]=!f[s.NODE]&&c&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,F[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),F[s.DRAG]=!f[s.DRAG]&&c&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,F[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||a||F[s.NODE]){var $=c&&!F[s.NODE]&&v!==1,O=e||($?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:u.contexts[s.NODE]),U=c&&!$?"motionBlur":void 0;L(O,U),G?s.drawCachedNodes(O,D.nondrag,o,k):s.drawLayeredElements(O,D.nondrag,o,k),s.debug&&s.drawDebugPoints(O,D.nondrag),!r&&!c&&(f[s.NODE]=!1)}if(!a&&(f[s.DRAG]||r||F[s.DRAG])){var $=c&&!F[s.DRAG]&&v!==1,O=e||($?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:u.contexts[s.DRAG]);L(O,c&&!$?"motionBlur":void 0),G?s.drawCachedNodes(O,D.drag,o,k):s.drawCachedElements(O,D.drag,o,k),s.debug&&s.drawDebugPoints(O,D.drag),!r&&!c&&(f[s.DRAG]=!1)}if(s.showFps||!a&&f[s.SELECT_BOX]&&!r){var O=e||u.contexts[s.SELECT_BOX];if(L(O),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var m=s.cy.zoom(),_=E.core("selection-box-border-width").value/m;O.lineWidth=_,O.fillStyle="rgba("+E.core("selection-box-color").value[0]+","+E.core("selection-box-color").value[1]+","+E.core("selection-box-color").value[2]+","+E.core("selection-box-opacity").value+")",O.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),_>0&&(O.strokeStyle="rgba("+E.core("selection-box-border-color").value[0]+","+E.core("selection-box-border-color").value[1]+","+E.core("selection-box-border-color").value[2]+","+E.core("selection-box-opacity").value+")",O.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(u.bgActivePosistion&&!s.hoverData.selecting){var m=s.cy.zoom(),Y=u.bgActivePosistion;O.fillStyle="rgba("+E.core("active-bg-color").value[0]+","+E.core("active-bg-color").value[1]+","+E.core("active-bg-color").value[2]+","+E.core("active-bg-opacity").value+")",O.beginPath(),O.arc(Y.x,Y.y,E.core("active-bg-size").pfValue/m,0,2*Math.PI),O.fill()}var W=s.lastRedrawTime;if(s.showFps&&W){W=Math.round(W);var z=Math.round(1e3/W);O.setTransform(1,0,0,1,0,0),O.fillStyle="rgba(255, 0, 0, 0.75)",O.strokeStyle="rgba(255, 0, 0, 0.75)",O.lineWidth=1,O.fillText("1 frame = "+W+" ms = "+z+" fps",0,20);var K=60;O.strokeRect(0,30,250,20),O.fillRect(0,30,250*Math.min(z/K,1),20)}r||(f[s.SELECT_BOX]=!1)}if(c&&v!==1){var j=u.contexts[s.NODE],Q=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],ee=u.contexts[s.DRAG],ne=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ce=function(re,ue,le){re.setTransform(1,0,0,1,0,0),le||!y?re.clearRect(0,0,s.canvasWidth,s.canvasHeight):A(re,0,0,s.canvasWidth,s.canvasHeight);var se=v;re.drawImage(ue,0,0,s.canvasWidth*se,s.canvasHeight*se,0,0,s.canvasWidth,s.canvasHeight)};(f[s.NODE]||F[s.NODE])&&(ce(j,Q,F[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||F[s.DRAG])&&(ce(ee,ne,F[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=b,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),c&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!h,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},fm)),e||l.emit("render")};var Qt={};Qt.drawPolygonPath=function(t,e,r,a,n,i){var s=a/2,o=n/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*i[0],r+o*i[1]);for(var l=1;l0&&s>0){v.clearRect(0,0,i,s),v.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(t.full)v.translate(-a.x1*u,-a.y1*u),v.scale(u,u),this.drawElements(v,d),v.scale(1/u,1/u),v.translate(a.x1*u,a.y1*u);else{var g=e.pan(),p={x:g.x*u,y:g.y*u};u*=e.zoom(),v.translate(p.x,p.y),v.scale(u,u),this.drawElements(v,d),v.scale(1/u,1/u),v.translate(-p.x,-p.y)}t.bg&&(v.globalCompositeOperation="destination-over",v.fillStyle=t.bg,v.rect(0,0,i,s),v.fill())}return c};function hm(t,e){for(var r=atob(t),a=new ArrayBuffer(r.length),n=new Uint8Array(a),i=0;i"u"?"undefined":Ue(OffscreenCanvas))!=="undefined"?r=new OffscreenCanvas(t,e):(r=document.createElement("canvas"),r.width=t,r.height=e),r};[pl,Nt,Bt,wi,hr,Gr,vt,Qt,ba,wl].forEach(function(t){de(Le,t)});var dm=[{name:"null",impl:sl},{name:"base",impl:cl},{name:"canvas",impl:vm}],gm=[{type:"layout",extensions:Ty},{type:"renderer",extensions:dm}],Tl={},Cl={};function Dl(t,e,r){var a=r,n=function(x){Ne("Can not register `"+e+"` for `"+t+"` since `"+x+"` already exists in the prototype and can not be overridden")};if(t==="core"){if(oa.prototype[e])return n(e);oa.prototype[e]=r}else if(t==="collection"){if(Ze.prototype[e])return n(e);Ze.prototype[e]=r}else if(t==="layout"){for(var i=function(x){this.options=x,r.call(this,x),De(this._private)||(this._private={}),this._private.cy=x.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(r.prototype),o=[],l=0;ld&&(this.rect.x-=(this.labelWidth-d)/2,this.setWidth(this.labelWidth)),this.labelHeight>g&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-g)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-g),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==s.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(v){var d=this.rect.x;d>l.WORLD_BOUNDARY?d=l.WORLD_BOUNDARY:d<-l.WORLD_BOUNDARY&&(d=-l.WORLD_BOUNDARY);var g=this.rect.y;g>l.WORLD_BOUNDARY?g=l.WORLD_BOUNDARY:g<-l.WORLD_BOUNDARY&&(g=-l.WORLD_BOUNDARY);var p=new f(d,g),y=v.inverseTransformPoint(p);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},r.exports=h},function(r,a,n){function i(s,o){s==null&&o==null?(this.x=0,this.y=0):(this.x=s,this.y=o)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(s){this.x=s},i.prototype.setY=function(s){this.y=s},i.prototype.getDifference=function(s){return new DimensionD(this.x-s.x,this.y-s.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(s){return this.x+=s.width,this.y+=s.height,this},r.exports=i},function(r,a,n){var i=n(2),s=n(10),o=n(0),l=n(6),u=n(3),f=n(1),h=n(13),c=n(12),v=n(11);function d(p,y,E){i.call(this,E),this.estimatedSize=s.MIN_VALUE,this.margin=o.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=p,y!=null&&y instanceof l?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}d.prototype=Object.create(i.prototype);for(var g in i)d[g]=i[g];d.prototype.getNodes=function(){return this.nodes},d.prototype.getEdges=function(){return this.edges},d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getParent=function(){return this.parent},d.prototype.getLeft=function(){return this.left},d.prototype.getRight=function(){return this.right},d.prototype.getTop=function(){return this.top},d.prototype.getBottom=function(){return this.bottom},d.prototype.isConnected=function(){return this.isConnected},d.prototype.add=function(p,y,E){if(y==null&&E==null){var m=p;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(m)>-1)throw"Node already in graph!";return m.owner=this,this.getNodes().push(m),m}else{var T=p;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(E)>-1))throw"Source or target not in graph!";if(!(y.owner==E.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=E.owner?null:(T.source=y,T.target=E,T.isInterGraph=!1,this.getEdges().push(T),y.edges.push(T),E!=y&&E.edges.push(T),T)}},d.prototype.remove=function(p){var y=p;if(p instanceof u){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var E=y.edges.slice(),m,T=E.length,C=0;C-1&&x>-1))throw"Source and/or target doesn't know this edge!";m.source.edges.splice(b,1),m.target!=m.source&&m.target.edges.splice(x,1);var S=m.source.owner.getEdges().indexOf(m);if(S==-1)throw"Not in owner's edge list!";m.source.owner.getEdges().splice(S,1)}},d.prototype.updateLeftTop=function(){for(var p=s.MAX_VALUE,y=s.MAX_VALUE,E,m,T,C=this.getNodes(),S=C.length,b=0;bE&&(p=E),y>m&&(y=m)}return p==s.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?T=C[0].getParent().paddingLeft:T=this.margin,this.left=y-T,this.top=p-T,new c(this.left,this.top))},d.prototype.updateBounds=function(p){for(var y=s.MAX_VALUE,E=-s.MAX_VALUE,m=s.MAX_VALUE,T=-s.MAX_VALUE,C,S,b,x,w,D=this.nodes,A=D.length,L=0;LC&&(y=C),Eb&&(m=b),TC&&(y=C),Eb&&(m=b),T=this.nodes.length){var A=0;E.forEach(function(L){L.owner==p&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},r.exports=d},function(r,a,n){var i,s=n(1);function o(l){i=n(5),this.layout=l,this.graphs=[],this.edges=[]}o.prototype.addRoot=function(){var l=this.layout.newGraph(),u=this.layout.newNode(null),f=this.add(l,u);return this.setRootGraph(f),this.rootGraph},o.prototype.add=function(l,u,f,h,c){if(f==null&&h==null&&c==null){if(l==null)throw"Graph is null!";if(u==null)throw"Parent node is null!";if(this.graphs.indexOf(l)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(l),l.parent!=null)throw"Already has a parent!";if(u.child!=null)throw"Already has a child!";return l.parent=u,u.child=l,l}else{c=f,h=u,f=l;var v=h.getOwner(),d=c.getOwner();if(!(v!=null&&v.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(d!=null&&d.getGraphManager()==this))throw"Target not in this graph mgr!";if(v==d)return f.isInterGraph=!1,v.add(f,h,c);if(f.isInterGraph=!0,f.source=h,f.target=c,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},o.prototype.remove=function(l){if(l instanceof i){var u=l;if(u.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(u==this.rootGraph||u.parent!=null&&u.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(u.getEdges());for(var h,c=f.length,v=0;v=l.getRight()?u[0]+=Math.min(l.getX()-o.getX(),o.getRight()-l.getRight()):l.getX()<=o.getX()&&l.getRight()>=o.getRight()&&(u[0]+=Math.min(o.getX()-l.getX(),l.getRight()-o.getRight())),o.getY()<=l.getY()&&o.getBottom()>=l.getBottom()?u[1]+=Math.min(l.getY()-o.getY(),o.getBottom()-l.getBottom()):l.getY()<=o.getY()&&l.getBottom()>=o.getBottom()&&(u[1]+=Math.min(o.getY()-l.getY(),l.getBottom()-o.getBottom()));var c=Math.abs((l.getCenterY()-o.getCenterY())/(l.getCenterX()-o.getCenterX()));l.getCenterY()===o.getCenterY()&&l.getCenterX()===o.getCenterX()&&(c=1);var v=c*u[0],d=u[1]/c;u[0]v)return u[0]=f,u[1]=g,u[2]=c,u[3]=D,!1;if(hc)return u[0]=d,u[1]=h,u[2]=x,u[3]=v,!1;if(fc?(u[0]=y,u[1]=E,O=!0):(u[0]=p,u[1]=g,O=!0):R===k&&(f>c?(u[0]=d,u[1]=g,O=!0):(u[0]=m,u[1]=E,O=!0)),-M===k?c>f?(u[2]=w,u[3]=D,P=!0):(u[2]=x,u[3]=b,P=!0):M===k&&(c>f?(u[2]=S,u[3]=b,P=!0):(u[2]=A,u[3]=D,P=!0)),O&&P)return!1;if(f>c?h>v?(B=this.getCardinalDirection(R,k,4),G=this.getCardinalDirection(M,k,2)):(B=this.getCardinalDirection(-R,k,3),G=this.getCardinalDirection(-M,k,1)):h>v?(B=this.getCardinalDirection(-R,k,1),G=this.getCardinalDirection(-M,k,3)):(B=this.getCardinalDirection(R,k,2),G=this.getCardinalDirection(M,k,4)),!O)switch(B){case 1:$=g,F=f+-C/k,u[0]=F,u[1]=$;break;case 2:F=m,$=h+T*k,u[0]=F,u[1]=$;break;case 3:$=E,F=f+C/k,u[0]=F,u[1]=$;break;case 4:F=y,$=h+-T*k,u[0]=F,u[1]=$;break}if(!P)switch(G){case 1:_=b,U=c+-I/k,u[2]=U,u[3]=_;break;case 2:U=A,_=v+L*k,u[2]=U,u[3]=_;break;case 3:_=D,U=c+I/k,u[2]=U,u[3]=_;break;case 4:U=w,_=v+-L*k,u[2]=U,u[3]=_;break}}return!1},s.getCardinalDirection=function(o,l,u){return o>l?u:1+u%4},s.getIntersection=function(o,l,u,f){if(f==null)return this.getIntersection2(o,l,u);var h=o.x,c=o.y,v=l.x,d=l.y,g=u.x,p=u.y,y=f.x,E=f.y,m=void 0,T=void 0,C=void 0,S=void 0,b=void 0,x=void 0,w=void 0,D=void 0,A=void 0;return C=d-c,b=h-v,w=v*c-h*d,S=E-p,x=g-y,D=y*p-g*E,A=C*x-S*b,A===0?null:(m=(b*D-x*w)/A,T=(S*w-C*D)/A,new i(m,T))},s.angleOfVector=function(o,l,u,f){var h=void 0;return o!==u?(h=Math.atan((f-l)/(u-o)),u0?1:s<0?-1:0},i.floor=function(s){return s<0?Math.ceil(s):Math.floor(s)},i.ceil=function(s){return s<0?Math.floor(s):Math.ceil(s)},r.exports=i},function(r,a,n){function i(){}i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,r.exports=i},function(r,a,n){var i=function(){function h(c,v){for(var d=0;d"u"?"undefined":i(o);return o==null||l!="object"&&l!="function"},r.exports=s},function(r,a,n){function i(g){if(Array.isArray(g)){for(var p=0,y=Array(g.length);p0&&p;){for(C.push(b[0]);C.length>0&&p;){var x=C[0];C.splice(0,1),T.add(x);for(var w=x.getEdges(),m=0;m-1&&b.splice(I,1)}T=new Set,S=new Map}}return g},d.prototype.createDummyNodesForBendpoints=function(g){for(var p=[],y=g.source,E=this.graphManager.calcLowestCommonAncestor(g.source,g.target),m=0;m0){for(var E=this.edgeToDummyNodes.get(y),m=0;m=0&&p.splice(D,1);var A=S.getNeighborsList();A.forEach(function(O){if(y.indexOf(O)<0){var P=E.get(O),R=P-1;R==1&&x.push(O),E.set(O,R)}})}y=y.concat(x),(p.length==1||p.length==2)&&(m=!0,T=p[0])}return T},d.prototype.setGraphManager=function(g){this.graphManager=g},r.exports=d},function(r,a,n){function i(){}i.seed=1,i.x=0,i.nextDouble=function(){return i.x=Math.sin(i.seed++)*1e4,i.x-Math.floor(i.x)},r.exports=i},function(r,a,n){var i=n(4);function s(o,l){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}s.prototype.getWorldOrgX=function(){return this.lworldOrgX},s.prototype.setWorldOrgX=function(o){this.lworldOrgX=o},s.prototype.getWorldOrgY=function(){return this.lworldOrgY},s.prototype.setWorldOrgY=function(o){this.lworldOrgY=o},s.prototype.getWorldExtX=function(){return this.lworldExtX},s.prototype.setWorldExtX=function(o){this.lworldExtX=o},s.prototype.getWorldExtY=function(){return this.lworldExtY},s.prototype.setWorldExtY=function(o){this.lworldExtY=o},s.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},s.prototype.setDeviceOrgX=function(o){this.ldeviceOrgX=o},s.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},s.prototype.setDeviceOrgY=function(o){this.ldeviceOrgY=o},s.prototype.getDeviceExtX=function(){return this.ldeviceExtX},s.prototype.setDeviceExtX=function(o){this.ldeviceExtX=o},s.prototype.getDeviceExtY=function(){return this.ldeviceExtY},s.prototype.setDeviceExtY=function(o){this.ldeviceExtY=o},s.prototype.transformX=function(o){var l=0,u=this.lworldExtX;return u!=0&&(l=this.ldeviceOrgX+(o-this.lworldOrgX)*this.ldeviceExtX/u),l},s.prototype.transformY=function(o){var l=0,u=this.lworldExtY;return u!=0&&(l=this.ldeviceOrgY+(o-this.lworldOrgY)*this.ldeviceExtY/u),l},s.prototype.inverseTransformX=function(o){var l=0,u=this.ldeviceExtX;return u!=0&&(l=this.lworldOrgX+(o-this.ldeviceOrgX)*this.lworldExtX/u),l},s.prototype.inverseTransformY=function(o){var l=0,u=this.ldeviceExtY;return u!=0&&(l=this.lworldOrgY+(o-this.ldeviceOrgY)*this.lworldExtY/u),l},s.prototype.inverseTransformPoint=function(o){var l=new i(this.inverseTransformX(o.x),this.inverseTransformY(o.y));return l},r.exports=s},function(r,a,n){function i(v){if(Array.isArray(v)){for(var d=0,g=Array(v.length);do.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*o.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(v-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-o.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT_INCREMENTAL):(v>o.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(o.COOLING_ADAPTATION_FACTOR,1-(v-o.ADAPTATION_LOWER_NODE_LIMIT)/(o.ADAPTATION_UPPER_NODE_LIMIT-o.ADAPTATION_LOWER_NODE_LIMIT)*(1-o.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=o.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var v=this.getAllEdges(),d,g=0;g0&&arguments[0]!==void 0?arguments[0]:!0,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,g,p,y,E,m=this.getAllNodes(),T;if(this.useFRGridVariant)for(this.totalIterations%o.GRID_CALCULATION_CHECK_PERIOD==1&&v&&this.updateGrid(),T=new Set,g=0;gC||T>C)&&(v.gravitationForceX=-this.gravityConstant*y,v.gravitationForceY=-this.gravityConstant*E)):(C=d.getEstimatedSize()*this.compoundGravityRangeFactor,(m>C||T>C)&&(v.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,v.gravitationForceY=-this.gravityConstant*E*this.compoundGravityConstant))},h.prototype.isConverged=function(){var v,d=!1;return this.totalIterations>this.maxIterations/3&&(d=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),v=this.totalDisplacement=m.length||C>=m[0].length)){for(var S=0;Sh}}]),u}();r.exports=l},function(r,a,n){var i=function(){function l(u,f){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,c=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,v=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;s(this,l),this.sequence1=u,this.sequence2=f,this.match_score=h,this.mismatch_penalty=c,this.gap_penalty=v,this.iMax=u.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var d=0;d=0;u--){var f=this.listeners[u];f.event===o&&f.callback===l&&this.listeners.splice(u,1)}},s.emit=function(o,l){for(var u=0;uf.coolingFactor*f.maxNodeDisplacement&&(this.displacementX=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementX)),Math.abs(this.displacementY)>f.coolingFactor*f.maxNodeDisplacement&&(this.displacementY=f.coolingFactor*f.maxNodeDisplacement*o.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),f.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},l.prototype.propogateDisplacementToChildren=function(f,h){for(var c=this.getChild().getNodes(),v,d=0;d0)this.positionNodesRadially(b);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var x=new Set(this.getAllNodes()),w=this.nodesWithGravity.filter(function(D){return x.has(D)});this.graphManager.setAllNodesToApplyGravitation(w),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},C.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%c.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var b=new Set(this.getAllNodes()),x=this.nodesWithGravity.filter(function(A){return b.has(A)});this.graphManager.setAllNodesToApplyGravitation(x),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=c.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var w=!this.isTreeGrowing&&!this.isGrowthFinished,D=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(w,D),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},C.prototype.getPositionsData=function(){for(var b=this.graphManager.getAllNodes(),x={},w=0;w1){var O;for(O=0;OD&&(D=Math.floor(I.y)),L=Math.floor(I.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new g(v.WORLD_CENTER_X-I.x/2,v.WORLD_CENTER_Y-I.y/2))},C.radialLayout=function(b,x,w){var D=Math.max(this.maxDiagonalInTree(b),h.DEFAULT_RADIAL_SEPARATION);C.branchRadialLayout(x,null,0,359,0,D);var A=m.calculateBounds(b),L=new T;L.setDeviceOrgX(A.getMinX()),L.setDeviceOrgY(A.getMinY()),L.setWorldOrgX(w.x),L.setWorldOrgY(w.y);for(var I=0;I1;){var _=U[0];U.splice(0,1);var Y=k.indexOf(_);Y>=0&&k.splice(Y,1),F--,B--}x!=null?$=(k.indexOf(U[0])+1)%F:$=0;for(var W=Math.abs(D-w)/B,z=$;G!=B;z=++z%F){var K=k[z].getOtherEnd(b);if(K!=x){var j=(w+G*W)%360,Q=(j+W)%360;C.branchRadialLayout(K,b,j,Q,A+L,L),G++}}},C.maxDiagonalInTree=function(b){for(var x=y.MIN_VALUE,w=0;wx&&(x=A)}return x},C.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},C.prototype.groupZeroDegreeMembers=function(){var b=this,x={};this.memberGroups={},this.idToDummyNode={};for(var w=[],D=this.graphManager.getAllNodes(),A=0;A"u"&&(x[O]=[]),x[O]=x[O].concat(L)}Object.keys(x).forEach(function(P){if(x[P].length>1){var R="DummyCompound_"+P;b.memberGroups[R]=x[P];var M=x[P][0].getParent(),k=new u(b.graphManager);k.id=R,k.paddingLeft=M.paddingLeft||0,k.paddingRight=M.paddingRight||0,k.paddingBottom=M.paddingBottom||0,k.paddingTop=M.paddingTop||0,b.idToDummyNode[R]=k;var B=b.getGraphManager().add(b.newGraph(),k),G=M.getChild();G.add(k);for(var F=0;F=0;b--){var x=this.compoundOrder[b],w=x.id,D=x.paddingLeft,A=x.paddingTop;this.adjustLocations(this.tiledMemberPack[w],x.rect.x,x.rect.y,D,A)}},C.prototype.repopulateZeroDegreeMembers=function(){var b=this,x=this.tiledZeroDegreePack;Object.keys(x).forEach(function(w){var D=b.idToDummyNode[w],A=D.paddingLeft,L=D.paddingTop;b.adjustLocations(x[w],D.rect.x,D.rect.y,A,L)})},C.prototype.getToBeTiled=function(b){var x=b.id;if(this.toBeTiled[x]!=null)return this.toBeTiled[x];var w=b.getChild();if(w==null)return this.toBeTiled[x]=!1,!1;for(var D=w.getNodes(),A=0;A0)return this.toBeTiled[x]=!1,!1;if(L.getChild()==null){this.toBeTiled[L.id]=!1;continue}if(!this.getToBeTiled(L))return this.toBeTiled[x]=!1,!1}return this.toBeTiled[x]=!0,!0},C.prototype.getNodeDegree=function(b){b.id;for(var x=b.getEdges(),w=0,D=0;DP&&(P=M.rect.height)}w+=P+b.verticalPadding}},C.prototype.tileCompoundMembers=function(b,x){var w=this;this.tiledMemberPack=[],Object.keys(b).forEach(function(D){var A=x[D];w.tiledMemberPack[D]=w.tileNodes(b[D],A.paddingLeft+A.paddingRight),A.rect.width=w.tiledMemberPack[D].width,A.rect.height=w.tiledMemberPack[D].height})},C.prototype.tileNodes=function(b,x){var w=h.TILING_PADDING_VERTICAL,D=h.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:x,verticalPadding:w,horizontalPadding:D};b.sort(function(O,P){return O.rect.width*O.rect.height>P.rect.width*P.rect.height?-1:O.rect.width*O.rect.height0&&(I+=b.horizontalPadding),b.rowWidth[w]=I,b.width0&&(O+=b.verticalPadding);var P=0;O>b.rowHeight[w]&&(P=b.rowHeight[w],b.rowHeight[w]=O,P=b.rowHeight[w]-P),b.height+=P,b.rows[w].push(x)},C.prototype.getShortestRowIndex=function(b){for(var x=-1,w=Number.MAX_VALUE,D=0;Dw&&(x=D,w=b.rowWidth[D]);return x},C.prototype.canAddHorizontal=function(b,x,w){var D=this.getShortestRowIndex(b);if(D<0)return!0;var A=b.rowWidth[D];if(A+b.horizontalPadding+x<=b.width)return!0;var L=0;b.rowHeight[D]0&&(L=w+b.verticalPadding-b.rowHeight[D]);var I;b.width-A>=x+b.horizontalPadding?I=(b.height+L)/(A+x+b.horizontalPadding):I=(b.height+L)/b.width,L=w+b.verticalPadding;var O;return b.widthL&&x!=w){D.splice(-1,1),b.rows[w].push(A),b.rowWidth[x]=b.rowWidth[x]-L,b.rowWidth[w]=b.rowWidth[w]+L,b.width=b.rowWidth[instance.getLongestRowIndex(b)];for(var I=Number.MIN_VALUE,O=0;OI&&(I=D[O].height);x>0&&(I+=b.verticalPadding);var P=b.rowHeight[x]+b.rowHeight[w];b.rowHeight[x]=I,b.rowHeight[w]0)for(var G=A;G<=L;G++)B[0]+=this.grid[G][I-1].length+this.grid[G][I].length-1;if(L0)for(var G=I;G<=O;G++)B[3]+=this.grid[A-1][G].length+this.grid[A][G].length-1;for(var F=y.MAX_VALUE,$,U,_=0;_0){var O;O=T.getGraphManager().add(T.newGraph(),w),this.processChildrenList(O,x,T)}}},g.prototype.stop=function(){return this.stopped=!0,this};var y=function(m){m("layout","cose-bilkent",g)};typeof cytoscape<"u"&&y(cytoscape),a.exports=y}])})})(Ol);var xm=Ol.exports;const Tm=Ys(xm);var Zn=function(){var t=function(T,C,S,b){for(S=S||{},b=T.length;b--;S[T[b]]=C);return S},e=[1,4],r=[1,13],a=[1,12],n=[1,15],i=[1,16],s=[1,20],o=[1,19],l=[6,7,8],u=[1,26],f=[1,24],h=[1,25],c=[6,7,11],v=[1,6,13,15,16,19,22],d=[1,33],g=[1,34],p=[1,6,7,11,13,15,16,19,22],y={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(C,S,b,x,w,D,A){var L=D.length-1;switch(w){case 6:case 7:return x;case 8:x.getLogger().trace("Stop NL ");break;case 9:x.getLogger().trace("Stop EOF ");break;case 11:x.getLogger().trace("Stop NL2 ");break;case 12:x.getLogger().trace("Stop EOF2 ");break;case 15:x.getLogger().info("Node: ",D[L].id),x.addNode(D[L-1].length,D[L].id,D[L].descr,D[L].type);break;case 16:x.getLogger().trace("Icon: ",D[L]),x.decorateNode({icon:D[L]});break;case 17:case 21:x.decorateNode({class:D[L]});break;case 18:x.getLogger().trace("SPACELIST");break;case 19:x.getLogger().trace("Node: ",D[L].id),x.addNode(0,D[L].id,D[L].descr,D[L].type);break;case 20:x.decorateNode({icon:D[L]});break;case 25:x.getLogger().trace("node found ..",D[L-2]),this.$={id:D[L-1],descr:D[L-1],type:x.getType(D[L-2],D[L])};break;case 26:this.$={id:D[L],descr:D[L],type:x.nodeType.DEFAULT};break;case 27:x.getLogger().trace("node found ..",D[L-3]),this.$={id:D[L-3],descr:D[L-1],type:x.getType(D[L-2],D[L])};break}},table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},t(l,[2,3]),{1:[2,2]},t(l,[2,4]),t(l,[2,5]),{1:[2,6],6:r,12:21,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},{6:r,9:22,12:11,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},{6:u,7:f,10:23,11:h},t(c,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:o}),t(c,[2,18]),t(c,[2,19]),t(c,[2,20]),t(c,[2,21]),t(c,[2,23]),t(c,[2,24]),t(c,[2,26],{19:[1,30]}),{20:[1,31]},{6:u,7:f,10:32,11:h},{1:[2,7],6:r,12:21,13:a,14:14,15:n,16:i,17:17,18:18,19:s,22:o},t(v,[2,14],{7:d,11:g}),t(p,[2,8]),t(p,[2,9]),t(p,[2,10]),t(c,[2,15]),t(c,[2,16]),t(c,[2,17]),{20:[1,35]},{21:[1,36]},t(v,[2,13],{7:d,11:g}),t(p,[2,11]),t(p,[2,12]),{21:[1,37]},t(c,[2,25]),t(c,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(C,S){if(S.recoverable)this.trace(C);else{var b=new Error(C);throw b.hash=S,b}},parse:function(C){var S=this,b=[0],x=[],w=[null],D=[],A=this.table,L="",I=0,O=0,P=2,R=1,M=D.slice.call(arguments,1),k=Object.create(this.lexer),B={yy:{}};for(var G in this.yy)Object.prototype.hasOwnProperty.call(this.yy,G)&&(B.yy[G]=this.yy[G]);k.setInput(C,B.yy),B.yy.lexer=k,B.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var F=k.yylloc;D.push(F);var $=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var te;return te=x.pop()||k.lex()||R,typeof te!="number"&&(te instanceof Array&&(x=te,te=x.pop()),te=S.symbols_[te]||te),te}for(var _,Y,W,z,K={},j,Q,ee,ne;;){if(Y=b[b.length-1],this.defaultActions[Y]?W=this.defaultActions[Y]:((_===null||typeof _>"u")&&(_=U()),W=A[Y]&&A[Y][_]),typeof W>"u"||!W.length||!W[0]){var ce="";ne=[];for(j in A[Y])this.terminals_[j]&&j>P&&ne.push("'"+this.terminals_[j]+"'");k.showPosition?ce="Parse error on line "+(I+1)+`: +`+k.showPosition()+` +Expecting `+ne.join(", ")+", got '"+(this.terminals_[_]||_)+"'":ce="Parse error on line "+(I+1)+": Unexpected "+(_==R?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(ce,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:F,expected:ne})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Y+", token: "+_);switch(W[0]){case 1:b.push(_),w.push(k.yytext),D.push(k.yylloc),b.push(W[1]),_=null,O=k.yyleng,L=k.yytext,I=k.yylineno,F=k.yylloc;break;case 2:if(Q=this.productions_[W[1]][1],K.$=w[w.length-Q],K._$={first_line:D[D.length-(Q||1)].first_line,last_line:D[D.length-1].last_line,first_column:D[D.length-(Q||1)].first_column,last_column:D[D.length-1].last_column},$&&(K._$.range=[D[D.length-(Q||1)].range[0],D[D.length-1].range[1]]),z=this.performAction.apply(K,[L,O,I,B.yy,W[1],w,D].concat(M)),typeof z<"u")return z;Q&&(b=b.slice(0,-1*Q*2),w=w.slice(0,-1*Q),D=D.slice(0,-1*Q)),b.push(this.productions_[W[1]][0]),w.push(K.$),D.push(K._$),ee=A[b[b.length-2]][b[b.length-1]],b.push(ee);break;case 3:return!0}}return!0}},E=function(){var T={EOF:1,parseError:function(S,b){if(this.yy.parser)this.yy.parser.parseError(S,b);else throw new Error(S)},setInput:function(C,S){return this.yy=S||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var S=C.match(/(?:\r\n?|\n).*/g);return S?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},unput:function(C){var S=C.length,b=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-S),this.offset-=S;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),b.length-1&&(this.yylineno-=b.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:b?(b.length===x.length?this.yylloc.first_column:0)+x[x.length-b.length].length-b[0].length:this.yylloc.first_column-S},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-S]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(C){this.unput(this.match.slice(C))},pastInput:function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var C=this.pastInput(),S=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+S+"^"},test_match:function(C,S){var b,x,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),x=C[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],b=this.performAction.call(this,this.yy,this,S,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),b)return b;if(this._backtrack){for(var D in w)this[D]=w[D];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,S,b,x;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),D=0;DS[0].length)){if(S=b,x=D,this.options.backtrack_lexer){if(C=this.test_match(b,w[D]),C!==!1)return C;if(this._backtrack){S=!1;continue}else return!1}else if(!this.options.flex)break}return S?(C=this.test_match(S,w[x]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var S=this.next();return S||this.lex()},begin:function(S){this.conditionStack.push(S)},popState:function(){var S=this.conditionStack.length-1;return S>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(S){return S=this.conditionStack.length-1-Math.abs(S||0),S>=0?this.conditionStack[S]:"INITIAL"},pushState:function(S){this.begin(S)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(S,b,x,w){switch(x){case 0:return S.getLogger().trace("Found comment",b.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:S.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return S.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:S.getLogger().trace("end icon"),this.popState();break;case 10:return S.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return S.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return S.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return S.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:S.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return S.getLogger().trace("description:",b.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),S.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),S.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),S.getLogger().trace("node end ...",b.yytext),"NODE_DEND";case 30:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),S.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),S.getLogger().trace("node end (("),"NODE_DEND";case 35:return S.getLogger().trace("Long description:",b.yytext),20;case 36:return S.getLogger().trace("Long description:",b.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return T}();y.lexer=E;function m(){this.yy={}}return m.prototype=y,y.Parser=m,new m}();Zn.parser=Zn;const Cm=Zn;let Ct=[],Nl=0,xi={};const Dm=()=>{Ct=[],Nl=0,xi={}},Sm=function(t){for(let e=Ct.length-1;e>=0;e--)if(Ct[e].levelCt.length>0?Ct[0]:null,Am=(t,e,r,a)=>{var n,i;ur.info("addNode",t,e,r,a);const s=Qn();let o=((n=s.mindmap)==null?void 0:n.padding)??_a.mindmap.padding;switch(a){case Ve.ROUNDED_RECT:case Ve.RECT:case Ve.HEXAGON:o*=2}const l={id:Nl++,nodeId:Ua(e,s),level:t,descr:Ua(r,s),type:a,children:[],width:((i=s.mindmap)==null?void 0:i.maxNodeWidth)??_a.mindmap.maxNodeWidth,padding:o},u=Sm(t);if(u)u.children.push(l),Ct.push(l);else if(Ct.length===0)Ct.push(l);else throw new Error('There can be only one root. No parent could be found for ("'+l.descr+'")')},Ve={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Om=(t,e)=>{switch(ur.debug("In get type",t,e),t){case"[":return Ve.RECT;case"(":return e===")"?Ve.ROUNDED_RECT:Ve.CLOUD;case"((":return Ve.CIRCLE;case")":return Ve.CLOUD;case"))":return Ve.BANG;case"{{":return Ve.HEXAGON;default:return Ve.DEFAULT}},Nm=(t,e)=>{xi[t]=e},Im=t=>{if(!t)return;const e=Qn(),r=Ct[Ct.length-1];t.icon&&(r.icon=Ua(t.icon,e)),t.class&&(r.class=Ua(t.class,e))},Mm=t=>{switch(t){case Ve.DEFAULT:return"no-border";case Ve.RECT:return"rect";case Ve.ROUNDED_RECT:return"rounded-rect";case Ve.CIRCLE:return"circle";case Ve.CLOUD:return"cloud";case Ve.BANG:return"bang";case Ve.HEXAGON:return"hexgon";default:return"no-border"}},Rm=()=>ur,km=t=>xi[t],Pm={clear:Dm,addNode:Am,getMindmap:Lm,nodeType:Ve,getType:Om,setElementForId:Nm,decorateNode:Im,type2Str:Mm,getLogger:Rm,getElementById:km},Bm=Pm,Fm=12,Gm=function(t,e,r,a){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+a).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},zm=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},$m=function(t,e,r){const a=r.width,n=r.height,i=.15*a,s=.25*a,o=.35*a,l=.2*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${i},${i} 0 0,1 ${a*.25},${-1*a*.1} + a${o},${o} 1 0,1 ${a*.4},${-1*a*.1} + a${s},${s} 1 0,1 ${a*.35},${1*a*.2} + + a${i},${i} 1 0,1 ${a*.15},${1*n*.35} + a${l},${l} 1 0,1 ${-1*a*.15},${1*n*.65} + + a${s},${i} 1 0,1 ${-1*a*.25},${a*.15} + a${o},${o} 1 0,1 ${-1*a*.5},0 + a${i},${i} 1 0,1 ${-1*a*.25},${-1*a*.15} + + a${i},${i} 1 0,1 ${-1*a*.1},${-1*n*.35} + a${l},${l} 1 0,1 ${a*.1},${-1*n*.65} + + H0 V0 Z`)},Vm=function(t,e,r){const a=r.width,n=r.height,i=.15*a;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${i},${i} 1 0,0 ${a*.25},${-1*n*.1} + a${i},${i} 1 0,0 ${a*.25},0 + a${i},${i} 1 0,0 ${a*.25},0 + a${i},${i} 1 0,0 ${a*.25},${1*n*.1} + + a${i},${i} 1 0,0 ${a*.15},${1*n*.33} + a${i*.8},${i*.8} 1 0,0 0,${1*n*.34} + a${i},${i} 1 0,0 ${-1*a*.15},${1*n*.33} + + a${i},${i} 1 0,0 ${-1*a*.25},${n*.15} + a${i},${i} 1 0,0 ${-1*a*.25},0 + a${i},${i} 1 0,0 ${-1*a*.25},0 + a${i},${i} 1 0,0 ${-1*a*.25},${-1*n*.15} + + a${i},${i} 1 0,0 ${-1*a*.1},${-1*n*.33} + a${i*.8},${i*.8} 1 0,0 0,${-1*n*.34} + a${i},${i} 1 0,0 ${a*.1},${-1*n*.33} + + H0 V0 Z`)},_m=function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)};function Um(t,e,r,a,n){return t.insert("polygon",":first-child").attr("points",a.map(function(i){return i.x+","+i.y}).join(" ")).attr("transform","translate("+(n.width-e)/2+", "+r+")")}const Hm=function(t,e,r){const a=r.height,i=a/4,s=r.width-r.padding+2*i,o=[{x:i,y:0},{x:s-i,y:0},{x:s,y:-a/2},{x:s-i,y:-a},{x:i,y:-a},{x:0,y:-a/2}];Um(e,s,a,o,r)},Ym=function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},Xm=function(t,e,r,a,n){const i=n.htmlLabels,s=a%(Fm-1),o=e.append("g");r.section=s;let l="section-"+s;s<0&&(l+=" section-root"),o.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+l);const u=o.append("g"),f=o.append("g"),h=r.descr.replace(/()/g,` +`);Kl(f,h,{useHtmlLabels:i,width:r.width,classes:"mindmap-node-label"}),i||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");const c=f.node().getBBox(),[v]=ql(n.fontSize);if(r.height=c.height+v*1.1*.5+r.padding,r.width=c.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,o.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;const d=r.height;r.height=Math.max(d,60);const g=Math.abs(r.height-d);o.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+g/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(g/2+r.padding/2)+")")}else if(i){const d=(r.width-c.width)/2,g=(r.height-c.height)/2;f.attr("transform","translate("+d+", "+g+")")}else{const d=r.width/2,g=r.padding/2;f.attr("transform","translate("+d+", "+g+")")}switch(r.type){case t.nodeType.DEFAULT:Gm(t,u,r,s);break;case t.nodeType.ROUNDED_RECT:Ym(t,u,r);break;case t.nodeType.RECT:zm(t,u,r);break;case t.nodeType.CIRCLE:u.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),_m(t,u,r);break;case t.nodeType.CLOUD:$m(t,u,r);break;case t.nodeType.BANG:Vm(t,u,r);break;case t.nodeType.HEXAGON:Hm(t,u,r);break}return t.setElementForId(r.id,o),r.height},Wm=function(t,e){const r=t.getElementById(e.id),a=e.x||0,n=e.y||0;r.attr("transform","translate("+a+","+n+")")};Al.use(Tm);function Il(t,e,r,a,n){Xm(t,e,r,a,n),r.children&&r.children.forEach((i,s)=>{Il(t,e,i,a<0?s:a,n)})}function qm(t,e){e.edges().map((r,a)=>{const n=r.data();if(r[0]._private.bodyBounds){const i=r[0]._private.rscratch;ur.trace("Edge: ",a,n),t.insert("path").attr("d",`M ${i.startX},${i.startY} L ${i.midX},${i.midY} L${i.endX},${i.endY} `).attr("class","edge section-edge-"+n.section+" edge-depth-"+n.depth)}})}function Ml(t,e,r,a){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:a,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(n=>{Ml(n,e,r,a+1),e.add({group:"edges",data:{id:`${t.id}_${n.id}`,source:t.id,target:n.id,depth:a,section:n.section}})})}function Km(t,e){return new Promise(r=>{const a=Hl("body").append("div").attr("id","cy").attr("style","display:none"),n=Al({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),Ml(t,n,e,0),n.nodes().forEach(function(i){i.layoutDimensions=()=>{const s=i.data();return{w:s.width,h:s.height}}}),n.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),n.ready(i=>{ur.info("Ready",i),r(n)})})}function Zm(t,e){e.nodes().map((r,a)=>{const n=r.data();n.x=r.position().x,n.y=r.position().y,Wm(t,n);const i=t.getElementById(n.nodeId);ur.info("Id:",a,"Position: (",r.position().x,", ",r.position().y,")",n),i.attr("transform",`translate(${r.position().x-n.width/2}, ${r.position().y-n.height/2})`),i.attr("attr",`apa-${a})`)})}const Qm=async(t,e,r,a)=>{var n,i;ur.debug(`Rendering mindmap diagram +`+t);const s=a.db,o=s.getMindmap();if(!o)return;const l=Qn();l.htmlLabels=!1;const u=_l(e),f=u.append("g");f.attr("class","mindmap-edges");const h=u.append("g");h.attr("class","mindmap-nodes"),Il(s,h,o,-1,l);const c=await Km(o,l);qm(f,c),Zm(s,c),Ul(void 0,u,((n=l.mindmap)==null?void 0:n.padding)??_a.mindmap.padding,((i=l.mindmap)==null?void 0:i.useMaxWidth)??_a.mindmap.useMaxWidth)},Jm={draw:Qm},jm=t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${jm(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,t0=e0,s0={db:Bm,renderer:Jm,parser:Cm,styles:t0};export{s0 as diagram}; diff --git a/docs/assets/chunks/ordinal.BYWQX77i.js b/docs/assets/chunks/ordinal.BYWQX77i.js new file mode 100644 index 0000000..1f7977b --- /dev/null +++ b/docs/assets/chunks/ordinal.BYWQX77i.js @@ -0,0 +1 @@ +import{i as a}from"./init.Gi6I4Gst.js";class o extends Map{constructor(n,t=g){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),n!=null)for(const[r,s]of n)this.set(r,s)}get(n){return super.get(c(this,n))}has(n){return super.has(c(this,n))}set(n,t){return super.set(l(this,n),t)}delete(n){return super.delete(p(this,n))}}function c({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):t}function l({_intern:e,_key:n},t){const r=n(t);return e.has(r)?e.get(r):(e.set(r,t),t)}function p({_intern:e,_key:n},t){const r=n(t);return e.has(r)&&(t=e.get(r),e.delete(r)),t}function g(e){return e!==null&&typeof e=="object"?e.valueOf():e}const f=Symbol("implicit");function h(){var e=new o,n=[],t=[],r=f;function s(u){let i=e.get(u);if(i===void 0){if(r!==f)return r;e.set(u,i=n.push(u)-1)}return t[i%t.length]}return s.domain=function(u){if(!arguments.length)return n.slice();n=[],e=new o;for(const i of u)e.has(i)||e.set(i,n.push(i)-1);return s},s.range=function(u){return arguments.length?(t=Array.from(u),s):t.slice()},s.unknown=function(u){return arguments.length?(r=u,s):r},s.copy=function(){return h(n,t).unknown(r)},a.apply(s,arguments),s}export{h as o}; diff --git a/docs/assets/chunks/path.CbwjOpE9.js b/docs/assets/chunks/path.CbwjOpE9.js new file mode 100644 index 0000000..f55758f --- /dev/null +++ b/docs/assets/chunks/path.CbwjOpE9.js @@ -0,0 +1 @@ +const c=Math.PI,x=2*c,u=1e-6,m=x-u;function E(e){this._+=e[0];for(let t=1,h=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return E;const h=10**t;return function(i){this._+=i[0];for(let s=1,n=i.length;su)if(!(Math.abs(o*p-l*_)>u)||!n)this._append`L${this._x1=t},${this._y1=h}`;else{let d=i-$,f=s-r,y=p*p+l*l,T=d*d+f*f,g=Math.sqrt(y),v=Math.sqrt(a),w=n*Math.tan((c-Math.acos((y+a-T)/(2*g*v)))/2),M=w/v,b=w/g;Math.abs(M-1)>u&&this._append`L${t+M*_},${h+M*o}`,this._append`A${n},${n},0,0,${+(o*d>_*f)},${this._x1=t+b*p},${this._y1=h+b*l}`}}arc(t,h,i,s,n,$){if(t=+t,h=+h,i=+i,$=!!$,i<0)throw new Error(`negative radius: ${i}`);let r=i*Math.cos(s),p=i*Math.sin(s),l=t+r,_=h+p,o=1^$,a=$?s-n:n-s;this._x1===null?this._append`M${l},${_}`:(Math.abs(this._x1-l)>u||Math.abs(this._y1-_)>u)&&this._append`L${l},${_}`,i&&(a<0&&(a=a%x+x),a>m?this._append`A${i},${i},0,1,${o},${t-r},${h-p}A${i},${i},0,1,${o},${this._x1=l},${this._y1=_}`:a>u&&this._append`A${i},${i},0,${+(a>=c)},${o},${this._x1=t+i*Math.cos(n)},${this._y1=h+i*Math.sin(n)}`)}rect(t,h,i,s){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+h}h${i=+i}v${+s}h${-i}Z`}toString(){return this._}}function P(e){return function(){return e}}function q(e){let t=3;return e.digits=function(h){if(!arguments.length)return t;if(h==null)t=null;else{const i=Math.floor(h);if(!(i>=0))throw new RangeError(`invalid digits: ${h}`);t=i}return e},()=>new L(t)}export{P as c,q as w}; diff --git a/docs/assets/chunks/pieDiagram-b0208e96.D2Hyosy_.js b/docs/assets/chunks/pieDiagram-b0208e96.D2Hyosy_.js new file mode 100644 index 0000000..07ed234 --- /dev/null +++ b/docs/assets/chunks/pieDiagram-b0208e96.D2Hyosy_.js @@ -0,0 +1,35 @@ +import{aI as Z,aJ as at,v as lt,x as ot,s as ct,g as ht,b as ut,a as yt,z as ft,d as pt,c as et,l as it,aK as gt,aH as dt,aL as mt,i as _t}from"../app.Dv4846sG.js";import{a as tt}from"./arc.DUOD18ct.js";import{o as xt}from"./ordinal.BYWQX77i.js";import{a as kt}from"./array.BKyUJesY.js";import{c as z}from"./path.CbwjOpE9.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./init.Gi6I4Gst.js";function vt(e,u){return ue?1:u>=e?0:NaN}function bt(e){return e}function St(){var e=bt,u=vt,$=null,p=z(0),g=z(Z),A=z(0);function y(a){var l,d=(a=kt(a)).length,m,I,T=0,_=new Array(d),v=new Array(d),c=+p.apply(this,arguments),E=Math.min(Z,Math.max(-Z,g.apply(this,arguments)-c)),O,w=Math.min(Math.abs(E)/d,A.apply(this,arguments)),b=w*(E<0?-1:1),t;for(l=0;l0&&(T+=t);for(u!=null?_.sort(function(i,n){return u(v[i],v[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=T?(E-d*b)/T:0;l0?t*I:0)+b,v[m]={data:a[m],index:l,value:t,startAngle:c,endAngle:O,padAngle:w};return v}return y.value=function(a){return arguments.length?(e=typeof a=="function"?a:z(+a),y):e},y.sortValues=function(a){return arguments.length?(u=a,$=null,y):u},y.sort=function(a){return arguments.length?($=a,u=null,y):$},y.startAngle=function(a){return arguments.length?(p=typeof a=="function"?a:z(+a),y):p},y.endAngle=function(a){return arguments.length?(g=typeof a=="function"?a:z(+a),y):g},y.padAngle=function(a){return arguments.length?(A=typeof a=="function"?a:z(+a),y):A},y}var q=function(){var e=function(b,t,i,n){for(i=i||{},n=b.length;n--;i[b[n]]=t);return i},u=[1,3],$=[1,4],p=[1,5],g=[1,6],A=[1,10,12,14,16,18,19,20,21,22],y=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],d=[2,7],m=[1,12],I=[1,13],T=[1,14],_=[1,15],v=[1,16],c=[1,17],E={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,o,s,P){var x=s.length-1;switch(o){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:u,20:$,21:p,22:g},{1:[3]},{3:7,4:2,5:u,20:$,21:p,22:g},e(A,y,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,d,{8:10,9:11,1:[2,2],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,y,{6:18}),e(A,[2,5]),{4:19,20:$,21:p,22:g},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,d,{8:10,9:11,1:[2,3],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],o=[null],s=[],P=this.table,x="",f=0,V=0,F=2,M=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),L={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(L.yy[Y]=this.yy[Y]);h.setInput(t,L.yy),L.yy.lexer=h,L.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var H=h.yylloc;s.push(H);var st=h.options&&h.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function rt(){var C;return C=r.pop()||h.lex()||M,typeof C!="number"&&(C instanceof Array&&(r=C,C=r.pop()),C=i.symbols_[C]||C),C}for(var k,N,S,J,R={},j,D,X,W;;){if(N=n[n.length-1],this.defaultActions[N]?S=this.defaultActions[N]:((k===null||typeof k>"u")&&(k=rt()),S=P[N]&&P[N][k]),typeof S>"u"||!S.length||!S[0]){var K="";W=[];for(j in P[N])this.terminals_[j]&&j>F&&W.push("'"+this.terminals_[j]+"'");h.showPosition?K="Parse error on line "+(f+1)+`: +`+h.showPosition()+` +Expecting `+W.join(", ")+", got '"+(this.terminals_[k]||k)+"'":K="Parse error on line "+(f+1)+": Unexpected "+(k==M?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(K,{text:h.match,token:this.terminals_[k]||k,line:h.yylineno,loc:H,expected:W})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+N+", token: "+k);switch(S[0]){case 1:n.push(k),o.push(h.yytext),s.push(h.yylloc),n.push(S[1]),k=null,V=h.yyleng,x=h.yytext,f=h.yylineno,H=h.yylloc;break;case 2:if(D=this.productions_[S[1]][1],R.$=o[o.length-D],R._$={first_line:s[s.length-(D||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(D||1)].first_column,last_column:s[s.length-1].last_column},st&&(R._$.range=[s[s.length-(D||1)].range[0],s[s.length-1].range[1]]),J=this.performAction.apply(R,[x,V,f,L.yy,S[1],o,s].concat(B)),typeof J<"u")return J;D&&(n=n.slice(0,-1*D*2),o=o.slice(0,-1*D),s=s.slice(0,-1*D)),n.push(this.productions_[S[1]][0]),o.push(R.$),s.push(R._$),X=P[n[n.length-2]][n[n.length-1]],n.push(X);break;case 3:return!0}}return!0}},O=function(){var b={EOF:1,parseError:function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+` +`+i+"^"},test_match:function(t,i){var n,r,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var s in o)this[s]=o[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,i,n,r;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),s=0;si[0].length)){if(i=n,r=s,this.options.backtrack_lexer){if(t=this.test_match(n,o[s]),t!==!1)return t;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(t=this.test_match(i,o[r]),t!==!1?t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var i=this.next();return i||this.lex()},begin:function(i){this.conditionStack.push(i)},popState:function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},pushState:function(i){this.begin(i)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(i,n,r,o){switch(r){case 0:break;case 1:break;case 2:return 20;case 3:break;case 4:break;case 5:return this.begin("title"),12;case 6:return this.popState(),"title_value";case 7:return this.begin("acc_title"),14;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),16;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 15:this.popState();break;case 16:return"txt";case 17:return 5;case 18:return 7;case 19:return"value";case 20:return 22}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[6],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,7,9,11,14,17,18,19,20],inclusive:!0}}};return b}();E.lexer=O;function w(){this.yy={}}return w.prototype=E,E.Parser=w,new w}();q.parser=q;const $t=q,nt=at.pie,G={sections:{},showData:!1,config:nt};let U=G.sections,Q=G.showData;const At=structuredClone(nt),Et=()=>structuredClone(At),wt=()=>{U=structuredClone(G.sections),Q=G.showData,ft()},Tt=(e,u)=>{e=pt(e,et()),U[e]===void 0&&(U[e]=u,it.debug(`added new section: ${e}, with value: ${u}`))},It=()=>U,Dt=e=>(e.substring(0,1)===":"&&(e=e.substring(1).trim()),Number(e.trim())),Ct=e=>{Q=e},Ot=()=>Q,Pt={getConfig:Et,clear:wt,setDiagramTitle:lt,getDiagramTitle:ot,setAccTitle:ct,getAccTitle:ht,setAccDescription:ut,getAccDescription:yt,addSection:Tt,getSections:It,cleanupValue:Dt,setShowData:Ct,getShowData:Ot},Vt=e=>` + .pieCircle{ + stroke: ${e.pieStrokeColor}; + stroke-width : ${e.pieStrokeWidth}; + opacity : ${e.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${e.pieOuterStrokeColor}; + stroke-width: ${e.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${e.pieTitleTextSize}; + fill: ${e.pieTitleTextColor}; + font-family: ${e.fontFamily}; + } + .slice { + font-family: ${e.fontFamily}; + fill: ${e.pieSectionTextColor}; + font-size:${e.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${e.pieLegendTextColor}; + font-family: ${e.fontFamily}; + font-size: ${e.pieLegendTextSize}; + } +`,Lt=Vt,Nt=e=>{const u=Object.entries(e).map(p=>({label:p[0],value:p[1]})).sort((p,g)=>g.value-p.value);return St().value(p=>p.value)(u)},zt=(e,u,$,p)=>{it.debug(`rendering pie chart +`+e);const g=p.db,A=et(),y=gt(g.getConfig(),A.pie),a=40,l=18,d=4,m=450,I=m,T=dt(u),_=T.append("g"),v=g.getSections();_.attr("transform","translate("+I/2+","+m/2+")");const{themeVariables:c}=A;let[E]=mt(c.pieOuterStrokeWidth);E??(E=2);const O=y.textPosition,w=Math.min(I,m)/2-a,b=tt().innerRadius(0).outerRadius(w),t=tt().innerRadius(w*O).outerRadius(w*O);_.append("circle").attr("cx",0).attr("cy",0).attr("r",w+E/2).attr("class","pieOuterCircle");const i=Nt(v),n=[c.pie1,c.pie2,c.pie3,c.pie4,c.pie5,c.pie6,c.pie7,c.pie8,c.pie9,c.pie10,c.pie11,c.pie12],r=xt(n);_.selectAll("mySlices").data(i).enter().append("path").attr("d",b).attr("fill",f=>r(f.data.label)).attr("class","pieCircle");let o=0;Object.keys(v).forEach(f=>{o+=v[f]}),_.selectAll("mySlices").data(i).enter().append("text").text(f=>(f.data.value/o*100).toFixed(0)+"%").attr("transform",f=>"translate("+t.centroid(f)+")").style("text-anchor","middle").attr("class","slice"),_.append("text").text(g.getDiagramTitle()).attr("x",0).attr("y",-(m-50)/2).attr("class","pieTitleText");const s=_.selectAll(".legend").data(r.domain()).enter().append("g").attr("class","legend").attr("transform",(f,V)=>{const F=l+d,M=F*r.domain().length/2,B=12*l,h=V*F-M;return"translate("+B+","+h+")"});s.append("rect").attr("width",l).attr("height",l).style("fill",r).style("stroke",r),s.data(i).append("text").attr("x",l+d).attr("y",l-d).text(f=>{const{label:V,value:F}=f.data;return g.getShowData()?`${V} [${F}]`:V});const P=Math.max(...s.selectAll("text").nodes().map(f=>(f==null?void 0:f.getBoundingClientRect().width)??0)),x=I+a+l+d+P;T.attr("viewBox",`0 0 ${x} ${m}`),_t(T,m,x,y.useMaxWidth)},Ft={draw:zt},Ht={parser:$t,db:Pt,renderer:Ft,styles:Lt};export{Ht as diagram}; diff --git a/docs/assets/chunks/quadrantDiagram-0332be45.9barGxeJ.js b/docs/assets/chunks/quadrantDiagram-0332be45.9barGxeJ.js new file mode 100644 index 0000000..97616a9 --- /dev/null +++ b/docs/assets/chunks/quadrantDiagram-0332be45.9barGxeJ.js @@ -0,0 +1,7 @@ +import{aY as vt,c as yt,aJ as D,l as ot,s as Lt,g as Ct,v as zt,x as bt,a as Et,b as Dt,z as It,h as gt,i as Bt,d as wt}from"../app.Dv4846sG.js";import{l as _t}from"./linear.xw6n-5RF.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./init.Gi6I4Gst.js";var pt=function(){var e=function(K,n,r,l){for(r=r||{},l=K.length;l--;r[K[l]]=n);return r},s=[1,3],h=[1,4],x=[1,5],f=[1,6],d=[1,7],c=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],g=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],i=[32,33,34],y=[2,7],p=[1,13],B=[1,17],N=[1,18],V=[1,19],I=[1,20],b=[1,21],M=[1,22],X=[1,23],C=[1,24],it=[1,25],at=[1,26],nt=[1,27],U=[1,30],Q=[1,31],T=[1,32],_=[1,33],m=[1,34],t=[1,35],A=[1,36],S=[1,37],k=[1,38],F=[1,39],P=[1,40],v=[1,41],L=[1,42],O=[1,57],Y=[1,58],z=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(n,r,l,o,q,a,et){var u=a.length-1;switch(q){case 12:this.$=a[u].trim(),o.setDiagramTitle(this.$);break;case 13:this.$=a[u].trim(),o.setAccTitle(this.$);break;case 14:case 15:this.$=a[u].trim(),o.setAccDescription(this.$);break;case 16:o.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 17:o.addPoint(a[u-3],a[u-1],a[u]);break;case 18:o.setXAxisLeftText(a[u-2]),o.setXAxisRightText(a[u]);break;case 19:a[u-1].text+=" ⟶ ",o.setXAxisLeftText(a[u-1]);break;case 20:o.setXAxisLeftText(a[u]);break;case 21:o.setYAxisBottomText(a[u-2]),o.setYAxisTopText(a[u]);break;case 22:a[u-1].text+=" ⟶ ",o.setYAxisBottomText(a[u-1]);break;case 23:o.setYAxisBottomText(a[u]);break;case 24:o.setQuadrant1Text(a[u]);break;case 25:o.setQuadrant2Text(a[u]);break;case 26:o.setQuadrant3Text(a[u]);break;case 27:o.setQuadrant4Text(a[u]);break;case 31:this.$={text:a[u],type:"text"};break;case 32:this.$={text:a[u-1].text+""+a[u],type:a[u-1].type};break;case 33:this.$={text:a[u],type:"text"};break;case 34:this.$={text:a[u],type:"markdown"};break;case 35:this.$=a[u];break;case 36:this.$=a[u-1]+""+a[u];break}},table:[{3:1,4:2,5:s,6:h,32:x,33:f,34:d},{1:[3]},{3:8,4:2,5:s,6:h,32:x,33:f,34:d},{3:9,4:2,5:s,6:h,32:x,33:f,34:d},e(c,[2,4],{7:10}),e(g,[2,28]),e(g,[2,29]),e(g,[2,30]),{1:[2,1]},{1:[2,2]},e(i,y,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(c,[2,5]),{4:43,32:x,33:f,34:d},e(i,y,{10:14,11:15,12:16,21:28,35:29,9:44,5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,9]),e(i,[2,10]),e(i,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},e(i,[2,15]),e(i,[2,16]),{21:48,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:49,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:50,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:51,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:52,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:53,35:29,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{5:O,22:[1,54],35:56,36:55,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y},e(z,[2,31]),e(z,[2,33]),e(z,[2,34]),e(z,[2,37]),e(z,[2,38]),e(z,[2,39]),e(z,[2,40]),e(z,[2,41]),e(z,[2,42]),e(z,[2,43]),e(z,[2,44]),e(z,[2,45]),e(z,[2,46]),e(z,[2,47]),e(c,[2,6]),e(i,[2,8]),e(i,[2,12]),e(i,[2,13]),e(i,[2,14]),e(i,[2,20],{36:55,35:56,5:O,26:[1,59],40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,23],{36:55,35:56,5:O,26:[1,60],40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,24],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,25],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,26],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,27],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),{23:[1,61]},e(z,[2,32]),e(z,[2,48]),e(z,[2,49]),e(z,[2,50]),e(i,[2,19],{35:29,21:62,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,22],{35:29,21:63,37:U,38:Q,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),{24:[1,64]},e(i,[2,18],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,21],{36:55,35:56,5:O,40:T,41:_,42:m,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var l=new Error(n);throw l.hash=r,l}},parse:function(n){var r=this,l=[0],o=[],q=[null],a=[],et=this.table,u="",st=0,qt=0,St=2,Tt=1,kt=a.slice.call(arguments,1),E=Object.create(this.lexer),J={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(J.yy[dt]=this.yy[dt]);E.setInput(n,J.yy),J.yy.lexer=E,J.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ut=E.yylloc;a.push(ut);var Ft=E.options&&E.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pt(){var j;return j=o.pop()||E.lex()||Tt,typeof j!="number"&&(j instanceof Array&&(o=j,j=o.pop()),j=r.symbols_[j]||j),j}for(var W,Z,H,xt,tt={},rt,$,mt,lt;;){if(Z=l[l.length-1],this.defaultActions[Z]?H=this.defaultActions[Z]:((W===null||typeof W>"u")&&(W=Pt()),H=et[Z]&&et[Z][W]),typeof H>"u"||!H.length||!H[0]){var ft="";lt=[];for(rt in et[Z])this.terminals_[rt]&&rt>St&<.push("'"+this.terminals_[rt]+"'");E.showPosition?ft="Parse error on line "+(st+1)+`: +`+E.showPosition()+` +Expecting `+lt.join(", ")+", got '"+(this.terminals_[W]||W)+"'":ft="Parse error on line "+(st+1)+": Unexpected "+(W==Tt?"end of input":"'"+(this.terminals_[W]||W)+"'"),this.parseError(ft,{text:E.match,token:this.terminals_[W]||W,line:E.yylineno,loc:ut,expected:lt})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+W);switch(H[0]){case 1:l.push(W),q.push(E.yytext),a.push(E.yylloc),l.push(H[1]),W=null,qt=E.yyleng,u=E.yytext,st=E.yylineno,ut=E.yylloc;break;case 2:if($=this.productions_[H[1]][1],tt.$=q[q.length-$],tt._$={first_line:a[a.length-($||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-($||1)].first_column,last_column:a[a.length-1].last_column},Ft&&(tt._$.range=[a[a.length-($||1)].range[0],a[a.length-1].range[1]]),xt=this.performAction.apply(tt,[u,qt,st,J.yy,H[1],q,a].concat(kt)),typeof xt<"u")return xt;$&&(l=l.slice(0,-1*$*2),q=q.slice(0,-1*$),a=a.slice(0,-1*$)),l.push(this.productions_[H[1]][0]),q.push(tt.$),a.push(tt._$),mt=et[l[l.length-2]][l[l.length-1]],l.push(mt);break;case 3:return!0}}return!0}},At=function(){var K={EOF:1,parseError:function(r,l){if(this.yy.parser)this.yy.parser.parseError(r,l);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,l=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===o.length?this.yylloc.first_column:0)+o[o.length-l.length].length-l[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` +`+r+"^"},test_match:function(n,r){var l,o,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),o=n[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],l=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var a in q)this[a]=q[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,r,l,o;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),a=0;ar[0].length)){if(r=l,o=a,this.options.backtrack_lexer){if(n=this.test_match(l,q[a]),n!==!1)return n;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(n=this.test_match(r,q[o]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,l,o,q){switch(o){case 0:break;case 1:break;case 2:return 32;case 3:break;case 4:return this.begin("title"),13;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),15;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),17;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 25;case 14:return 27;case 15:return 26;case 16:return 28;case 17:return 29;case 18:return 30;case 19:return 31;case 20:this.begin("md_string");break;case 21:return"MD_STR";case 22:this.popState();break;case 23:this.begin("string");break;case 24:this.popState();break;case 25:return"STR";case 26:return this.begin("point_start"),22;case 27:return this.begin("point_x"),23;case 28:this.popState();break;case 29:this.popState(),this.begin("point_y");break;case 30:return this.popState(),24;case 31:return 6;case 32:return 43;case 33:return"COLON";case 34:return 45;case 35:return 44;case 36:return 46;case 37:return 46;case 38:return 47;case 39:return 49;case 40:return 50;case 41:return 48;case 42:return 41;case 43:return 51;case 44:return 42;case 45:return 5;case 46:return 33;case 47:return 40;case 48:return 34}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{point_y:{rules:[30],inclusive:!1},point_x:{rules:[29],inclusive:!1},point_start:{rules:[27,28],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[21,22],inclusive:!1},string:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,23,26,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};return K}();ht.lexer=At;function ct(){this.yy={}}return ct.prototype=ht,ht.Parser=ct,new ct}();pt.parser=pt;const Rt=pt,R=vt();class Vt{constructor(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){var s,h,x,f,d,c,g,i,y,p,B,N,V,I,b,M,X,C;return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:((s=D.quadrantChart)==null?void 0:s.chartWidth)||500,chartWidth:((h=D.quadrantChart)==null?void 0:h.chartHeight)||500,titlePadding:((x=D.quadrantChart)==null?void 0:x.titlePadding)||10,titleFontSize:((f=D.quadrantChart)==null?void 0:f.titleFontSize)||20,quadrantPadding:((d=D.quadrantChart)==null?void 0:d.quadrantPadding)||5,xAxisLabelPadding:((c=D.quadrantChart)==null?void 0:c.xAxisLabelPadding)||5,yAxisLabelPadding:((g=D.quadrantChart)==null?void 0:g.yAxisLabelPadding)||5,xAxisLabelFontSize:((i=D.quadrantChart)==null?void 0:i.xAxisLabelFontSize)||16,yAxisLabelFontSize:((y=D.quadrantChart)==null?void 0:y.yAxisLabelFontSize)||16,quadrantLabelFontSize:((p=D.quadrantChart)==null?void 0:p.quadrantLabelFontSize)||16,quadrantTextTopPadding:((B=D.quadrantChart)==null?void 0:B.quadrantTextTopPadding)||5,pointTextPadding:((N=D.quadrantChart)==null?void 0:N.pointTextPadding)||5,pointLabelFontSize:((V=D.quadrantChart)==null?void 0:V.pointLabelFontSize)||12,pointRadius:((I=D.quadrantChart)==null?void 0:I.pointRadius)||5,xAxisPosition:((b=D.quadrantChart)==null?void 0:b.xAxisPosition)||"top",yAxisPosition:((M=D.quadrantChart)==null?void 0:M.yAxisPosition)||"left",quadrantInternalBorderStrokeWidth:((X=D.quadrantChart)==null?void 0:X.quadrantInternalBorderStrokeWidth)||1,quadrantExternalBorderStrokeWidth:((C=D.quadrantChart)==null?void 0:C.quadrantExternalBorderStrokeWidth)||2}}getDefaultThemeConfig(){return{quadrant1Fill:R.quadrant1Fill,quadrant2Fill:R.quadrant2Fill,quadrant3Fill:R.quadrant3Fill,quadrant4Fill:R.quadrant4Fill,quadrant1TextFill:R.quadrant1TextFill,quadrant2TextFill:R.quadrant2TextFill,quadrant3TextFill:R.quadrant3TextFill,quadrant4TextFill:R.quadrant4TextFill,quadrantPointFill:R.quadrantPointFill,quadrantPointTextFill:R.quadrantPointTextFill,quadrantXAxisTextFill:R.quadrantXAxisTextFill,quadrantYAxisTextFill:R.quadrantYAxisTextFill,quadrantTitleFill:R.quadrantTitleFill,quadrantInternalBorderStrokeFill:R.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:R.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),ot.info("clear called")}setData(s){this.data={...this.data,...s}}addPoints(s){this.data.points=[...s,...this.data.points]}setConfig(s){ot.trace("setConfig called with: ",s),this.config={...this.config,...s}}setThemeConfig(s){ot.trace("setThemeConfig called with: ",s),this.themeConfig={...this.themeConfig,...s}}calculateSpace(s,h,x,f){const d=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,c={top:s==="top"&&h?d:0,bottom:s==="bottom"&&h?d:0},g=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,i={left:this.config.yAxisPosition==="left"&&x?g:0,right:this.config.yAxisPosition==="right"&&x?g:0},y=this.config.titleFontSize+this.config.titlePadding*2,p={top:f?y:0},B=this.config.quadrantPadding+i.left,N=this.config.quadrantPadding+c.top+p.top,V=this.config.chartWidth-this.config.quadrantPadding*2-i.left-i.right,I=this.config.chartHeight-this.config.quadrantPadding*2-c.top-c.bottom-p.top,b=V/2,M=I/2;return{xAxisSpace:c,yAxisSpace:i,titleSpace:p,quadrantSpace:{quadrantLeft:B,quadrantTop:N,quadrantWidth:V,quadrantHalfWidth:b,quadrantHeight:I,quadrantHalfHeight:M}}}getAxisLabels(s,h,x,f){const{quadrantSpace:d,titleSpace:c}=f,{quadrantHalfHeight:g,quadrantHeight:i,quadrantLeft:y,quadrantHalfWidth:p,quadrantTop:B,quadrantWidth:N}=d,V=!!this.data.xAxisRightText,I=!!this.data.yAxisTopText,b=[];return this.data.xAxisLeftText&&h&&b.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&h&&b.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:y+p+(V?p/2:0),y:s==="top"?this.config.xAxisLabelPadding+c.top:this.config.xAxisLabelPadding+B+i+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:V?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&x&&b.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+i-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&x&&b.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+y+N+this.config.quadrantPadding,y:B+g-(I?g/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:I?"center":"left",horizontalPos:"top",rotation:-90}),b}getQuadrants(s){const{quadrantSpace:h}=s,{quadrantHalfHeight:x,quadrantLeft:f,quadrantHalfWidth:d,quadrantTop:c}=h,g=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c,width:d,height:x,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c,width:d,height:x,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+d,y:c+x,width:d,height:x,fill:this.themeConfig.quadrant4Fill}];for(const i of g)i.text.x=i.x+i.width/2,this.data.points.length===0?(i.text.y=i.y+i.height/2,i.text.horizontalPos="middle"):(i.text.y=i.y+this.config.quadrantTextTopPadding,i.text.horizontalPos="top");return g}getQuadrantPoints(s){const{quadrantSpace:h}=s,{quadrantHeight:x,quadrantLeft:f,quadrantTop:d,quadrantWidth:c}=h,g=_t().domain([0,1]).range([f,c+f]),i=_t().domain([0,1]).range([x+d,d]);return this.data.points.map(p=>({x:g(p.x),y:i(p.y),fill:this.themeConfig.quadrantPointFill,radius:this.config.pointRadius,text:{text:p.text,fill:this.themeConfig.quadrantPointTextFill,x:g(p.x),y:i(p.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0}}))}getBorders(s){const h=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:x}=s,{quadrantHalfHeight:f,quadrantHeight:d,quadrantLeft:c,quadrantHalfWidth:g,quadrantTop:i,quadrantWidth:y}=x;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i,x2:c+y+h,y2:i},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c+y,y1:i+h,x2:c+y,y2:i+d-h},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c-h,y1:i+d,x2:c+y+h,y2:i+d},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:c,y1:i+h,x2:c,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+g,y1:i+h,x2:c+g,y2:i+d-h},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:c+h,y1:i+f,x2:c+y-h,y2:i+f}]}getTitle(s){if(s)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){const s=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),h=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),x=this.config.showTitle&&!!this.data.titleText,f=this.data.points.length>0?"bottom":this.config.xAxisPosition,d=this.calculateSpace(f,s,h,x);return{points:this.getQuadrantPoints(d),quadrants:this.getQuadrants(d),axisLabels:this.getAxisLabels(f,s,h,d),borderLines:this.getBorders(d),title:this.getTitle(x)}}}const Wt=yt();function G(e){return wt(e.trim(),Wt)}const w=new Vt;function Nt(e){w.setData({quadrant1Text:G(e.text)})}function Ut(e){w.setData({quadrant2Text:G(e.text)})}function Qt(e){w.setData({quadrant3Text:G(e.text)})}function Ht(e){w.setData({quadrant4Text:G(e.text)})}function Mt(e){w.setData({xAxisLeftText:G(e.text)})}function Xt(e){w.setData({xAxisRightText:G(e.text)})}function Ot(e){w.setData({yAxisTopText:G(e.text)})}function Yt(e){w.setData({yAxisBottomText:G(e.text)})}function $t(e,s,h){w.addPoints([{x:s,y:h,text:G(e.text)}])}function jt(e){w.setConfig({chartWidth:e})}function Gt(e){w.setConfig({chartHeight:e})}function Kt(){const e=yt(),{themeVariables:s,quadrantChart:h}=e;return h&&w.setConfig(h),w.setThemeConfig({quadrant1Fill:s.quadrant1Fill,quadrant2Fill:s.quadrant2Fill,quadrant3Fill:s.quadrant3Fill,quadrant4Fill:s.quadrant4Fill,quadrant1TextFill:s.quadrant1TextFill,quadrant2TextFill:s.quadrant2TextFill,quadrant3TextFill:s.quadrant3TextFill,quadrant4TextFill:s.quadrant4TextFill,quadrantPointFill:s.quadrantPointFill,quadrantPointTextFill:s.quadrantPointTextFill,quadrantXAxisTextFill:s.quadrantXAxisTextFill,quadrantYAxisTextFill:s.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:s.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:s.quadrantInternalBorderStrokeFill,quadrantTitleFill:s.quadrantTitleFill}),w.setData({titleText:bt()}),w.build()}const Jt=function(){w.clear(),It()},Zt={setWidth:jt,setHeight:Gt,setQuadrant1Text:Nt,setQuadrant2Text:Ut,setQuadrant3Text:Qt,setQuadrant4Text:Ht,setXAxisLeftText:Mt,setXAxisRightText:Xt,setYAxisTopText:Ot,setYAxisBottomText:Yt,addPoint:$t,getQuadrantData:Kt,clear:Jt,setAccTitle:Lt,getAccTitle:Ct,setDiagramTitle:zt,getDiagramTitle:bt,getAccDescription:Et,setAccDescription:Dt},te=(e,s,h,x)=>{var f,d,c;function g(t){return t==="top"?"hanging":"middle"}function i(t){return t==="left"?"start":"middle"}function y(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}const p=yt();ot.debug(`Rendering quadrant chart +`+e);const B=p.securityLevel;let N;B==="sandbox"&&(N=gt("#i"+s));const I=(B==="sandbox"?gt(N.nodes()[0].contentDocument.body):gt("body")).select(`[id="${s}"]`),b=I.append("g").attr("class","main"),M=((f=p.quadrantChart)==null?void 0:f.chartWidth)||500,X=((d=p.quadrantChart)==null?void 0:d.chartHeight)||500;Bt(I,X,M,((c=p.quadrantChart)==null?void 0:c.useMaxWidth)||!0),I.attr("viewBox","0 0 "+M+" "+X),x.db.setHeight(X),x.db.setWidth(M);const C=x.db.getQuadrantData(),it=b.append("g").attr("class","quadrants"),at=b.append("g").attr("class","border"),nt=b.append("g").attr("class","data-points"),U=b.append("g").attr("class","labels"),Q=b.append("g").attr("class","title");C.title&&Q.append("text").attr("x",0).attr("y",0).attr("fill",C.title.fill).attr("font-size",C.title.fontSize).attr("dominant-baseline",g(C.title.horizontalPos)).attr("text-anchor",i(C.title.verticalPos)).attr("transform",y(C.title)).text(C.title.text),C.borderLines&&at.selectAll("line").data(C.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);const T=it.selectAll("g.quadrant").data(C.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text)).text(t=>t.text.text),U.selectAll("g.label").data(C.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>g(t.horizontalPos)).attr("text-anchor",t=>i(t.verticalPos)).attr("transform",t=>y(t));const m=nt.selectAll("g.data-point").data(C.points).enter().append("g").attr("class","data-point");m.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill),m.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>g(t.text.horizontalPos)).attr("text-anchor",t=>i(t.text.verticalPos)).attr("transform",t=>y(t.text))},ee={draw:te},le={parser:Rt,db:Zt,renderer:ee,styles:()=>""};export{le as diagram}; diff --git a/docs/assets/chunks/requirementDiagram-bf7890df.CnT6SW1y.js b/docs/assets/chunks/requirementDiagram-bf7890df.CnT6SW1y.js new file mode 100644 index 0000000..b970b5a --- /dev/null +++ b/docs/assets/chunks/requirementDiagram-bf7890df.CnT6SW1y.js @@ -0,0 +1,52 @@ +import{c as Te,s as Ce,g as Fe,b as Me,a as De,l as Ne,z as Pe,h as oe,i as Ye,j as ke}from"../app.Dv4846sG.js";import{G as Ue}from"./graph.CEI0PYYp.js";import{l as Be}from"./layout.B9Jo_8FM.js";import{l as Qe}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";var ce=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],fe=[1,48],ye=[1,49],_e=[1,50],ge=[1,51],Ee=[1,52],Re=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],z=[1,69],j=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{52:54,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:z,30:j,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:z,30:j,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:z,30:j,46:110,47:X,49:J},{5:z,30:j,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,me=0,Ve=2,Ie=1,qe=s.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(L.yy[ne]=this.yy[ne]);E.setInput(i,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var se=E.yylloc;s.push(se);var Oe=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var $;return $=r.pop()||E.lex()||Ie,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,ae,Q={},ee,w,be,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=Le()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var le="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ve&&te.push("'"+this.terminals_[ee]+"'");E.showPosition?le="Parse error on line "+(Z+1)+`: +`+E.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[I]||I)+"'":le="Parse error on line "+(Z+1)+": Unexpected "+(I==Ie?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(le,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:se,expected:te})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+I);switch(S[0]){case 1:a.push(I),f.push(E.yytext),s.push(E.yylloc),a.push(S[1]),I=null,me=E.yyleng,_=E.yytext,Z=E.yylineno,se=E.yylloc;break;case 2:if(w=this.productions_[S[1]][1],Q.$=f[f.length-w],Q._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},Oe&&(Q._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),ae=this.performAction.apply(Q,[_,me,Z,L.yy,S[1],f,s].concat(qe)),typeof ae<"u")return ae;w&&(a=a.slice(0,-1*w*2),f=f.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),f.push(Q.$),s.push(Q._$),be=W[a[a.length-2]][a[a.length-1]],a.push(be);break;case 3:return!0}}return!0}},$e=function(){var V={EOF:1,parseError:function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},setInput:function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+n+"^"},test_match:function(i,n){var a,r,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),r=i[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],a=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a)return a;if(this._backtrack){for(var s in f)this[s]=f[s];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,n,a,r;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),s=0;sn[0].length)){if(n=a,r=s,this.options.backtrack_lexer){if(i=this.test_match(a,f[s]),i!==!1)return i;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(i=this.test_match(n,f[r]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,a,r,f){switch(r){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return a.yytext=a.yytext.trim(),62}},rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return V}();ie.lexer=$e;function re(){this.yy={}}return re.prototype=ie,ie.Parser=re,new re}();ce.parser=ce;const He=ce;let ue=[],b={},K={},q={},G={};const We={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Ke={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},Ge={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},ze={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},je=(e,t)=>(K[e]===void 0&&(K[e]={name:e,type:t,id:b.id,text:b.text,risk:b.risk,verifyMethod:b.verifyMethod}),b={},K[e]),Xe=()=>K,Je=e=>{b!==void 0&&(b.id=e)},Ze=e=>{b!==void 0&&(b.text=e)},et=e=>{b!==void 0&&(b.risk=e)},tt=e=>{b!==void 0&&(b.verifyMethod=e)},it=e=>(G[e]===void 0&&(G[e]={name:e,type:q.type,docRef:q.docRef},Ne.info("Added new requirement: ",e)),q={},G[e]),rt=()=>G,nt=e=>{q!==void 0&&(q.type=e)},st=e=>{q!==void 0&&(q.docRef=e)},at=(e,t,l)=>{ue.push({type:e,src:t,dst:l})},lt=()=>ue,ot=()=>{ue=[],b={},K={},q={},G={},Pe()},ct={RequirementType:We,RiskLevel:Ke,VerifyType:Ge,Relationships:ze,getConfig:()=>Te().req,addRequirement:je,getRequirements:Xe,setNewReqId:Je,setNewReqText:Ze,setNewReqRisk:et,setNewReqVerifyMethod:tt,setAccTitle:Ce,getAccTitle:Fe,setAccDescription:Me,getAccDescription:De,addElement:it,getElements:rt,setNewElementType:nt,setNewElementDocRef:st,addRelationship:at,getRelationships:lt,clear:ot},ht=e=>` + + marker { + fill: ${e.relationColor}; + stroke: ${e.relationColor}; + } + + marker.cross { + stroke: ${e.lineColor}; + } + + svg { + font-family: ${e.fontFamily}; + font-size: ${e.fontSize}; + } + + .reqBox { + fill: ${e.requirementBackground}; + fill-opacity: 1.0; + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${e.requirementTextColor}; + } + .reqLabelBox { + fill: ${e.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${e.requirementBorderColor}; + stroke-width: ${e.requirementBorderSize}; + } + .relationshipLine { + stroke: ${e.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${e.relationLabelColor}; + } + +`,ut=ht,he={CONTAINS:"contains",ARROW:"arrow"},dt=(e,t)=>{let l=e.append("defs").append("marker").attr("id",he.CONTAINS+"_line_ending").attr("refX",0).attr("refY",t.line_height/2).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("g");l.append("circle").attr("cx",t.line_height/2).attr("cy",t.line_height/2).attr("r",t.line_height/2).attr("fill","none"),l.append("line").attr("x1",0).attr("x2",t.line_height).attr("y1",t.line_height/2).attr("y2",t.line_height/2).attr("stroke-width",1),l.append("line").attr("y1",0).attr("y2",t.line_height).attr("x1",t.line_height/2).attr("x2",t.line_height/2).attr("stroke-width",1),e.append("defs").append("marker").attr("id",he.ARROW+"_line_ending").attr("refX",t.line_height).attr("refY",.5*t.line_height).attr("markerWidth",t.line_height).attr("markerHeight",t.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${t.line_height},${t.line_height/2} + M${t.line_height},${t.line_height/2} + L0,${t.line_height}`).attr("stroke-width",1)},xe={ReqMarkers:he,insertLineEndings:dt};let y={},Se=0;const Ae=(e,t)=>e.insert("rect","#"+t).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",y.rect_min_width+"px").attr("height",y.rect_min_height+"px"),ve=(e,t,l)=>{let c=y.rect_min_width/2,u=e.append("text").attr("class","req reqLabel reqTitle").attr("id",t).attr("x",c).attr("y",y.rect_padding).attr("dominant-baseline","hanging"),d=0;l.forEach(g=>{d==0?u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",0).text(g):u.append("tspan").attr("text-anchor","middle").attr("x",y.rect_min_width/2).attr("dy",y.line_height*.75).text(g),d++});let p=1.5*y.rect_padding,h=d*y.line_height*.75,o=p+h;return e.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",y.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:u,y:o}},we=(e,t,l,c)=>{let u=e.append("text").attr("class","req reqLabel").attr("id",t).attr("x",y.rect_padding).attr("y",c).attr("dominant-baseline","hanging"),d=0;const p=30;let h=[];return l.forEach(o=>{let g=o.length;for(;g>p&&d<3;){let R=o.substring(0,p);o=o.substring(p,o.length),g=o.length,h[h.length]=R,d++}if(d==3){let R=h[h.length-1];h[h.length-1]=R.substring(0,R.length-4)+"..."}else h[h.length]=o;d=0}),h.forEach(o=>{u.append("tspan").attr("x",y.rect_padding).attr("dy",y.line_height).text(o)}),u},pt=(e,t,l,c)=>{const u=t.node().getTotalLength(),d=t.node().getPointAtLength(u*.5),p="rel"+Se;Se++;const o=e.append("text").attr("class","req relationshipLabel").attr("id",p).attr("x",d.x).attr("y",d.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(c).node().getBBox();e.insert("rect","#"+p).attr("class","req reqLabelBox").attr("x",d.x-o.width/2).attr("y",d.y-o.height/2).attr("width",o.width).attr("height",o.height).attr("fill","white").attr("fill-opacity","85%")},ft=function(e,t,l,c,u){const d=l.edge(H(t.src),H(t.dst)),p=Qe().x(function(o){return o.x}).y(function(o){return o.y}),h=e.insert("path","#"+c).attr("class","er relationshipLine").attr("d",p(d.points)).attr("fill","none");t.type==u.db.Relationships.CONTAINS?h.attr("marker-start","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+t.type+"_line_ending)"):(h.attr("stroke-dasharray","10,7"),h.attr("marker-end","url("+ke.getUrl(y.arrowMarkerAbsolute)+"#"+xe.ReqMarkers.ARROW+"_line_ending)")),pt(e,h,y,`<<${t.type}>>`)},yt=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];c=H(c),Ne.info("Added new requirement: ",c);const d=l.append("g").attr("id",c),p="req-"+c,h=Ae(d,p);let o=ve(d,c+"_title",[`<<${u.type}>>`,`${u.name}`]);we(d,c+"_body",[`Id: ${u.id}`,`Text: ${u.text}`,`Risk: ${u.risk}`,`Verification: ${u.verifyMethod}`],o.y);const g=h.node().getBBox();t.setNode(c,{width:g.width,height:g.height,shape:"rect",id:c})})},_t=(e,t,l)=>{Object.keys(e).forEach(c=>{let u=e[c];const d=H(c),p=l.append("g").attr("id",d),h="element-"+d,o=Ae(p,h);let g=ve(p,h+"_title",["<>",`${c}`]);we(p,h+"_body",[`Type: ${u.type||"Not Specified"}`,`Doc Ref: ${u.docRef||"None"}`],g.y);const R=o.node().getBBox();t.setNode(d,{width:R.width,height:R.height,shape:"rect",id:d})})},gt=(e,t)=>(e.forEach(function(l){let c=H(l.src),u=H(l.dst);t.setEdge(c,u,{relationship:l})}),e),Et=function(e,t){t.nodes().forEach(function(l){l!==void 0&&t.node(l)!==void 0&&(e.select("#"+l),e.select("#"+l).attr("transform","translate("+(t.node(l).x-t.node(l).width/2)+","+(t.node(l).y-t.node(l).height/2)+" )"))})},H=e=>e.replace(/\s/g,"").replace(/\./g,"_"),Rt=(e,t,l,c)=>{y=Te().requirement;const u=y.securityLevel;let d;u==="sandbox"&&(d=oe("#i"+t));const h=(u==="sandbox"?oe(d.nodes()[0].contentDocument.body):oe("body")).select(`[id='${t}']`);xe.insertLineEndings(h,y);const o=new Ue({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:y.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let g=c.db.getRequirements(),R=c.db.getElements(),A=c.db.getRelationships();yt(g,o,h),_t(R,o,h),gt(A,o),Be(o),Et(h,o),A.forEach(function(x){ft(h,x,o,t,c)});const T=y.rect_padding,N=h.node().getBBox(),v=N.width+T*2,k=N.height+T*2;Ye(h,k,v,y.useMaxWidth),h.attr("viewBox",`${N.x-T} ${N.y-T} ${v} ${k}`)},mt={draw:Rt},vt={parser:He,db:ct,renderer:mt,styles:ut};export{vt as diagram}; diff --git a/docs/assets/chunks/sankeyDiagram-0acdec17.B1_fpWdp.js b/docs/assets/chunks/sankeyDiagram-0acdec17.B1_fpWdp.js new file mode 100644 index 0000000..b8b5182 --- /dev/null +++ b/docs/assets/chunks/sankeyDiagram-0acdec17.B1_fpWdp.js @@ -0,0 +1,8 @@ +import{c as rt,g as mt,s as _t,a as kt,b as xt,x as vt,v as bt,z as wt,j as St,u as Lt,h as G,t as Et}from"../app.Dv4846sG.js";import{o as At}from"./ordinal.BYWQX77i.js";import{s as Tt}from"./Tableau10.B-NsZVaP.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./init.Gi6I4Gst.js";function ot(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s=u)&&(s=u)}return s}function yt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function Z(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let u of t)(u=+n(u,++a,t))&&(s+=u)}return s}function Mt(t){return t.target.depth}function Nt(t){return t.depth}function Pt(t,n){return n-1-t.height}function dt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ct(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?yt(t.sourceLinks,Mt)-1:0}function Y(t){return function(){return t}}function lt(t,n){return H(t.source,n.source)||t.index-n.index}function at(t,n){return H(t.target,n.target)||t.index-n.index}function H(t,n){return t.y0-n.y0}function J(t){return t.value}function It(t){return t.index}function $t(t){return t.nodes}function Ot(t){return t.links}function ct(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function ut({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const u of n.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of n.targetLinks)u.y1=a+u.width/2,a+=u.width}}function zt(){let t=0,n=0,s=1,a=1,u=24,k=8,g,p=It,i=dt,o,c,m=$t,b=Ot,y=6;function x(){const e={nodes:m.apply(null,arguments),links:b.apply(null,arguments)};return E(e),L(e),A(e),N(e),S(e),ut(e),e}x.update=function(e){return ut(e),e},x.nodeId=function(e){return arguments.length?(p=typeof e=="function"?e:Y(e),x):p},x.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:Y(e),x):i},x.nodeSort=function(e){return arguments.length?(o=e,x):o},x.nodeWidth=function(e){return arguments.length?(u=+e,x):u},x.nodePadding=function(e){return arguments.length?(k=g=+e,x):k},x.nodes=function(e){return arguments.length?(m=typeof e=="function"?e:Y(e),x):m},x.links=function(e){return arguments.length?(b=typeof e=="function"?e:Y(e),x):b},x.linkSort=function(e){return arguments.length?(c=e,x):c},x.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],x):[s-t,a-n]},x.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],x):[[t,n],[s,a]]},x.iterations=function(e){return arguments.length?(y=+e,x):y};function E({nodes:e,links:f}){for(const[h,r]of e.entries())r.index=h,r.sourceLinks=[],r.targetLinks=[];const l=new Map(e.map((h,r)=>[p(h,r,e),h]));for(const[h,r]of f.entries()){r.index=h;let{source:_,target:v}=r;typeof _!="object"&&(_=r.source=ct(l,_)),typeof v!="object"&&(v=r.target=ct(l,v)),_.sourceLinks.push(r),v.targetLinks.push(r)}if(c!=null)for(const{sourceLinks:h,targetLinks:r}of e)h.sort(c),r.sort(c)}function L({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(Z(f.sourceLinks,J),Z(f.targetLinks,J)):f.fixedValue}function A({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const _ of l){_.depth=r;for(const{target:v}of _.sourceLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function N({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const _ of l){_.height=r;for(const{source:v}of _.targetLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function I({nodes:e}){const f=ot(e,r=>r.depth)+1,l=(s-t-u)/(f-1),h=new Array(f);for(const r of e){const _=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=_,r.x0=t+_*l,r.x1=r.x0+u,h[_]?h[_].push(r):h[_]=[r]}if(o)for(const r of h)r.sort(o);return h}function z(e){const f=yt(e,l=>(a-n-(l.length-1)*g)/Z(l,J));for(const l of e){let h=n;for(const r of l){r.y0=h,r.y1=h+r.value*f,h=r.y1+g;for(const _ of r.sourceLinks)_.width=_.value*f}h=(a-h+g)/(l.length+1);for(let r=0;rl.length)-1)),z(f);for(let l=0;l0))continue;let U=(R/j-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&_.sort(H),P(_,l)}}function O(e,f,l){for(let h=e.length,r=h-2;r>=0;--r){const _=e[r];for(const v of _){let R=0,j=0;for(const{target:W,value:K}of v.sourceLinks){let F=K*(W.layer-v.layer);R+=V(v,W)*F,j+=F}if(!(j>0))continue;let U=(R/j-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&_.sort(H),P(_,l)}}function P(e,f){const l=e.length>>1,h=e[l];d(e,h.y0-g,l-1,f),C(e,h.y1+g,l+1,f),d(e,a,e.length-1,f),C(e,n,0,f)}function C(e,f,l,h){for(;l1e-6&&(r.y0+=_,r.y1+=_),f=r.y1+g}}function d(e,f,l,h){for(;l>=0;--l){const r=e[l],_=(r.y1-f)*h;_>1e-6&&(r.y0-=_,r.y1-=_),f=r.y0-g}}function w({sourceLinks:e,targetLinks:f}){if(c===void 0){for(const{source:{sourceLinks:l}}of f)l.sort(at);for(const{target:{targetLinks:l}}of e)l.sort(lt)}}function $(e){if(c===void 0)for(const{sourceLinks:f,targetLinks:l}of e)f.sort(at),l.sort(lt)}function T(e,f){let l=e.y0-(e.sourceLinks.length-1)*g/2;for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l+=r+g}for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l-=r}return l}function V(e,f){let l=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l+=r+g}for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l-=r}return l}return x}var tt=Math.PI,et=2*tt,D=1e-6,jt=et-D;function nt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function gt(){return new nt}nt.prototype=gt.prototype={constructor:nt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,u,k){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+u)+","+(this._y1=+k)},arcTo:function(t,n,s,a,u){t=+t,n=+n,s=+s,a=+a,u=+u;var k=this._x1,g=this._y1,p=s-t,i=a-n,o=k-t,c=g-n,m=o*o+c*c;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(m>D)if(!(Math.abs(c*p-i*o)>D)||!u)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var b=s-k,y=a-g,x=p*p+i*i,E=b*b+y*y,L=Math.sqrt(x),A=Math.sqrt(m),N=u*Math.tan((tt-Math.acos((x+m-E)/(2*L*A)))/2),I=N/A,z=N/L;Math.abs(I-1)>D&&(this._+="L"+(t+I*o)+","+(n+I*c)),this._+="A"+u+","+u+",0,0,"+ +(c*b>o*y)+","+(this._x1=t+z*p)+","+(this._y1=n+z*i)}},arc:function(t,n,s,a,u,k){t=+t,n=+n,s=+s,k=!!k;var g=s*Math.cos(a),p=s*Math.sin(a),i=t+g,o=n+p,c=1^k,m=k?a-u:u-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>D||Math.abs(this._y1-o)>D)&&(this._+="L"+i+","+o),s&&(m<0&&(m=m%et+et),m>jt?this._+="A"+s+","+s+",0,1,"+c+","+(t-g)+","+(n-p)+"A"+s+","+s+",0,1,"+c+","+(this._x1=i)+","+(this._y1=o):m>D&&(this._+="A"+s+","+s+",0,"+ +(m>=tt)+","+c+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=n+s*Math.sin(u))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function ht(t){return function(){return t}}function Dt(t){return t[0]}function Bt(t){return t[1]}var Vt=Array.prototype.slice;function Rt(t){return t.source}function Ut(t){return t.target}function Wt(t){var n=Rt,s=Ut,a=Dt,u=Bt,k=null;function g(){var p,i=Vt.call(arguments),o=n.apply(this,i),c=s.apply(this,i);if(k||(k=p=gt()),t(k,+a.apply(this,(i[0]=o,i)),+u.apply(this,i),+a.apply(this,(i[0]=c,i)),+u.apply(this,i)),p)return k=null,p+""||null}return g.source=function(p){return arguments.length?(n=p,g):n},g.target=function(p){return arguments.length?(s=p,g):s},g.x=function(p){return arguments.length?(a=typeof p=="function"?p:ht(+p),g):a},g.y=function(p){return arguments.length?(u=typeof p=="function"?p:ht(+p),g):u},g.context=function(p){return arguments.length?(k=p??null,g):k},g}function Ft(t,n,s,a,u){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,u,a,u)}function Gt(){return Wt(Ft)}function Yt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Gt().source(Yt).target(Ht)}var it=function(){var t=function(p,i,o,c){for(o=o||{},c=p.length;c--;o[p[c]]=i);return o},n=[1,9],s=[1,10],a=[1,5,10,12],u={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(i,o,c,m,b,y,x){var E=y.length-1;switch(b){case 7:const L=m.findOrCreateNode(y[E-4].trim().replaceAll('""','"')),A=m.findOrCreateNode(y[E-2].trim().replaceAll('""','"')),N=parseFloat(y[E].trim());m.addLink(L,A,N);break;case 8:case 9:case 11:this.$=y[E];break;case 10:this.$=y[E-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(i,o){if(o.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=o,c}},parse:function(i){var o=this,c=[0],m=[],b=[null],y=[],x=this.table,E="",L=0,A=0,N=2,I=1,z=y.slice.call(arguments,1),S=Object.create(this.lexer),M={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(M.yy[O]=this.yy[O]);S.setInput(i,M.yy),M.yy.lexer=S,M.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var P=S.yylloc;y.push(P);var C=S.options&&S.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function d(){var v;return v=m.pop()||S.lex()||I,typeof v!="number"&&(v instanceof Array&&(m=v,v=m.pop()),v=o.symbols_[v]||v),v}for(var w,$,T,V,e={},f,l,h,r;;){if($=c[c.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((w===null||typeof w>"u")&&(w=d()),T=x[$]&&x[$][w]),typeof T>"u"||!T.length||!T[0]){var _="";r=[];for(f in x[$])this.terminals_[f]&&f>N&&r.push("'"+this.terminals_[f]+"'");S.showPosition?_="Parse error on line "+(L+1)+`: +`+S.showPosition()+` +Expecting `+r.join(", ")+", got '"+(this.terminals_[w]||w)+"'":_="Parse error on line "+(L+1)+": Unexpected "+(w==I?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(_,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:P,expected:r})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+w);switch(T[0]){case 1:c.push(w),b.push(S.yytext),y.push(S.yylloc),c.push(T[1]),w=null,A=S.yyleng,E=S.yytext,L=S.yylineno,P=S.yylloc;break;case 2:if(l=this.productions_[T[1]][1],e.$=b[b.length-l],e._$={first_line:y[y.length-(l||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(l||1)].first_column,last_column:y[y.length-1].last_column},C&&(e._$.range=[y[y.length-(l||1)].range[0],y[y.length-1].range[1]]),V=this.performAction.apply(e,[E,A,L,M.yy,T[1],b,y].concat(z)),typeof V<"u")return V;l&&(c=c.slice(0,-1*l*2),b=b.slice(0,-1*l),y=y.slice(0,-1*l)),c.push(this.productions_[T[1]][0]),b.push(e.$),y.push(e._$),h=x[c[c.length-2]][c[c.length-1]],c.push(h);break;case 3:return!0}}return!0}},k=function(){var p={EOF:1,parseError:function(o,c){if(this.yy.parser)this.yy.parser.parseError(o,c);else throw new Error(o)},setInput:function(i,o){return this.yy=o||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var o=i.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var o=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===m.length?this.yylloc.first_column:0)+m[m.length-c.length].length-c[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),o=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+o+"^"},test_match:function(i,o){var c,m,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),m=i[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,o,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var y in b)this[y]=b[y];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,o,c,m;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),y=0;yo[0].length)){if(o=c,m=y,this.options.backtrack_lexer){if(i=this.test_match(c,b[y]),i!==!1)return i;if(this._backtrack){o=!1;continue}else return!1}else if(!this.options.flex)break}return o?(i=this.test_match(o,b[m]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var o=this.next();return o||this.lex()},begin:function(o){this.conditionStack.push(o)},popState:function(){var o=this.conditionStack.length-1;return o>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(o){return o=this.conditionStack.length-1-Math.abs(o||0),o>=0?this.conditionStack[o]:"INITIAL"},pushState:function(o){this.begin(o)},stateStackSize:function(){return this.conditionStack.length},options:{easy_keword_rules:!0},performAction:function(o,c,m,b){switch(m){case 0:return this.pushState("csv"),4;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;case 5:return 20;case 6:return this.popState("escaped_text"),18;case 7:return 19}},rules:[/^(?:sankey-beta\b)/,/^(?:$)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:(\u002C))/,/^(?:(\u0022))/,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/,/^(?:(\u0022)(?!(\u0022)))/,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return p}();u.lexer=k;function g(){this.yy={}}return g.prototype=u,u.Parser=g,new g}();it.parser=it;const X=it;let q=[],Q=[],B={};const qt=()=>{q=[],Q=[],B={},wt()};class Qt{constructor(n,s,a=0){this.source=n,this.target=s,this.value=a}}const Kt=(t,n,s)=>{q.push(new Qt(t,n,s))};class Zt{constructor(n){this.ID=n}}const Jt=t=>(t=St.sanitizeText(t,rt()),B[t]||(B[t]=new Zt(t),Q.push(B[t])),B[t]),te=()=>Q,ee=()=>q,ne=()=>({nodes:Q.map(t=>({id:t.ID})),links:q.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),ie={nodesMap:B,getConfig:()=>rt().sankey,getNodes:te,getLinks:ee,getGraph:ne,addLink:Kt,findOrCreateNode:Jt,getAccTitle:mt,setAccTitle:_t,getAccDescription:kt,setAccDescription:xt,getDiagramTitle:vt,setDiagramTitle:bt,clear:qt},pt=class st{static next(n){return new st(n+ ++st.count)}constructor(n){this.id=n,this.href=`#${n}`}toString(){return"url("+this.href+")"}};pt.count=0;let ft=pt;const se={left:Nt,right:Pt,center:Ct,justify:dt},re=function(t,n,s,a){const{securityLevel:u,sankey:k}=rt(),g=Lt.sankey;let p;u==="sandbox"&&(p=G("#i"+n));const i=u==="sandbox"?G(p.nodes()[0].contentDocument.body):G("body"),o=u==="sandbox"?i.select(`[id="${n}"]`):G(`[id="${n}"]`),c=(k==null?void 0:k.width)??g.width,m=(k==null?void 0:k.height)??g.width,b=(k==null?void 0:k.useMaxWidth)??g.useMaxWidth,y=(k==null?void 0:k.nodeAlignment)??g.nodeAlignment,x=(k==null?void 0:k.prefix)??g.prefix,E=(k==null?void 0:k.suffix)??g.suffix,L=(k==null?void 0:k.showValues)??g.showValues,A=a.db.getGraph(),N=se[y];zt().nodeId(d=>d.id).nodeWidth(10).nodePadding(10+(L?15:0)).nodeAlign(N).extent([[0,0],[c,m]])(A);const S=At(Tt);o.append("g").attr("class","nodes").selectAll(".node").data(A.nodes).join("g").attr("class","node").attr("id",d=>(d.uid=ft.next("node-")).id).attr("transform",function(d){return"translate("+d.x0+","+d.y0+")"}).attr("x",d=>d.x0).attr("y",d=>d.y0).append("rect").attr("height",d=>d.y1-d.y0).attr("width",d=>d.x1-d.x0).attr("fill",d=>S(d.id));const M=({id:d,value:w})=>L?`${d} +${x}${Math.round(w*100)/100}${E}`:d;o.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(A.nodes).join("text").attr("x",d=>d.x0(d.y1+d.y0)/2).attr("dy",`${L?"0":"0.35"}em`).attr("text-anchor",d=>d.x0(w.uid=ft.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",w=>w.source.x1).attr("x2",w=>w.target.x0);d.append("stop").attr("offset","0%").attr("stop-color",w=>S(w.source.id)),d.append("stop").attr("offset","100%").attr("stop-color",w=>S(w.target.id))}let C;switch(P){case"gradient":C=d=>d.uid;break;case"source":C=d=>S(d.source.id);break;case"target":C=d=>S(d.target.id);break;default:C=P}O.append("path").attr("d",Xt()).attr("stroke",C).attr("stroke-width",d=>Math.max(1,d.width)),Et(void 0,o,0,b)},oe={draw:re},le=t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),ae=X.parse.bind(X);X.parse=t=>ae(le(t));const ge={parser:X,db:ie,renderer:oe};export{ge as diagram}; diff --git a/docs/assets/chunks/sequenceDiagram-c18d009d.2v1gGLQH.js b/docs/assets/chunks/sequenceDiagram-c18d009d.2v1gGLQH.js new file mode 100644 index 0000000..b7f040f --- /dev/null +++ b/docs/assets/chunks/sequenceDiagram-c18d009d.2v1gGLQH.js @@ -0,0 +1,122 @@ +import{g as Te,x as ye,v as Ee,c as lt,s as Jt,b as be,a as me,z as we,l as K,d as Pt,j as v,e as ve,h as kt,i as _e,y as B,m as Zt,aL as Qt,a_ as ke}from"../app.Dv4846sG.js";import{d as Pe,a as Le,g as Lt,b as Ie,c as Ae,e as Yt}from"./svgDrawCommon-0ee1b4e9.CCRf0t7P.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";var Ct=function(){var t=function(ct,w,k,L){for(k=k||{},L=ct.length;L--;k[ct[L]]=w);return k},e=[1,2],o=[1,3],s=[1,4],r=[2,4],a=[1,9],l=[1,11],h=[1,13],p=[1,14],i=[1,16],x=[1,17],E=[1,18],u=[1,24],g=[1,25],m=[1,26],P=[1,27],A=[1,28],D=[1,29],S=[1,30],W=[1,31],M=[1,32],tt=[1,33],q=[1,34],G=[1,35],Z=[1,36],z=[1,37],F=[1,38],O=[1,39],X=[1,41],H=[1,42],J=[1,43],Q=[1,44],j=[1,45],y=[1,46],_=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],I=[4,5,16,50,52,53],ht=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],et=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],N=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],zt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],ot=[68,69,70],it=[1,120],At={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(w,k,L,T,R,c,Et){var d=c.length-1;switch(R){case 3:return T.apply(c[d]),c[d];case 4:case 9:this.$=[];break;case 5:case 10:c[d-1].push(c[d]),this.$=c[d-1];break;case 6:case 7:case 11:case 12:this.$=c[d];break;case 8:case 13:this.$=[];break;case 15:c[d].type="createParticipant",this.$=c[d];break;case 16:c[d-1].unshift({type:"boxStart",boxData:T.parseBoxData(c[d-2])}),c[d-1].push({type:"boxEnd",boxText:c[d-2]}),this.$=c[d-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(c[d-2]),sequenceIndexStep:Number(c[d-1]),sequenceVisible:!0,signalType:T.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(c[d-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:T.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:T.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:T.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:T.LINETYPE.ACTIVE_START,actor:c[d-1]};break;case 23:this.$={type:"activeEnd",signalType:T.LINETYPE.ACTIVE_END,actor:c[d-1]};break;case 29:T.setDiagramTitle(c[d].substring(6)),this.$=c[d].substring(6);break;case 30:T.setDiagramTitle(c[d].substring(7)),this.$=c[d].substring(7);break;case 31:this.$=c[d].trim(),T.setAccTitle(this.$);break;case 32:case 33:this.$=c[d].trim(),T.setAccDescription(this.$);break;case 34:c[d-1].unshift({type:"loopStart",loopText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.LOOP_START}),c[d-1].push({type:"loopEnd",loopText:c[d-2],signalType:T.LINETYPE.LOOP_END}),this.$=c[d-1];break;case 35:c[d-1].unshift({type:"rectStart",color:T.parseMessage(c[d-2]),signalType:T.LINETYPE.RECT_START}),c[d-1].push({type:"rectEnd",color:T.parseMessage(c[d-2]),signalType:T.LINETYPE.RECT_END}),this.$=c[d-1];break;case 36:c[d-1].unshift({type:"optStart",optText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.OPT_START}),c[d-1].push({type:"optEnd",optText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.OPT_END}),this.$=c[d-1];break;case 37:c[d-1].unshift({type:"altStart",altText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.ALT_START}),c[d-1].push({type:"altEnd",signalType:T.LINETYPE.ALT_END}),this.$=c[d-1];break;case 38:c[d-1].unshift({type:"parStart",parText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.PAR_START}),c[d-1].push({type:"parEnd",signalType:T.LINETYPE.PAR_END}),this.$=c[d-1];break;case 39:c[d-1].unshift({type:"parStart",parText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.PAR_OVER_START}),c[d-1].push({type:"parEnd",signalType:T.LINETYPE.PAR_END}),this.$=c[d-1];break;case 40:c[d-1].unshift({type:"criticalStart",criticalText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.CRITICAL_START}),c[d-1].push({type:"criticalEnd",signalType:T.LINETYPE.CRITICAL_END}),this.$=c[d-1];break;case 41:c[d-1].unshift({type:"breakStart",breakText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.BREAK_START}),c[d-1].push({type:"breakEnd",optText:T.parseMessage(c[d-2]),signalType:T.LINETYPE.BREAK_END}),this.$=c[d-1];break;case 43:this.$=c[d-3].concat([{type:"option",optionText:T.parseMessage(c[d-1]),signalType:T.LINETYPE.CRITICAL_OPTION},c[d]]);break;case 45:this.$=c[d-3].concat([{type:"and",parText:T.parseMessage(c[d-1]),signalType:T.LINETYPE.PAR_AND},c[d]]);break;case 47:this.$=c[d-3].concat([{type:"else",altText:T.parseMessage(c[d-1]),signalType:T.LINETYPE.ALT_ELSE},c[d]]);break;case 48:c[d-3].draw="participant",c[d-3].type="addParticipant",c[d-3].description=T.parseMessage(c[d-1]),this.$=c[d-3];break;case 49:c[d-1].draw="participant",c[d-1].type="addParticipant",this.$=c[d-1];break;case 50:c[d-3].draw="actor",c[d-3].type="addParticipant",c[d-3].description=T.parseMessage(c[d-1]),this.$=c[d-3];break;case 51:c[d-1].draw="actor",c[d-1].type="addParticipant",this.$=c[d-1];break;case 52:c[d-1].type="destroyParticipant",this.$=c[d-1];break;case 53:this.$=[c[d-1],{type:"addNote",placement:c[d-2],actor:c[d-1].actor,text:c[d]}];break;case 54:c[d-2]=[].concat(c[d-1],c[d-1]).slice(0,2),c[d-2][0]=c[d-2][0].actor,c[d-2][1]=c[d-2][1].actor,this.$=[c[d-1],{type:"addNote",placement:T.PLACEMENT.OVER,actor:c[d-2].slice(0,2),text:c[d]}];break;case 55:this.$=[c[d-1],{type:"addLinks",actor:c[d-1].actor,text:c[d]}];break;case 56:this.$=[c[d-1],{type:"addALink",actor:c[d-1].actor,text:c[d]}];break;case 57:this.$=[c[d-1],{type:"addProperties",actor:c[d-1].actor,text:c[d]}];break;case 58:this.$=[c[d-1],{type:"addDetails",actor:c[d-1].actor,text:c[d]}];break;case 61:this.$=[c[d-2],c[d]];break;case 62:this.$=c[d];break;case 63:this.$=T.PLACEMENT.LEFTOF;break;case 64:this.$=T.PLACEMENT.RIGHTOF;break;case 65:this.$=[c[d-4],c[d-1],{type:"addMessage",from:c[d-4].actor,to:c[d-1].actor,signalType:c[d-3],msg:c[d],activate:!0},{type:"activeStart",signalType:T.LINETYPE.ACTIVE_START,actor:c[d-1]}];break;case 66:this.$=[c[d-4],c[d-1],{type:"addMessage",from:c[d-4].actor,to:c[d-1].actor,signalType:c[d-3],msg:c[d]},{type:"activeEnd",signalType:T.LINETYPE.ACTIVE_END,actor:c[d-4]}];break;case 67:this.$=[c[d-3],c[d-1],{type:"addMessage",from:c[d-3].actor,to:c[d-1].actor,signalType:c[d-2],msg:c[d]}];break;case 68:this.$={type:"addParticipant",actor:c[d]};break;case 69:this.$=T.LINETYPE.SOLID_OPEN;break;case 70:this.$=T.LINETYPE.DOTTED_OPEN;break;case 71:this.$=T.LINETYPE.SOLID;break;case 72:this.$=T.LINETYPE.DOTTED;break;case 73:this.$=T.LINETYPE.SOLID_CROSS;break;case 74:this.$=T.LINETYPE.DOTTED_CROSS;break;case 75:this.$=T.LINETYPE.SOLID_POINT;break;case 76:this.$=T.LINETYPE.DOTTED_POINT;break;case 77:this.$=T.parseMessage(c[d].trim().substring(1));break}},table:[{3:1,4:e,5:o,6:s},{1:[3]},{3:5,4:e,5:o,6:s},{3:6,4:e,5:o,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:l,8:8,9:10,12:12,13:h,14:p,17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},t(_,[2,5]),{9:47,12:12,13:h,14:p,17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},t(_,[2,7]),t(_,[2,8]),t(_,[2,14]),{12:48,50:z,52:F,53:O},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:y},{22:55,70:y},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(_,[2,29]),t(_,[2,30]),{32:[1,61]},{34:[1,62]},t(_,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:y},{22:72,70:y},{22:73,70:y},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:y},{22:88,70:y},{22:89,70:y},{22:90,70:y},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(_,[2,6]),t(_,[2,15]),t(I,[2,9],{10:91}),t(_,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(_,[2,21]),{5:[1,95]},{5:[1,96]},t(_,[2,24]),t(_,[2,25]),t(_,[2,26]),t(_,[2,27]),t(_,[2,28]),t(_,[2,31]),t(_,[2,32]),t(ht,r,{7:97}),t(ht,r,{7:98}),t(ht,r,{7:99}),t(et,r,{40:100,7:101}),t(N,r,{42:102,7:103}),t(N,r,{7:103,42:104}),t(zt,r,{45:105,7:106}),t(ht,r,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:y},t(ot,[2,69]),t(ot,[2,70]),t(ot,[2,71]),t(ot,[2,72]),t(ot,[2,73]),t(ot,[2,74]),t(ot,[2,75]),t(ot,[2,76]),{22:116,70:y},{22:118,58:117,70:y},{70:[2,63]},{70:[2,64]},{56:119,79:it},{56:121,79:it},{56:122,79:it},{56:123,79:it},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:z,52:F,53:O},{5:[1,129]},t(_,[2,19]),t(_,[2,20]),t(_,[2,22]),t(_,[2,23]),{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[1,130],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[1,131],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[1,132],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{16:[1,133]},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[2,46],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,49:[1,134],50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{16:[1,135]},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[2,44],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,48:[1,136],50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{16:[1,137]},{16:[1,138]},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[2,42],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,47:[1,139],50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{4:a,5:l,8:8,9:10,12:12,13:h,14:p,16:[1,140],17:15,18:i,21:x,22:40,23:E,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:P,35:A,36:D,37:S,38:W,39:M,41:tt,43:q,44:G,46:Z,50:z,52:F,53:O,54:X,59:H,60:J,61:Q,62:j,70:y},{15:[1,141]},t(_,[2,49]),{15:[1,142]},t(_,[2,51]),t(_,[2,52]),{22:143,70:y},{22:144,70:y},{56:145,79:it},{56:146,79:it},{56:147,79:it},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(_,[2,16]),t(I,[2,10]),{12:149,50:z,52:F,53:O},t(I,[2,12]),t(I,[2,13]),t(_,[2,18]),t(_,[2,34]),t(_,[2,35]),t(_,[2,36]),t(_,[2,37]),{15:[1,150]},t(_,[2,38]),{15:[1,151]},t(_,[2,39]),t(_,[2,40]),{15:[1,152]},t(_,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:it},{56:156,79:it},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:y},t(I,[2,11]),t(et,r,{7:101,40:158}),t(N,r,{7:103,42:159}),t(zt,r,{7:106,45:160}),t(_,[2,48]),t(_,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(w,k){if(k.recoverable)this.trace(w);else{var L=new Error(w);throw L.hash=k,L}},parse:function(w){var k=this,L=[0],T=[],R=[null],c=[],Et=this.table,d="",wt=0,Ht=0,ue=2,Ut=1,fe=c.slice.call(arguments,1),Y=Object.create(this.lexer),dt={yy:{}};for(var St in this.yy)Object.prototype.hasOwnProperty.call(this.yy,St)&&(dt.yy[St]=this.yy[St]);Y.setInput(w,dt.yy),dt.yy.lexer=Y,dt.yy.parser=this,typeof Y.yylloc>"u"&&(Y.yylloc={});var Mt=Y.yylloc;c.push(Mt);var xe=Y.options&&Y.options.ranges;typeof dt.yy.parseError=="function"?this.parseError=dt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ge(){var nt;return nt=T.pop()||Y.lex()||Ut,typeof nt!="number"&&(nt instanceof Array&&(T=nt,nt=T.pop()),nt=k.symbols_[nt]||nt),nt}for(var U,pt,$,Rt,gt={},vt,at,Kt,_t;;){if(pt=L[L.length-1],this.defaultActions[pt]?$=this.defaultActions[pt]:((U===null||typeof U>"u")&&(U=ge()),$=Et[pt]&&Et[pt][U]),typeof $>"u"||!$.length||!$[0]){var Dt="";_t=[];for(vt in Et[pt])this.terminals_[vt]&&vt>ue&&_t.push("'"+this.terminals_[vt]+"'");Y.showPosition?Dt="Parse error on line "+(wt+1)+`: +`+Y.showPosition()+` +Expecting `+_t.join(", ")+", got '"+(this.terminals_[U]||U)+"'":Dt="Parse error on line "+(wt+1)+": Unexpected "+(U==Ut?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(Dt,{text:Y.match,token:this.terminals_[U]||U,line:Y.yylineno,loc:Mt,expected:_t})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+pt+", token: "+U);switch($[0]){case 1:L.push(U),R.push(Y.yytext),c.push(Y.yylloc),L.push($[1]),U=null,Ht=Y.yyleng,d=Y.yytext,wt=Y.yylineno,Mt=Y.yylloc;break;case 2:if(at=this.productions_[$[1]][1],gt.$=R[R.length-at],gt._$={first_line:c[c.length-(at||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(at||1)].first_column,last_column:c[c.length-1].last_column},xe&&(gt._$.range=[c[c.length-(at||1)].range[0],c[c.length-1].range[1]]),Rt=this.performAction.apply(gt,[d,Ht,wt,dt.yy,$[1],R,c].concat(fe)),typeof Rt<"u")return Rt;at&&(L=L.slice(0,-1*at*2),R=R.slice(0,-1*at),c=c.slice(0,-1*at)),L.push(this.productions_[$[1]][0]),R.push(gt.$),c.push(gt._$),Kt=Et[L[L.length-2]][L[L.length-1]],L.push(Kt);break;case 3:return!0}}return!0}},pe=function(){var ct={EOF:1,parseError:function(k,L){if(this.yy.parser)this.yy.parser.parseError(k,L);else throw new Error(k)},setInput:function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},unput:function(w){var k=w.length,L=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var T=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===T.length?this.yylloc.first_column:0)+T[T.length-L.length].length-L[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(w){this.unput(this.match.slice(w))},pastInput:function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` +`+k+"^"},test_match:function(w,k){var L,T,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),T=w[0].match(/(?:\r\n?|\n).*/g),T&&(this.yylineno+=T.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:T?T[T.length-1].length-T[T.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+w[0].length},this.yytext+=w[0],this.match+=w[0],this.matches=w,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(w[0].length),this.matched+=w[0],L=this.performAction.call(this,this.yy,this,k,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var c in R)this[c]=R[c];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var w,k,L,T;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),c=0;ck[0].length)){if(k=L,T=c,this.options.backtrack_lexer){if(w=this.test_match(L,R[c]),w!==!1)return w;if(this._backtrack){k=!1;continue}else return!1}else if(!this.options.flex)break}return k?(w=this.test_match(k,R[T]),w!==!1?w:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var k=this.next();return k||this.lex()},begin:function(k){this.conditionStack.push(k)},popState:function(){var k=this.conditionStack.length-1;return k>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(k){return k=this.conditionStack.length-1-Math.abs(k||0),k>=0?this.conditionStack[k]:"INITIAL"},pushState:function(k){this.begin(k)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(k,L,T,R){switch(T){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;case 8:return this.begin("ID"),50;case 9:return this.begin("ID"),52;case 10:return 13;case 11:return this.begin("ID"),53;case 12:return L.yytext=L.yytext.trim(),this.begin("ALIAS"),70;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;case 14:return this.popState(),this.popState(),5;case 15:return this.begin("LINE"),36;case 16:return this.begin("LINE"),37;case 17:return this.begin("LINE"),38;case 18:return this.begin("LINE"),39;case 19:return this.begin("LINE"),49;case 20:return this.begin("LINE"),41;case 21:return this.begin("LINE"),43;case 22:return this.begin("LINE"),48;case 23:return this.begin("LINE"),44;case 24:return this.begin("LINE"),47;case 25:return this.begin("LINE"),46;case 26:return this.popState(),15;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;case 37:return this.begin("ID"),23;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;case 41:return this.popState(),"acc_title_value";case 42:return this.begin("acc_descr"),33;case 43:return this.popState(),"acc_descr_value";case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return L.yytext=L.yytext.trim(),70;case 53:return 73;case 54:return 74;case 55:return 71;case 56:return 72;case 57:return 75;case 58:return 76;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 68;case 63:return 69;case 64:return 5;case 65:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65],inclusive:!0}}};return ct}();At.lexer=pe;function Nt(){this.yy={}}return Nt.prototype=At,At.Parser=Nt,new Nt}();Ct.parser=Ct;const Ne=Ct;class Se{constructor(e){this.init=e,this.records=this.init()}reset(){this.records=this.init()}}const b=new Se(()=>({prevActor:void 0,actors:{},createdActors:{},destroyedActors:{},boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),Me=function(t){b.records.boxes.push({name:t.text,wrap:t.wrap===void 0&&ft()||!!t.wrap,fill:t.color,actorKeys:[]}),b.records.currentBox=b.records.boxes.slice(-1)[0]},Vt=function(t,e,o,s){let r=b.records.currentBox;const a=b.records.actors[t];if(a){if(b.records.currentBox&&a.box&&b.records.currentBox!==a.box)throw new Error("A same participant should only be defined in one Box: "+a.name+" can't be in '"+a.box.name+"' and in '"+b.records.currentBox.name+"' at the same time.");if(r=a.box?a.box:b.records.currentBox,a.box=r,a&&e===a.name&&o==null)return}(o==null||o.text==null)&&(o={text:e,wrap:null,type:s}),(s==null||o.text==null)&&(o={text:e,wrap:null,type:s}),b.records.actors[t]={box:r,name:e,description:o.text,wrap:o.wrap===void 0&&ft()||!!o.wrap,prevActor:b.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:s||"participant"},b.records.prevActor&&b.records.actors[b.records.prevActor]&&(b.records.actors[b.records.prevActor].nextActor=t),b.records.currentBox&&b.records.currentBox.actorKeys.push(t),b.records.prevActor=t},Re=t=>{let e,o=0;for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},l}return b.records.messages.push({from:t,to:e,message:o.text,wrap:o.wrap===void 0&&ft()||!!o.wrap,type:s,activate:r}),!0},Ce=function(){return b.records.boxes.length>0},Ve=function(){return b.records.boxes.some(t=>t.name)},Oe=function(){return b.records.messages},Be=function(){return b.records.boxes},Ye=function(){return b.records.actors},Fe=function(){return b.records.createdActors},We=function(){return b.records.destroyedActors},mt=function(t){return b.records.actors[t]},qe=function(){return Object.keys(b.records.actors)},ze=function(){b.records.sequenceNumbersEnabled=!0},He=function(){b.records.sequenceNumbersEnabled=!1},Ue=()=>b.records.sequenceNumbersEnabled,Ke=function(t){b.records.wrapEnabled=t},ft=()=>b.records.wrapEnabled!==void 0?b.records.wrapEnabled:lt().sequence.wrap,Ge=function(){b.reset(),we()},Xe=function(t){const e=t.trim(),o={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:e.match(/^:?wrap:/)!==null?!0:e.match(/^:?nowrap:/)!==null?!1:void 0};return K.debug("parseMessage:",o),o},Je=function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let o=e!=null&&e[1]?e[1].trim():"transparent",s=e!=null&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",o)||(o="transparent",s=t.trim());else{const r=new Option().style;r.color=o,r.color!==o&&(o="transparent",s=t.trim())}return{color:o,text:s!==void 0?Pt(s.replace(/^:?(?:no)?wrap:/,""),lt()):void 0,wrap:s!==void 0?s.match(/^:?wrap:/)!==null?!0:s.match(/^:?nowrap:/)!==null?!1:void 0:void 0}},bt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32},Ze={FILLED:0,OPEN:1},Qe={LEFTOF:0,RIGHTOF:1,OVER:2},jt=function(t,e,o){const s={actor:t,placement:e,message:o.text,wrap:o.wrap===void 0&&ft()||!!o.wrap},r=[].concat(t,t);b.records.notes.push(s),b.records.messages.push({from:r[0],to:r[1],message:o.text,wrap:o.wrap===void 0&&ft()||!!o.wrap,type:bt.NOTE,placement:e})},$t=function(t,e){const o=mt(t);try{let s=Pt(e.text,lt());s=s.replace(/&/g,"&"),s=s.replace(/=/g,"=");const r=JSON.parse(s);Ft(o,r)}catch(s){K.error("error while parsing actor link text",s)}},je=function(t,e){const o=mt(t);try{const l={};let h=Pt(e.text,lt());var s=h.indexOf("@");h=h.replace(/&/g,"&"),h=h.replace(/=/g,"=");var r=h.slice(0,s-1).trim(),a=h.slice(s+1).trim();l[r]=a,Ft(o,l)}catch(l){K.error("error while parsing actor link text",l)}};function Ft(t,e){if(t.links==null)t.links=e;else for(let o in e)t.links[o]=e[o]}const te=function(t,e){const o=mt(t);try{let s=Pt(e.text,lt());const r=JSON.parse(s);ee(o,r)}catch(s){K.error("error while parsing actor properties text",s)}};function ee(t,e){if(t.properties==null)t.properties=e;else for(let o in e)t.properties[o]=e[o]}function $e(){b.records.currentBox=void 0}const se=function(t,e){const o=mt(t),s=document.getElementById(e.text);try{const r=s.innerHTML,a=JSON.parse(r);a.properties&&ee(o,a.properties),a.links&&Ft(o,a.links)}catch(r){K.error("error while parsing actor details text",r)}},t0=function(t,e){if(t!==void 0&&t.properties!==void 0)return t.properties[e]},re=function(t){if(Array.isArray(t))t.forEach(function(e){re(e)});else switch(t.type){case"sequenceIndex":b.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":Vt(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(b.records.actors[t.actor])throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");b.records.lastCreated=t.actor,Vt(t.actor,t.actor,t.description,t.draw),b.records.createdActors[t.actor]=b.records.messages.length;break;case"destroyParticipant":b.records.lastDestroyed=t.actor,b.records.destroyedActors[t.actor]=b.records.messages.length;break;case"activeStart":C(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":C(t.actor,void 0,void 0,t.signalType);break;case"addNote":jt(t.actor,t.placement,t.text);break;case"addLinks":$t(t.actor,t.text);break;case"addALink":je(t.actor,t.text);break;case"addProperties":te(t.actor,t.text);break;case"addDetails":se(t.actor,t.text);break;case"addMessage":if(b.records.lastCreated){if(t.to!==b.records.lastCreated)throw new Error("The created participant "+b.records.lastCreated+" does not have an associated creating message after its declaration. Please check the sequence diagram.");b.records.lastCreated=void 0}else if(b.records.lastDestroyed){if(t.to!==b.records.lastDestroyed&&t.from!==b.records.lastDestroyed)throw new Error("The destroyed participant "+b.records.lastDestroyed+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");b.records.lastDestroyed=void 0}C(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":Me(t.boxData);break;case"boxEnd":$e();break;case"loopStart":C(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":C(void 0,void 0,void 0,t.signalType);break;case"rectStart":C(void 0,void 0,t.color,t.signalType);break;case"rectEnd":C(void 0,void 0,void 0,t.signalType);break;case"optStart":C(void 0,void 0,t.optText,t.signalType);break;case"optEnd":C(void 0,void 0,void 0,t.signalType);break;case"altStart":C(void 0,void 0,t.altText,t.signalType);break;case"else":C(void 0,void 0,t.altText,t.signalType);break;case"altEnd":C(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":Jt(t.text);break;case"parStart":C(void 0,void 0,t.parText,t.signalType);break;case"and":C(void 0,void 0,t.parText,t.signalType);break;case"parEnd":C(void 0,void 0,void 0,t.signalType);break;case"criticalStart":C(void 0,void 0,t.criticalText,t.signalType);break;case"option":C(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":C(void 0,void 0,void 0,t.signalType);break;case"breakStart":C(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":C(void 0,void 0,void 0,t.signalType);break}},Gt={addActor:Vt,addMessage:De,addSignal:C,addLinks:$t,addDetails:se,addProperties:te,autoWrap:ft,setWrap:Ke,enableSequenceNumbers:ze,disableSequenceNumbers:He,showSequenceNumbers:Ue,getMessages:Oe,getActors:Ye,getCreatedActors:Fe,getDestroyedActors:We,getActor:mt,getActorKeys:qe,getActorProperty:t0,getAccTitle:Te,getBoxes:Be,getDiagramTitle:ye,setDiagramTitle:Ee,getConfig:()=>lt().sequence,clear:Ge,parseMessage:Xe,parseBoxData:Je,LINETYPE:bt,ARROWTYPE:Ze,PLACEMENT:Qe,addNote:jt,setAccTitle:Jt,apply:re,setAccDescription:be,getAccDescription:me,hasAtLeastOneBox:Ce,hasAtLeastOneBoxWithTitle:Ve},e0=t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,s0=e0,ut=18*2,ie="actor-top",ae="actor-bottom",Wt=function(t,e){return Pe(t,e)},r0=function(t,e,o,s,r){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};const a=e.links,l=e.actorCnt,h=e.rectData;var p="none";r&&(p="block !important");const i=t.append("g");i.attr("id","actor"+l+"_popup"),i.attr("class","actorPopupMenu"),i.attr("display",p);var x="";h.class!==void 0&&(x=" "+h.class);let E=h.width>o?h.width:o;const u=i.append("rect");if(u.attr("class","actorPopupMenuPanel"+x),u.attr("x",h.x),u.attr("y",h.height),u.attr("fill",h.fill),u.attr("stroke",h.stroke),u.attr("width",E),u.attr("height",h.height),u.attr("rx",h.rx),u.attr("ry",h.ry),a!=null){var g=20;for(let A in a){var m=i.append("a"),P=Zt.sanitizeUrl(a[A]);m.attr("xlink:href",P),m.attr("target","_blank"),b0(s)(A,m,h.x+10,h.height+g,E,20,{class:"actor"},s),g+=30}}return u.attr("height",g),{height:h.height+g,width:E}},i0=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},yt=function(t,e){let o=0,s=0;const r=e.text.split(v.lineBreakRegex),[a,l]=Qt(e.fontSize);let h=[],p=0,i=()=>e.y;if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":i=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":i=()=>Math.round(e.y+(o+s+e.textMargin)/2);break;case"bottom":case"end":i=()=>Math.round(e.y+(o+s+2*e.textMargin)-e.textMargin);break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[x,E]of r.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(p=x*a);const u=t.append("text");u.attr("x",e.x),u.attr("y",i()),e.anchor!==void 0&&u.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&u.style("font-family",e.fontFamily),l!==void 0&&u.style("font-size",l),e.fontWeight!==void 0&&u.style("font-weight",e.fontWeight),e.fill!==void 0&&u.attr("fill",e.fill),e.class!==void 0&&u.attr("class",e.class),e.dy!==void 0?u.attr("dy",e.dy):p!==0&&u.attr("dy",p);const g=E||ke;if(e.tspan){const m=u.append("tspan");m.attr("x",e.x),e.fill!==void 0&&m.attr("fill",e.fill),m.text(g)}else u.text(g);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(s+=(u._groups||u)[0][0].getBBox().height,o=s),h.push(u)}return h},ne=function(t,e){function o(r,a,l,h,p){return r+","+a+" "+(r+l)+","+a+" "+(r+l)+","+(a+h-p)+" "+(r+l-p*1.2)+","+(a+h)+" "+r+","+(a+h)}const s=t.append("polygon");return s.attr("points",o(e.x,e.y,e.width,e.height,7)),s.attr("class","labelBox"),e.y=e.y+e.height/2,yt(t,e),s};let rt=-1;const oe=(t,e,o,s)=>{t.select&&o.forEach(r=>{const a=e[r],l=t.select("#actor"+a.actorCnt);!s.mirrorActors&&a.stopy?l.attr("y2",a.stopy+a.height/2):s.mirrorActors&&l.attr("y2",a.stopy)})},a0=function(t,e,o,s){const r=s?e.stopy:e.starty,a=e.x+e.width/2,l=r+5,h=t.append("g").lower();var p=h;s||(rt++,Object.keys(e.links||{}).length&&!o.forceMenus&&p.attr("onclick",i0(`actor${rt}_popup`)).attr("cursor","pointer"),p.append("line").attr("id","actor"+rt).attr("x1",a).attr("y1",l).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),p=h.append("g"),e.actorCnt=rt,e.links!=null&&p.attr("id","root-"+rt));const i=Lt();var x="actor";e.properties!=null&&e.properties.class?x=e.properties.class:i.fill="#eaeaea",s?x+=` ${ae}`:x+=` ${ie}`,i.x=e.x,i.y=r,i.width=e.width,i.height=e.height,i.class=x,i.rx=3,i.ry=3;const E=Wt(p,i);if(e.rectData=i,e.properties!=null&&e.properties.icon){const g=e.properties.icon.trim();g.charAt(0)==="@"?Ie(p,i.x+i.width-20,i.y+10,g.substr(1)):Ae(p,i.x+i.width-20,i.y+10,g)}qt(o)(e.description,p,i.x,i.y,i.width,i.height,{class:"actor"},o);let u=e.height;if(E.node){const g=E.node().getBBox();e.height=g.height,u=g.height}return u},n0=function(t,e,o,s){const r=s?e.stopy:e.starty,a=e.x+e.width/2,l=r+80;t.lower(),s||(rt++,t.append("line").attr("id","actor"+rt).attr("x1",a).attr("y1",l).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("class","200").attr("stroke-width","0.5px").attr("stroke","#999"),e.actorCnt=rt);const h=t.append("g");let p="actor-man";s?p+=` ${ae}`:p+=` ${ie}`,h.attr("class",p);const i=Lt();i.x=e.x,i.y=r,i.fill="#eaeaea",i.width=e.width,i.height=e.height,i.class="actor",i.rx=3,i.ry=3,h.append("line").attr("id","actor-man-torso"+rt).attr("x1",a).attr("y1",r+25).attr("x2",a).attr("y2",r+45),h.append("line").attr("id","actor-man-arms"+rt).attr("x1",a-ut/2).attr("y1",r+33).attr("x2",a+ut/2).attr("y2",r+33),h.append("line").attr("x1",a-ut/2).attr("y1",r+60).attr("x2",a).attr("y2",r+45),h.append("line").attr("x1",a).attr("y1",r+45).attr("x2",a+ut/2-2).attr("y2",r+60);const x=h.append("circle");x.attr("cx",e.x+e.width/2),x.attr("cy",r+10),x.attr("r",15),x.attr("width",e.width),x.attr("height",e.height);const E=h.node().getBBox();return e.height=E.height,qt(o)(e.description,h,i.x,i.y+35,i.width,i.height,{class:"actor"},o),e.height},o0=function(t,e,o,s){switch(e.type){case"actor":return n0(t,e,o,s);case"participant":return a0(t,e,o,s)}},c0=function(t,e,o){const r=t.append("g");ce(r,e),e.name&&qt(o)(e.name,r,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},o),r.lower()},l0=function(t){return t.append("g")},h0=function(t,e,o,s,r){const a=Lt(),l=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+r%3,a.width=e.stopx-e.startx,a.height=o-e.starty,Wt(l,a)},d0=function(t,e,o,s){const{boxMargin:r,boxTextMargin:a,labelBoxHeight:l,labelBoxWidth:h,messageFontFamily:p,messageFontSize:i,messageFontWeight:x}=s,E=t.append("g"),u=function(P,A,D,S){return E.append("line").attr("x1",P).attr("y1",A).attr("x2",D).attr("y2",S).attr("class","loopLine")};u(e.startx,e.starty,e.stopx,e.starty),u(e.stopx,e.starty,e.stopx,e.stopy),u(e.startx,e.stopy,e.stopx,e.stopy),u(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(P){u(e.startx,P.y,e.stopx,P.y).style("stroke-dasharray","3, 3")});let g=Yt();g.text=o,g.x=e.startx,g.y=e.starty,g.fontFamily=p,g.fontSize=i,g.fontWeight=x,g.anchor="middle",g.valign="middle",g.tspan=!1,g.width=h||50,g.height=l||20,g.textMargin=a,g.class="labelText",ne(E,g),g=le(),g.text=e.title,g.x=e.startx+h/2+(e.stopx-e.startx)/2,g.y=e.starty+r+a,g.anchor="middle",g.valign="middle",g.textMargin=a,g.class="loopText",g.fontFamily=p,g.fontSize=i,g.fontWeight=x,g.wrap=!0;let m=yt(E,g);return e.sectionTitles!==void 0&&e.sectionTitles.forEach(function(P,A){if(P.message){g.text=P.message,g.x=e.startx+(e.stopx-e.startx)/2,g.y=e.sections[A].y+r+a,g.class="loopText",g.anchor="middle",g.valign="middle",g.tspan=!1,g.fontFamily=p,g.fontSize=i,g.fontWeight=x,g.wrap=e.wrap,m=yt(E,g);let D=Math.round(m.map(S=>(S._groups||S)[0][0].getBBox().height).reduce((S,W)=>S+W));e.sections[A].height+=D-(r+a)}}),e.height=Math.round(e.stopy-e.starty),E},ce=function(t,e){Le(t,e)},p0=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},u0=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},f0=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},x0=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},g0=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},T0=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},y0=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},le=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},E0=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},qt=function(){function t(r,a,l,h,p,i,x){const E=a.append("text").attr("x",l+p/2).attr("y",h+i/2+5).style("text-anchor","middle").text(r);s(E,x)}function e(r,a,l,h,p,i,x,E){const{actorFontSize:u,actorFontFamily:g,actorFontWeight:m}=E,[P,A]=Qt(u),D=r.split(v.lineBreakRegex);for(let S=0;St.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,de(lt())},updateVal:function(t,e,o,s){t[e]===void 0?t[e]=o:t[e]=s(o,t[e])},updateBounds:function(t,e,o,s){const r=this;let a=0;function l(h){return function(i){a++;const x=r.sequenceItems.length-a+1;r.updateVal(i,"starty",e-x*n.boxMargin,Math.min),r.updateVal(i,"stopy",s+x*n.boxMargin,Math.max),r.updateVal(f.data,"startx",t-x*n.boxMargin,Math.min),r.updateVal(f.data,"stopx",o+x*n.boxMargin,Math.max),h!=="activation"&&(r.updateVal(i,"startx",t-x*n.boxMargin,Math.min),r.updateVal(i,"stopx",o+x*n.boxMargin,Math.max),r.updateVal(f.data,"starty",e-x*n.boxMargin,Math.min),r.updateVal(f.data,"stopy",s+x*n.boxMargin,Math.max))}}this.sequenceItems.forEach(l()),this.activations.forEach(l("activation"))},insert:function(t,e,o,s){const r=v.getMin(t,o),a=v.getMax(t,o),l=v.getMin(e,s),h=v.getMax(e,s);this.updateVal(f.data,"startx",r,Math.min),this.updateVal(f.data,"starty",l,Math.min),this.updateVal(f.data,"stopx",a,Math.max),this.updateVal(f.data,"stopy",h,Math.max),this.updateBounds(r,l,a,h)},newActivation:function(t,e,o){const s=o[t.from.actor],r=It(t.from.actor).length||0,a=s.x+s.width/2+(r-1)*n.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+n.activationWidth,stopy:void 0,actor:t.from.actor,anchored:V.anchorElement(e)})},endActivation:function(t){const e=this.activations.map(function(o){return o.actor}).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},isLoopOverlap:function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:f.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},saveVerticalPos:function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},resetVerticalPos:function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=v.getMax(this.data.stopy,this.verticalPos)},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},m0=function(t,e){f.bumpVerticalPos(n.boxMargin),e.height=n.boxMargin,e.starty=f.getVerticalPos();const o=Lt();o.x=e.startx,o.y=e.starty,o.width=e.width||n.width,o.class="note";const s=t.append("g"),r=V.drawRect(s,o),a=Yt();a.x=e.startx,a.y=e.starty,a.width=o.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=n.noteFontFamily,a.fontSize=n.noteFontSize,a.fontWeight=n.noteFontWeight,a.anchor=n.noteAlign,a.textMargin=n.noteMargin,a.valign="center";const l=yt(s,a),h=Math.round(l.map(p=>(p._groups||p)[0][0].getBBox().height).reduce((p,i)=>p+i));r.attr("height",h+2*n.noteMargin),e.height+=h+2*n.noteMargin,f.bumpVerticalPos(h+2*n.noteMargin),e.stopy=e.starty+h+2*n.noteMargin,e.stopx=e.startx+o.width,f.insert(e.startx,e.starty,e.stopx,e.stopy),f.models.addNote(e)},xt=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Tt=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Ot=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});function w0(t,e){f.bumpVerticalPos(10);const{startx:o,stopx:s,message:r}=e,a=v.splitBreaks(r).length,l=B.calculateTextDimensions(r,xt(n)),h=l.height/a;e.height+=h,f.bumpVerticalPos(h);let p,i=l.height-10;const x=l.width;if(o===s){p=f.getVerticalPos()+i,n.rightAngles||(i+=n.boxMargin,p=f.getVerticalPos()+i),i+=30;const E=v.getMax(x/2,n.width/2);f.insert(o-E,f.getVerticalPos()-10+i,s+E,f.getVerticalPos()+30+i)}else i+=n.boxMargin,p=f.getVerticalPos()+i,f.insert(o,p-10,s,p);return f.bumpVerticalPos(i),e.height+=i,e.stopy=e.starty+e.height,f.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),p}const v0=function(t,e,o,s){const{startx:r,stopx:a,starty:l,message:h,type:p,sequenceIndex:i,sequenceVisible:x}=e,E=B.calculateTextDimensions(h,xt(n)),u=Yt();u.x=r,u.y=l+10,u.width=a-r,u.class="messageText",u.dy="1em",u.text=h,u.fontFamily=n.messageFontFamily,u.fontSize=n.messageFontSize,u.fontWeight=n.messageFontWeight,u.anchor=n.messageAlign,u.valign="center",u.textMargin=n.wrapPadding,u.tspan=!1,yt(t,u);const g=E.width;let m;r===a?n.rightAngles?m=t.append("path").attr("d",`M ${r},${o} H ${r+v.getMax(n.width/2,g/2)} V ${o+25} H ${r}`):m=t.append("path").attr("d","M "+r+","+o+" C "+(r+60)+","+(o-10)+" "+(r+60)+","+(o+30)+" "+r+","+(o+20)):(m=t.append("line"),m.attr("x1",r),m.attr("y1",o),m.attr("x2",a),m.attr("y2",o)),p===s.db.LINETYPE.DOTTED||p===s.db.LINETYPE.DOTTED_CROSS||p===s.db.LINETYPE.DOTTED_POINT||p===s.db.LINETYPE.DOTTED_OPEN?(m.style("stroke-dasharray","3, 3"),m.attr("class","messageLine1")):m.attr("class","messageLine0");let P="";n.arrowMarkerAbsolute&&(P=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,P=P.replace(/\(/g,"\\("),P=P.replace(/\)/g,"\\)")),m.attr("stroke-width",2),m.attr("stroke","none"),m.style("fill","none"),(p===s.db.LINETYPE.SOLID||p===s.db.LINETYPE.DOTTED)&&m.attr("marker-end","url("+P+"#arrowhead)"),(p===s.db.LINETYPE.SOLID_POINT||p===s.db.LINETYPE.DOTTED_POINT)&&m.attr("marker-end","url("+P+"#filled-head)"),(p===s.db.LINETYPE.SOLID_CROSS||p===s.db.LINETYPE.DOTTED_CROSS)&&m.attr("marker-end","url("+P+"#crosshead)"),(x||n.showSequenceNumbers)&&(m.attr("marker-start","url("+P+"#sequencenumber)"),t.append("text").attr("x",r).attr("y",o+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(i))},_0=function(t,e,o,s,r,a,l){let h=0,p=0,i,x=0;for(const E of s){const u=e[E],g=u.box;i&&i!=g&&(l||f.models.addBox(i),p+=n.boxMargin+i.margin),g&&g!=i&&(l||(g.x=h+p,g.y=r),p+=g.margin),u.width=u.width||n.width,u.height=v.getMax(u.height||n.height,n.height),u.margin=u.margin||n.actorMargin,x=v.getMax(x,u.height),o[u.name]&&(p+=u.width/2),u.x=h+p,u.starty=f.getVerticalPos(),f.insert(u.x,r,u.x+u.width,u.height),h+=u.width+p,u.box&&(u.box.width=h+g.margin-u.box.x),p=u.margin,i=u.box,f.models.addActor(u)}i&&!l&&f.models.addBox(i),f.bumpVerticalPos(x)},Bt=function(t,e,o,s){if(s){let r=0;f.bumpVerticalPos(n.boxMargin*2);for(const a of o){const l=e[a];l.stopy||(l.stopy=f.getVerticalPos());const h=V.drawActor(t,l,n,!0);r=v.getMax(r,h)}f.bumpVerticalPos(r+n.boxMargin)}else for(const r of o){const a=e[r];V.drawActor(t,a,n,!1)}},he=function(t,e,o,s){let r=0,a=0;for(const l of o){const h=e[l],p=I0(h),i=V.drawPopup(t,h,p,n,n.forceMenus,s);i.height>r&&(r=i.height),i.width+h.x>a&&(a=i.width+h.x)}return{maxHeight:r,maxWidth:a}},de=function(t){ve(n,t),t.fontFamily&&(n.actorFontFamily=n.noteFontFamily=n.messageFontFamily=t.fontFamily),t.fontSize&&(n.actorFontSize=n.noteFontSize=n.messageFontSize=t.fontSize),t.fontWeight&&(n.actorFontWeight=n.noteFontWeight=n.messageFontWeight=t.fontWeight)},It=function(t){return f.activations.filter(function(e){return e.actor===t})},Xt=function(t,e){const o=e[t],s=It(t),r=s.reduce(function(l,h){return v.getMin(l,h.startx)},o.x+o.width/2-1),a=s.reduce(function(l,h){return v.getMax(l,h.stopx)},o.x+o.width/2+1);return[r,a]};function st(t,e,o,s,r){f.bumpVerticalPos(o);let a=s;if(e.id&&e.message&&t[e.id]){const l=t[e.id].width,h=xt(n);e.message=B.wrapLabel(`[${e.message}]`,l-2*n.wrapPadding,h),e.width=l,e.wrap=!0;const p=B.calculateTextDimensions(e.message,h),i=v.getMax(p.height,n.labelBoxHeight);a=s+i,K.debug(`${i} - ${e.message}`)}r(e),f.bumpVerticalPos(a)}function k0(t,e,o,s,r,a,l){function h(i,x){i.x{y.add(_.from),y.add(_.to)}),m=m.filter(_=>y.has(_))}_0(i,x,E,m,0,P,!1);const M=M0(P,x,W,s);V.insertArrowHead(i),V.insertArrowCrossHead(i),V.insertArrowFilledHead(i),V.insertSequenceNumber(i);function tt(y,_){const I=f.endActivation(y);I.starty+18>_&&(I.starty=_-6,_+=12),V.drawActivation(i,I,_,n,It(y.from.actor).length),f.insert(I.startx,_-10,I.stopx,_)}let q=1,G=1;const Z=[],z=[];P.forEach(function(y,_){let I,ht,et;switch(y.type){case s.db.LINETYPE.NOTE:f.resetVerticalPos(),ht=y.noteModel,m0(i,ht);break;case s.db.LINETYPE.ACTIVE_START:f.newActivation(y,i,x);break;case s.db.LINETYPE.ACTIVE_END:tt(y,f.getVerticalPos());break;case s.db.LINETYPE.LOOP_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N));break;case s.db.LINETYPE.LOOP_END:I=f.endLoop(),V.drawLoop(i,I,"loop",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;case s.db.LINETYPE.RECT_START:st(M,y,n.boxMargin,n.boxMargin,N=>f.newLoop(void 0,N.message));break;case s.db.LINETYPE.RECT_END:I=f.endLoop(),z.push(I),f.models.addLoop(I),f.bumpVerticalPos(I.stopy-f.getVerticalPos());break;case s.db.LINETYPE.OPT_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N));break;case s.db.LINETYPE.OPT_END:I=f.endLoop(),V.drawLoop(i,I,"opt",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;case s.db.LINETYPE.ALT_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N));break;case s.db.LINETYPE.ALT_ELSE:st(M,y,n.boxMargin+n.boxTextMargin,n.boxMargin,N=>f.addSectionToLoop(N));break;case s.db.LINETYPE.ALT_END:I=f.endLoop(),V.drawLoop(i,I,"alt",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N)),f.saveVerticalPos();break;case s.db.LINETYPE.PAR_AND:st(M,y,n.boxMargin+n.boxTextMargin,n.boxMargin,N=>f.addSectionToLoop(N));break;case s.db.LINETYPE.PAR_END:I=f.endLoop(),V.drawLoop(i,I,"par",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;case s.db.LINETYPE.AUTONUMBER:q=y.message.start||q,G=y.message.step||G,y.message.visible?s.db.enableSequenceNumbers():s.db.disableSequenceNumbers();break;case s.db.LINETYPE.CRITICAL_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N));break;case s.db.LINETYPE.CRITICAL_OPTION:st(M,y,n.boxMargin+n.boxTextMargin,n.boxMargin,N=>f.addSectionToLoop(N));break;case s.db.LINETYPE.CRITICAL_END:I=f.endLoop(),V.drawLoop(i,I,"critical",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;case s.db.LINETYPE.BREAK_START:st(M,y,n.boxMargin,n.boxMargin+n.boxTextMargin,N=>f.newLoop(N));break;case s.db.LINETYPE.BREAK_END:I=f.endLoop(),V.drawLoop(i,I,"break",n),f.bumpVerticalPos(I.stopy-f.getVerticalPos()),f.models.addLoop(I);break;default:try{et=y.msgModel,et.starty=f.getVerticalPos(),et.sequenceIndex=q,et.sequenceVisible=s.db.showSequenceNumbers();const N=w0(i,et);k0(y,et,N,_,x,E,u),Z.push({messageModel:et,lineStartY:N}),f.models.addMessage(et)}catch(N){K.error("error while drawing message",N)}}[s.db.LINETYPE.SOLID_OPEN,s.db.LINETYPE.DOTTED_OPEN,s.db.LINETYPE.SOLID,s.db.LINETYPE.DOTTED,s.db.LINETYPE.SOLID_CROSS,s.db.LINETYPE.DOTTED_CROSS,s.db.LINETYPE.SOLID_POINT,s.db.LINETYPE.DOTTED_POINT].includes(y.type)&&(q=q+G)}),K.debug("createdActors",E),K.debug("destroyedActors",u),Bt(i,x,m,!1),Z.forEach(y=>v0(i,y.messageModel,y.lineStartY,s)),n.mirrorActors&&Bt(i,x,m,!0),z.forEach(y=>V.drawBackgroundRect(i,y)),oe(i,x,m,n),f.models.boxes.forEach(function(y){y.height=f.getVerticalPos()-y.y,f.insert(y.x,y.y,y.x+y.width,y.height),y.startx=y.x,y.starty=y.y,y.stopx=y.startx+y.width,y.stopy=y.starty+y.height,y.stroke="rgb(0,0,0, 0.5)",V.drawBox(i,y,n)}),D&&f.bumpVerticalPos(n.boxMargin);const F=he(i,x,m,p),{bounds:O}=f.getBounds();let X=O.stopy-O.starty;X{const l=t[a];l.wrap&&(l.description=B.wrapLabel(l.description,n.width-2*n.wrapPadding,Ot(n)));const h=B.calculateTextDimensions(l.description,Ot(n));l.width=l.wrap?n.width:v.getMax(n.width,h.width+2*n.wrapPadding),l.height=l.wrap?v.getMax(h.height,n.height):n.height,s=v.getMax(s,l.height)});for(const a in e){const l=t[a];if(!l)continue;const h=t[l.nextActor];if(!h){const E=e[a]+n.actorMargin-l.width/2;l.margin=v.getMax(E,n.actorMargin);continue}const i=e[a]+n.actorMargin-l.width/2-h.width/2;l.margin=v.getMax(i,n.actorMargin)}let r=0;return o.forEach(a=>{const l=xt(n);let h=a.actorKeys.reduce((x,E)=>x+=t[E].width+(t[E].margin||0),0);h-=2*n.boxTextMargin,a.wrap&&(a.name=B.wrapLabel(a.name,h-2*n.wrapPadding,l));const p=B.calculateTextDimensions(a.name,l);r=v.getMax(p.height,r);const i=v.getMax(h,p.width+2*n.wrapPadding);if(a.margin=n.boxTextMargin,ha.textMaxHeight=r),v.getMax(s,n.height)}const N0=function(t,e,o){const s=e[t.from].x,r=e[t.to].x,a=t.wrap&&t.message;let l=B.calculateTextDimensions(a?B.wrapLabel(t.message,n.width,Tt(n)):t.message,Tt(n));const h={width:a?n.width:v.getMax(n.width,l.width+2*n.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===o.db.PLACEMENT.RIGHTOF?(h.width=a?v.getMax(n.width,l.width):v.getMax(e[t.from].width/2+e[t.to].width/2,l.width+2*n.noteMargin),h.startx=s+(e[t.from].width+n.actorMargin)/2):t.placement===o.db.PLACEMENT.LEFTOF?(h.width=a?v.getMax(n.width,l.width+2*n.noteMargin):v.getMax(e[t.from].width/2+e[t.to].width/2,l.width+2*n.noteMargin),h.startx=s-h.width+(e[t.from].width-n.actorMargin)/2):t.to===t.from?(l=B.calculateTextDimensions(a?B.wrapLabel(t.message,v.getMax(n.width,e[t.from].width),Tt(n)):t.message,Tt(n)),h.width=a?v.getMax(n.width,e[t.from].width):v.getMax(e[t.from].width,n.width,l.width+2*n.noteMargin),h.startx=s+(e[t.from].width-h.width)/2):(h.width=Math.abs(s+e[t.from].width/2-(r+e[t.to].width/2))+n.actorMargin,h.startx=s2,E=P=>h?-P:P;t.from===t.to?i=p:(t.activate&&!x&&(i+=E(n.activationWidth/2-1)),[o.db.LINETYPE.SOLID_OPEN,o.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(i+=E(3)));const u=[s,r,a,l],g=Math.abs(p-i);t.wrap&&t.message&&(t.message=B.wrapLabel(t.message,v.getMax(g+2*n.wrapPadding,n.width),xt(n)));const m=B.calculateTextDimensions(t.message,xt(n));return{width:v.getMax(t.wrap?0:m.width+2*n.wrapPadding,g+2*n.wrapPadding,n.width),height:0,startx:p,stopx:i,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,u),toBounds:Math.max.apply(null,u)}},M0=function(t,e,o,s){const r={},a=[];let l,h,p;return t.forEach(function(i){switch(i.id=B.random({length:10}),i.type){case s.db.LINETYPE.LOOP_START:case s.db.LINETYPE.ALT_START:case s.db.LINETYPE.OPT_START:case s.db.LINETYPE.PAR_START:case s.db.LINETYPE.PAR_OVER_START:case s.db.LINETYPE.CRITICAL_START:case s.db.LINETYPE.BREAK_START:a.push({id:i.id,msg:i.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case s.db.LINETYPE.ALT_ELSE:case s.db.LINETYPE.PAR_AND:case s.db.LINETYPE.CRITICAL_OPTION:i.message&&(l=a.pop(),r[l.id]=l,r[i.id]=l,a.push(l));break;case s.db.LINETYPE.LOOP_END:case s.db.LINETYPE.ALT_END:case s.db.LINETYPE.OPT_END:case s.db.LINETYPE.PAR_END:case s.db.LINETYPE.CRITICAL_END:case s.db.LINETYPE.BREAK_END:l=a.pop(),r[l.id]=l;break;case s.db.LINETYPE.ACTIVE_START:{const E=e[i.from?i.from.actor:i.to.actor],u=It(i.from?i.from.actor:i.to.actor).length,g=E.x+E.width/2+(u-1)*n.activationWidth/2,m={startx:g,stopx:g+n.activationWidth,actor:i.from.actor,enabled:!0};f.activations.push(m)}break;case s.db.LINETYPE.ACTIVE_END:{const E=f.activations.map(u=>u.actor).lastIndexOf(i.from.actor);delete f.activations.splice(E,1)[0]}break}i.placement!==void 0?(h=N0(i,e,s),i.noteModel=h,a.forEach(E=>{l=E,l.from=v.getMin(l.from,h.startx),l.to=v.getMax(l.to,h.startx+h.width),l.width=v.getMax(l.width,Math.abs(l.from-l.to))-n.labelBoxWidth})):(p=S0(i,e,s),i.msgModel=p,p.startx&&p.stopx&&a.length>0&&a.forEach(E=>{if(l=E,p.startx===p.stopx){const u=e[i.from],g=e[i.to];l.from=v.getMin(u.x-p.width/2,u.x-u.width/2,l.from),l.to=v.getMax(g.x+p.width/2,g.x+u.width/2,l.to),l.width=v.getMax(l.width,Math.abs(l.to-l.from))-n.labelBoxWidth}else l.from=v.getMin(p.startx,l.from),l.to=v.getMax(p.stopx,l.to),l.width=v.getMax(l.width,p.width)-n.labelBoxWidth}))}),f.activations=[],K.debug("Loop type widths:",r),r},R0={bounds:f,drawActors:Bt,drawActorsPopup:he,setConf:de,draw:P0},B0={parser:Ne,db:Gt,renderer:R0,styles:s0,init:({wrap:t})=>{Gt.setWrap(t)}};export{B0 as diagram}; diff --git a/docs/assets/chunks/stateDiagram-43596fc0.Cq6QMfgF.js b/docs/assets/chunks/stateDiagram-43596fc0.Cq6QMfgF.js new file mode 100644 index 0000000..42eb6e1 --- /dev/null +++ b/docs/assets/chunks/stateDiagram-43596fc0.Cq6QMfgF.js @@ -0,0 +1 @@ +import{p as P,d as N,s as W}from"./styles-b2c874b6._v-FNFOv.js";import{c as t,h as H,l as b,i as R,j as T,ao as v,y as U}from"../app.Dv4846sG.js";import{G as C}from"./graph.CEI0PYYp.js";import{l as F}from"./layout.B9Jo_8FM.js";import{l as $}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
");p=p.replace(/\n/g,"
");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const K=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},Q=function(){},V=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);V(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),K(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:Q,draw:D},gt={parser:P,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{gt as diagram}; diff --git a/docs/assets/chunks/stateDiagram-v2-2ead4f9c.BWcTopCt.js b/docs/assets/chunks/stateDiagram-v2-2ead4f9c.BWcTopCt.js new file mode 100644 index 0000000..a44983d --- /dev/null +++ b/docs/assets/chunks/stateDiagram-v2-2ead4f9c.BWcTopCt.js @@ -0,0 +1 @@ +import{p as J,d as B,s as Q,D as H,a as X,S as Z,b as F,c as I}from"./styles-b2c874b6._v-FNFOv.js";import{G as tt}from"./graph.CEI0PYYp.js";import{l as E,c as g,h as x,y as et,i as ot,j as w}from"../app.Dv4846sG.js";import{r as st}from"./index-8fae9850.AUF3rEmQ.js";import"./layout.B9Jo_8FM.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./clone.D_kVq7Za.js";import"./edges-d417c7a0.DU1W7dRA.js";import"./createText-423428c9.B39V2kZ0.js";import"./line._MqlDceE.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",m="note",At="state",N="----",ht=`${N}${m}`,M=`${N}${V}`,Y="fill:none",W="fill: #333",z="c",j="text",q="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===X?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,m),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:Y,labelStyle:"",classes:pt,arrowheadStyle:W,labelpos:z,labelType:j,thickness:q})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case Z:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Y,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:W,labelpos:z,labelType:j,thickness:q,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let i=0;i{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{mt as diagram}; diff --git a/docs/assets/chunks/styles-6860f46c._P3OlwMg.js b/docs/assets/chunks/styles-6860f46c._P3OlwMg.js new file mode 100644 index 0000000..db881e8 --- /dev/null +++ b/docs/assets/chunks/styles-6860f46c._P3OlwMg.js @@ -0,0 +1,160 @@ +import{s as ut,g as rt,a as at,b as lt,c as F,v as ct,x as ot,j as v,z as ht,l as At,y as We,h as z,d as pt,ar as Re}from"../app.Dv4846sG.js";var Ve=function(){var e=function(x,u,a,h){for(a=a||{},h=x.length;h--;a[x[h]]=u);return a},i=[1,17],r=[1,18],l=[1,19],o=[1,39],A=[1,40],g=[1,25],D=[1,23],B=[1,24],_=[1,31],fe=[1,32],de=[1,33],Ee=[1,34],Ce=[1,35],me=[1,36],be=[1,26],ge=[1,27],ke=[1,28],Te=[1,29],d=[1,43],Fe=[1,30],E=[1,42],C=[1,44],m=[1,41],k=[1,45],ye=[1,9],c=[1,8,9],Y=[1,56],j=[1,57],Q=[1,58],X=[1,59],H=[1,60],De=[1,61],Be=[1,62],W=[1,8,9,39],Ge=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],q=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],J=[13,74,80,95,97,98],G=[13,64,65,74,80,95,97,98],Ue=[13,59,60,61,62,63,74,80,95,97,98],_e=[1,93],Z=[1,110],$=[1,108],ee=[1,102],te=[1,103],se=[1,104],ie=[1,105],ne=[1,106],ue=[1,107],re=[1,109],Se=[1,8,9,37,39,42],ae=[1,8,9,21],ze=[1,8,9,78],S=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(u,a,h,n,f,t,U){var s=t.length-1;switch(f){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:n.addRelation(t[s]);break;case 17:t[s-1].title=n.cleanupLabel(t[s]),n.addRelation(t[s-1]);break;case 27:this.$=t[s].trim(),n.setAccTitle(this.$);break;case 28:case 29:this.$=t[s].trim(),n.setAccDescription(this.$);break;case 30:n.addClassesToNamespace(t[s-3],t[s-1]);break;case 31:n.addClassesToNamespace(t[s-4],t[s-1]);break;case 32:this.$=t[s],n.addNamespace(t[s]);break;case 33:this.$=[t[s]];break;case 34:this.$=[t[s-1]];break;case 35:t[s].unshift(t[s-2]),this.$=t[s];break;case 37:n.setCssClass(t[s-2],t[s]);break;case 38:n.addMembers(t[s-3],t[s-1]);break;case 39:n.setCssClass(t[s-5],t[s-3]),n.addMembers(t[s-5],t[s-1]);break;case 40:this.$=t[s],n.addClass(t[s]);break;case 41:this.$=t[s-1],n.addClass(t[s-1]),n.setClassLabel(t[s-1],t[s]);break;case 42:n.addAnnotation(t[s],t[s-2]);break;case 43:this.$=[t[s]];break;case 44:t[s].push(t[s-1]),this.$=t[s];break;case 45:break;case 46:n.addMember(t[s-1],n.cleanupLabel(t[s]));break;case 47:break;case 48:break;case 49:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 51:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 52:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 53:n.addNote(t[s],t[s-1]);break;case 54:n.addNote(t[s]);break;case 55:n.setDirection("TB");break;case 56:n.setDirection("BT");break;case 57:n.setDirection("RL");break;case 58:n.setDirection("LR");break;case 59:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 61:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 62:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 63:this.$=n.relationType.AGGREGATION;break;case 64:this.$=n.relationType.EXTENSION;break;case 65:this.$=n.relationType.COMPOSITION;break;case 66:this.$=n.relationType.DEPENDENCY;break;case 67:this.$=n.relationType.LOLLIPOP;break;case 68:this.$=n.lineType.LINE;break;case 69:this.$=n.lineType.DOTTED_LINE;break;case 70:case 76:this.$=t[s-2],n.setClickEvent(t[s-1],t[s]);break;case 71:case 77:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 72:this.$=t[s-2],n.setLink(t[s-1],t[s]);break;case 73:this.$=t[s-3],n.setLink(t[s-2],t[s-1],t[s]);break;case 74:this.$=t[s-3],n.setLink(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 75:this.$=t[s-4],n.setLink(t[s-3],t[s-2],t[s]),n.setTooltip(t[s-3],t[s-1]);break;case 78:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1],t[s]);break;case 79:this.$=t[s-4],n.setClickEvent(t[s-3],t[s-2],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 80:this.$=t[s-3],n.setLink(t[s-2],t[s]);break;case 81:this.$=t[s-4],n.setLink(t[s-3],t[s-1],t[s]);break;case 82:this.$=t[s-4],n.setLink(t[s-3],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 83:this.$=t[s-5],n.setLink(t[s-4],t[s-2],t[s]),n.setTooltip(t[s-4],t[s-1]);break;case 84:this.$=t[s-2],n.setCssStyle(t[s-1],t[s]);break;case 85:n.setCssClass(t[s-1],t[s]);break;case 86:this.$=[t[s]];break;case 87:t[s-2].push(t[s]),this.$=t[s-2];break;case 89:this.$=t[s-1]+t[s];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(ye,[2,5],{8:[1,46]}),{8:[1,47]},e(c,[2,16],{21:[1,48]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),e(c,[2,26]),{32:[1,49]},{34:[1,50]},e(c,[2,29]),e(c,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be}),{37:[1,63]},e(W,[2,36],{37:[1,65],42:[1,64]}),e(c,[2,47]),e(c,[2,48]),{16:66,74:d,80:E,95:C,97:m},{16:37,17:67,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:68,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:69,18:38,74:d,80:E,95:C,97:m,98:k},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:d,80:E,95:C,97:m,98:k},{13:Ge,51:73},e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(c,[2,58]),e(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:d,80:E,95:C,97:m,98:k}),e(M,[2,12],{19:[1,77]}),{15:78,16:79,74:d,80:E,95:C,97:m},{16:37,17:80,18:38,74:d,80:E,95:C,97:m,98:k},e(q,[2,112]),e(q,[2,113]),e(q,[2,114]),e(q,[2,115]),e([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),e(ye,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:i,33:r,35:l,40:o,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},e(c,[2,17]),e(c,[2,27]),e(c,[2,28]),{13:[1,84],16:37,17:83,18:38,74:d,80:E,95:C,97:m,98:k},{49:85,57:54,58:55,59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be},e(c,[2,46]),{58:86,64:De,65:Be},e(J,[2,62],{57:87,59:Y,60:j,61:Q,62:X,63:H}),e(G,[2,63]),e(G,[2,64]),e(G,[2,65]),e(G,[2,66]),e(G,[2,67]),e(Ue,[2,68]),e(Ue,[2,69]),{8:[1,89],23:90,38:88,41:22,44:A},{16:91,74:d,80:E,95:C,97:m},{43:92,47:_e},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Z,73:$,74:ee,75:99,77:100,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},{74:[1,111]},{13:Ge,51:112},e(c,[2,54]),e(c,[2,117]),e(M,[2,13]),e(M,[2,14]),e(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:d,80:E,95:C,97:m},e(Se,[2,40],{11:114,12:[1,115]}),e(ye,[2,7]),{9:[1,116]},e(ae,[2,49]),{16:37,17:117,18:38,74:d,80:E,95:C,97:m,98:k},{13:[1,119],16:37,17:118,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,61],{57:120,59:Y,60:j,61:Q,62:X,63:H}),e(J,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:A},{8:[1,123],39:[2,33]},e(W,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_e},{16:37,17:127,18:38,74:d,80:E,95:C,97:m,98:k},e(c,[2,70],{13:[1,128]}),e(c,[2,72],{13:[1,130],68:[1,129]}),e(c,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},e(c,[2,84],{78:[1,134]}),e(ze,[2,86],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(S,[2,88]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(c,[2,85]),e(c,[2,53]),{37:[2,10]},e(Se,[2,41]),{13:[1,136]},{1:[2,4]},e(ae,[2,51]),e(ae,[2,50]),{16:37,17:137,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,59]),e(c,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:A},{43:140,47:_e},e(W,[2,38]),{39:[2,44]},e(c,[2,42]),e(c,[2,71]),e(c,[2,73]),e(c,[2,74],{68:[1,141]}),e(c,[2,77]),e(c,[2,78],{13:[1,142]}),e(c,[2,80],{13:[1,144],68:[1,143]}),{21:Z,73:$,74:ee,77:145,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},e(S,[2,89]),{14:[1,146]},e(ae,[2,52]),e(c,[2,31]),{39:[2,35]},{39:[1,147]},e(c,[2,75]),e(c,[2,79]),e(c,[2,81]),e(c,[2,82],{68:[1,148]}),e(ze,[2,87],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(Se,[2,8]),e(W,[2,39]),e(c,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var h=new Error(u);throw h.hash=a,h}},parse:function(u){var a=this,h=[0],n=[],f=[null],t=[],U=this.table,s="",le=0,Ke=0,tt=2,Ye=1,st=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ve)&&(I.yy[ve]=this.yy[ve]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var xe=b.yylloc;t.push(xe);var it=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function nt(){var L;return L=n.pop()||b.lex()||Ye,typeof L!="number"&&(L instanceof Array&&(n=L,L=n.pop()),L=a.symbols_[L]||L),L}for(var T,R,y,Oe,P={},ce,N,je,oe;;){if(R=h[h.length-1],this.defaultActions[R]?y=this.defaultActions[R]:((T===null||typeof T>"u")&&(T=nt()),y=U[R]&&U[R][T]),typeof y>"u"||!y.length||!y[0]){var Ie="";oe=[];for(ce in U[R])this.terminals_[ce]&&ce>tt&&oe.push("'"+this.terminals_[ce]+"'");b.showPosition?Ie="Parse error on line "+(le+1)+`: +`+b.showPosition()+` +Expecting `+oe.join(", ")+", got '"+(this.terminals_[T]||T)+"'":Ie="Parse error on line "+(le+1)+": Unexpected "+(T==Ye?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(Ie,{text:b.match,token:this.terminals_[T]||T,line:b.yylineno,loc:xe,expected:oe})}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+T);switch(y[0]){case 1:h.push(T),f.push(b.yytext),t.push(b.yylloc),h.push(y[1]),T=null,Ke=b.yyleng,s=b.yytext,le=b.yylineno,xe=b.yylloc;break;case 2:if(N=this.productions_[y[1]][1],P.$=f[f.length-N],P._$={first_line:t[t.length-(N||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(N||1)].first_column,last_column:t[t.length-1].last_column},it&&(P._$.range=[t[t.length-(N||1)].range[0],t[t.length-1].range[1]]),Oe=this.performAction.apply(P,[s,Ke,le,I.yy,y[1],f,t].concat(st)),typeof Oe<"u")return Oe;N&&(h=h.slice(0,-1*N*2),f=f.slice(0,-1*N),t=t.slice(0,-1*N)),h.push(this.productions_[y[1]][0]),f.push(P.$),t.push(P._$),je=U[h[h.length-2]][h[h.length-1]],h.push(je);break;case 3:return!0}}return!0}},et=function(){var x={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(u,a){return this.yy=a||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var a=u.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},unput:function(u){var a=u.length,h=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===n.length?this.yylloc.first_column:0)+n[n.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),a=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+a+"^"},test_match:function(u,a){var h,n,f;if(this.options.backtrack_lexer&&(f={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(f.yylloc.range=this.yylloc.range.slice(0))),n=u[0].match(/(?:\r\n?|\n).*/g),n&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var t in f)this[t]=f[t];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,a,h,n;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),t=0;ta[0].length)){if(a=h,n=t,this.options.backtrack_lexer){if(u=this.test_match(h,f[t]),u!==!1)return u;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(u=this.test_match(a,f[n]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return a||this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},pushState:function(a){this.begin(a)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(a,h,n,f){switch(n){case 0:return 53;case 1:return 54;case 2:return 55;case 3:return 56;case 4:break;case 5:break;case 6:return this.begin("acc_title"),31;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),33;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 70;case 22:this.popState();break;case 23:return 71;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 73;case 28:return this.begin("namespace"),40;case 29:return this.popState(),8;case 30:break;case 31:return this.begin("namespace-body"),37;case 32:return this.popState(),39;case 33:return"EOF_IN_STRUCT";case 34:return 8;case 35:break;case 36:return"EDGE_STATE";case 37:return this.begin("class"),44;case 38:return this.popState(),8;case 39:break;case 40:return this.popState(),this.popState(),39;case 41:return this.begin("class-body"),37;case 42:return this.popState(),39;case 43:return"EOF_IN_STRUCT";case 44:return"EDGE_STATE";case 45:return"OPEN_IN_STRUCT";case 46:break;case 47:return"MEMBER";case 48:return 76;case 49:return 66;case 50:return 67;case 51:return 69;case 52:return 50;case 53:return 52;case 54:return 45;case 55:return 46;case 56:return 72;case 57:this.popState();break;case 58:return"GENERICTYPE";case 59:this.begin("generic");break;case 60:this.popState();break;case 61:return"BQUOTE_STR";case 62:this.begin("bqstring");break;case 63:return 68;case 64:return 68;case 65:return 68;case 66:return 68;case 67:return 60;case 68:return 60;case 69:return 62;case 70:return 62;case 71:return 61;case 72:return 59;case 73:return 63;case 74:return 64;case 75:return 65;case 76:return 21;case 77:return 42;case 78:return 95;case 79:return"DOT";case 80:return"PLUS";case 81:return 81;case 82:return 78;case 83:return 84;case 84:return 84;case 85:return 85;case 86:return"EQUALS";case 87:return"EQUALS";case 88:return 74;case 89:return 12;case 90:return 14;case 91:return"PUNCTUATION";case 92:return 80;case 93:return 97;case 94:return 83;case 95:return 83;case 96:return 9}},rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,32,33,34,35,36,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},namespace:{rules:[26,28,29,30,31,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},"class-body":{rules:[26,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},class:{rules:[26,38,39,40,41,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_descr:{rules:[9,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},acc_title:{rules:[7,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_args:{rules:[22,23,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},callback_name:{rules:[19,20,21,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},href:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},struct:{rules:[26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},generic:{rules:[26,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},bqstring:{rules:[26,48,49,50,51,52,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},string:{rules:[24,25,26,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,85,86,87,88,89,90,91,92,93,94,96],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,37,48,49,50,51,52,53,54,55,56,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],inclusive:!0}}};return x}();Ne.lexer=et;function Le(){this.yy={}}return Le.prototype=Ne,Ne.Parser=Le,new Le}();Ve.parser=Ve;const zt=Ve,Qe=["#","+","~","-",""];class Xe{constructor(i,r){this.memberType=r,this.visibility="",this.classifier="";const l=pt(i,F());this.parseMember(l)}getDisplayDetails(){let i=this.visibility+Re(this.id);this.memberType==="method"&&(i+=`(${Re(this.parameters.trim())})`,this.returnType&&(i+=" : "+Re(this.returnType))),i=i.trim();const r=this.parseClassifier();return{displayText:i,cssStyle:r}}parseMember(i){let r="";if(this.memberType==="method"){const l=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/,o=i.match(l);if(o){const A=o[1]?o[1].trim():"";if(Qe.includes(A)&&(this.visibility=A),this.id=o[2].trim(),this.parameters=o[3]?o[3].trim():"",r=o[4]?o[4].trim():"",this.returnType=o[5]?o[5].trim():"",r===""){const g=this.returnType.substring(this.returnType.length-1);g.match(/[$*]/)&&(r=g,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{const l=i.length,o=i.substring(0,1),A=i.substring(l-1);Qe.includes(o)&&(this.visibility=o),A.match(/[$*]/)&&(r=A),this.id=i.substring(this.visibility===""?0:1,r===""?l:l-1)}this.classifier=r}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}const pe="classId-";let Pe=[],p={},he=[],He=0,O={},we=0,K=[];const V=e=>v.sanitizeText(e,F()),w=function(e){const i=v.sanitizeText(e,F());let r="",l=i;if(i.indexOf("~")>0){const o=i.split("~");l=V(o[0]),r=V(o[1])}return{className:l,type:r}},ft=function(e,i){const r=v.sanitizeText(e,F());i&&(i=V(i));const{className:l}=w(r);p[l].label=i},Ae=function(e){const i=v.sanitizeText(e,F()),{className:r,type:l}=w(i);if(Object.hasOwn(p,r))return;const o=v.sanitizeText(r,F());p[o]={id:o,type:l,label:o,cssClasses:[],methods:[],members:[],annotations:[],styles:[],domId:pe+o+"-"+He},He++},qe=function(e){const i=v.sanitizeText(e,F());if(i in p)return p[i].domId;throw new Error("Class not found: "+i)},dt=function(){Pe=[],p={},he=[],K=[],K.push(Ze),O={},we=0,ht()},Et=function(e){return p[e]},Ct=function(){return p},mt=function(){return Pe},bt=function(){return he},gt=function(e){At.debug("Adding relation: "+JSON.stringify(e)),Ae(e.id1),Ae(e.id2),e.id1=w(e.id1).className,e.id2=w(e.id2).className,e.relationTitle1=v.sanitizeText(e.relationTitle1.trim(),F()),e.relationTitle2=v.sanitizeText(e.relationTitle2.trim(),F()),Pe.push(e)},kt=function(e,i){const r=w(e).className;p[r].annotations.push(i)},Je=function(e,i){Ae(e);const r=w(e).className,l=p[r];if(typeof i=="string"){const o=i.trim();o.startsWith("<<")&&o.endsWith(">>")?l.annotations.push(V(o.substring(2,o.length-2))):o.indexOf(")")>0?l.methods.push(new Xe(o,"method")):o&&l.members.push(new Xe(o,"attribute"))}},Tt=function(e,i){Array.isArray(i)&&(i.reverse(),i.forEach(r=>Je(e,r)))},Ft=function(e,i){const r={id:`note${he.length}`,class:i,text:e};he.push(r)},yt=function(e){return e.startsWith(":")&&(e=e.substring(1)),V(e.trim())},Me=function(e,i){e.split(",").forEach(function(r){let l=r;r[0].match(/\d/)&&(l=pe+l),p[l]!==void 0&&p[l].cssClasses.push(i)})},Dt=function(e,i){e.split(",").forEach(function(r){i!==void 0&&(p[r].tooltip=V(i))})},Bt=function(e,i){return i?O[i].classes[e].tooltip:p[e].tooltip},_t=function(e,i,r){const l=F();e.split(",").forEach(function(o){let A=o;o[0].match(/\d/)&&(A=pe+A),p[A]!==void 0&&(p[A].link=We.formatUrl(i,l),l.securityLevel==="sandbox"?p[A].linkTarget="_top":typeof r=="string"?p[A].linkTarget=V(r):p[A].linkTarget="_blank")}),Me(e,"clickable")},St=function(e,i,r){e.split(",").forEach(function(l){Nt(l,i,r),p[l].haveCallback=!0}),Me(e,"clickable")},Nt=function(e,i,r){const l=v.sanitizeText(e,F());if(F().securityLevel!=="loose"||i===void 0)return;const A=l;if(p[A]!==void 0){const g=qe(A);let D=[];if(typeof r=="string"){D=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let B=0;B")),o.classed("hover",!0)}).on("mouseout",function(){i.transition().duration(500).style("opacity",0),z(this).classed("hover",!1)})};K.push(Ze);let $e="TB";const Ot=()=>$e,It=e=>{$e=e},Rt=function(e){O[e]===void 0&&(O[e]={id:e,classes:{},children:{},domId:pe+e+"-"+we},we++)},Vt=function(e){return O[e]},wt=function(){return O},Pt=function(e,i){if(O[e]!==void 0)for(const r of i){const{className:l}=w(r);p[l].parent=e,O[e].classes[l]=p[l]}},Mt=function(e,i){const r=p[e];if(!(!i||!r))for(const l of i)l.includes(",")?r.styles.push(...l.split(",")):r.styles.push(l)},Kt={setAccTitle:ut,getAccTitle:rt,getAccDescription:at,setAccDescription:lt,getConfig:()=>F().class,addClass:Ae,bindFunctions:Lt,clear:dt,getClass:Et,getClasses:Ct,getNotes:bt,addAnnotation:kt,addNote:Ft,getRelations:mt,addRelation:gt,getDirection:Ot,setDirection:It,addMember:Je,addMembers:Tt,cleanupLabel:yt,lineType:vt,relationType:xt,setClickEvent:St,setCssClass:Me,setLink:_t,getTooltip:Bt,setTooltip:Dt,lookUpDomId:qe,setDiagramTitle:ct,getDiagramTitle:ot,setClassLabel:ft,addNamespace:Rt,addClassesToNamespace:Pt,getNamespace:Vt,getNamespaces:wt,setCssStyle:Mt},Gt=e=>`g.classGroup text { + fill: ${e.nodeBorder||e.classText}; + stroke: none; + font-family: ${e.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${e.classText}; +} +.edgeLabel .label rect { + fill: ${e.mainBkg}; +} +.label text { + fill: ${e.classText}; +} +.edgeLabel .label span { + background: ${e.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; +} + +g.classGroup line { + stroke: ${e.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${e.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${e.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${e.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${e.lineColor} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${e.mainBkg} !important; + stroke: ${e.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; +} +`,Yt=Gt;export{Kt as d,zt as p,Yt as s}; diff --git a/docs/assets/chunks/styles-7383a064.BrpX0uYj.js b/docs/assets/chunks/styles-7383a064.BrpX0uYj.js new file mode 100644 index 0000000..0d182f2 --- /dev/null +++ b/docs/assets/chunks/styles-7383a064.BrpX0uYj.js @@ -0,0 +1,110 @@ +import{G as V}from"./graph.CEI0PYYp.js";import{aa as D,ab as M,ac as R,ad as F,a8 as j,p as N,l as y,q as U,c as $,j as G,r as C,o as E,h as _,y as H,t as W,ae as X}from"../app.Dv4846sG.js";import{r as J}from"./index-8fae9850.AUF3rEmQ.js";import{c as K}from"./channel.CoK99RiJ.js";function Q(e){return typeof e=="string"?new D([document.querySelectorAll(e)],[document.documentElement]):new D([R(e)],M)}function de(e,l){return!!e.children(l).length}function pe(e){return L(e.v)+":"+L(e.w)+":"+L(e.name)}var Y=/:/g;function L(e){return e?String(e).replace(Y,"\\:"):""}function Z(e,l){l&&e.attr("style",l)}function be(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function fe(e,l){var c=l.graph();if(F(c)){var a=c.transition;if(j(a))return a(e)}return e}function O(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}Z(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const z={},ee=function(e){const l=Object.keys(e);for(const c of l)z[c]=e[c]},q=function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`);Object.keys(e).forEach(function(p){const r=e[p];let g="default";r.classes.length>0&&(g=r.classes.join(" ")),g=g+" flowchart-label";const w=N(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(y.info("vertex",r,r.labelType),r.labelType==="markdown")y.info("vertex",r,r.labelType);else if(U($().flowchart.htmlLabels)){const m={label:t.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``)};s=O(u,m).node(),s.parentNode.removeChild(s)}else{const m=i.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",w.labelStyle.replace("color:","fill:"));const k=t.split(G.lineBreakRegex);for(const T of k){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=T,m.appendChild(v)}s=m}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:t,labelType:r.labelType,rx:b,ry:b,class:g,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:$().flowchart.padding}),y.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:t,rx:b,ry:b,class:g,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:$().flowchart.padding})})},P=function(e,l,c){y.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=N(e.defaultStyle);d=n.style,u=n.labelStyle}e.forEach(function(n){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,y.info("abc78 new entry",p,i[p])):(i[p]++,y.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];y.info("abc78 new link id to be used is",p,r,i[p]);const g="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=N(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=C(n.interpolate,E):e.defaultInterpolate!==void 0?t.curve=C(e.defaultInterpolate,E):t.curve=C(z.curve,E),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=n.text.replace(G.lineBreakRegex,` +`),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+g+" "+w,l.setEdge(n.start,n.end,t,a)})},te=function(e,l){return l.db.getClasses()},re=async function(e,l,c,a){y.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:u}=$(),n=u.nodeSpacing||50,p=u.rankSpacing||50;let r;d==="sandbox"&&(r=_("#i"+l));const g=d==="sandbox"?_(r.nodes()[0].contentDocument.body):_("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new V({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();y.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],y.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),m=a.db.getEdges();y.info("Edges",m);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Q("cluster").append("text");for(let f=0;f{const c=K,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return X(a,i,d,l)},ae=e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${le(e.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${e.clusterBkg}; + stroke: ${e.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`,we=ae;export{Z as a,O as b,fe as c,be as d,pe as e,ue as f,we as g,de as i,Q as s}; diff --git a/docs/assets/chunks/styles-b2c874b6._v-FNFOv.js b/docs/assets/chunks/styles-b2c874b6._v-FNFOv.js new file mode 100644 index 0000000..f68b46f --- /dev/null +++ b/docs/assets/chunks/styles-b2c874b6._v-FNFOv.js @@ -0,0 +1,207 @@ +import{c as Y,g as Ut,s as zt,a as Mt,b as Ht,v as Xt,x as Kt,l as D,j as ot,z as Wt,a$ as Jt}from"../app.Dv4846sG.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var v=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");v=st[0],O=[O,st[1]]}this.$={stmt:"state",id:v,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",v=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(A.yy[dt]=this.yy[dt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(v+1)+`: +`+S.showPosition()+` +Expecting `+rt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(v+1)+": Unexpected "+(_==B?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:rt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,v=S.yylineno,yt=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=p[p.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},Gt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,v,A.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;b&&(i=i.slice(0,-1*b*2),p=p.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=$[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Yt=function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+n+"^"},test_match:function(r,n){var i,o,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),o=r[0].match(/(?:\r\n?|\n).*/g),o&&(this.yylineno+=o.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:o?o[o.length-1].length-o[o.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],i=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack){for(var e in p)this[e]=p[e];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,n,i,o;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),e=0;en[0].length)){if(n=i,o=e,this.options.backtrack_lexer){if(r=this.test_match(i,p[e]),r!==!1)return r;if(this._backtrack){n=!1;continue}else return!1}else if(!this.options.flex)break}return n?(r=this.test_match(n,p[o]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var n=this.next();return n||this.lex()},begin:function(n){this.conditionStack.push(n)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(n){this.begin(n)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(n,i,o,p){switch(o){case 0:return 40;case 1:return 44;case 2:return 45;case 3:return 46;case 4:return 47;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),16;case 13:return 17;case 14:this.popState();break;case 15:return this.begin("acc_title"),32;case 16:return this.popState(),"acc_title_value";case 17:return this.begin("acc_descr"),34;case 18:return this.popState(),"acc_descr_value";case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),37;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 24:return this.popState(),this.pushState("CLASSDEFID"),38;case 25:return this.popState(),39;case 26:return this.pushState("CLASS"),41;case 27:return this.popState(),this.pushState("CLASS_STYLE"),42;case 28:return this.popState(),43;case 29:return this.pushState("SCALE"),16;case 30:return 17;case 31:this.popState();break;case 32:this.pushState("STATE");break;case 33:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 34:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 35:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 36:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),24;case 37:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),25;case 38:return this.popState(),i.yytext=i.yytext.slice(0,-10).trim(),26;case 39:return 44;case 40:return 45;case 41:return 46;case 42:return 47;case 43:this.pushState("STATE_STRING");break;case 44:return this.pushState("STATE_ID"),"AS";case 45:return this.popState(),"ID";case 46:this.popState();break;case 47:return"STATE_DESCR";case 48:return 18;case 49:this.popState();break;case 50:return this.popState(),this.pushState("struct"),19;case 51:break;case 52:return this.popState(),20;case 53:break;case 54:return this.begin("NOTE"),28;case 55:return this.popState(),this.pushState("NOTE_ID"),52;case 56:return this.popState(),this.pushState("NOTE_ID"),53;case 57:this.popState(),this.pushState("FLOATING_NOTE");break;case 58:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 59:break;case 60:return"NOTE_TEXT";case 61:return this.popState(),"ID";case 62:return this.popState(),this.pushState("NOTE_TEXT"),23;case 63:return this.popState(),i.yytext=i.yytext.substr(2).trim(),30;case 64:return this.popState(),i.yytext=i.yytext.slice(0,-8).trim(),30;case 65:return 6;case 66:return 6;case 67:return 15;case 68:return 50;case 69:return 23;case 70:return i.yytext=i.yytext.trim(),13;case 71:return 14;case 72:return 27;case 73:return 51;case 74:return 5;case 75:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,32,39,40,41,42,51,52,53,54,68,69,70,71,72],inclusive:!1},FLOATING_NOTE_ID:{rules:[61],inclusive:!1},FLOATING_NOTE:{rules:[58,59,60],inclusive:!1},NOTE_TEXT:{rules:[63,64],inclusive:!1},NOTE_ID:{rules:[62],inclusive:!1},NOTE:{rules:[55,56,57],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,30,31],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[45],inclusive:!1},STATE_STRING:{rules:[46,47],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,33,34,35,36,37,38,43,44,48,49,50],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,50,54,65,66,67,68,69,70,71,73,74,75],inclusive:!0}}};return C}();ht.lexer=Yt;function ut(){this.yy={}}return ut.prototype=ht,ht.Parser=ut,new ut}();gt.parser=gt;const De=gt,qt="LR",Ce="TB",_t="state",It="relation",Qt="classDef",Zt="applyClass",Et="default",te="divider",bt="[*]",Ot="start",Nt=bt,Rt="end",vt="color",At="fill",ee="bgFill",se=",";function wt(){return{}}let $t=qt,lt=[],P=wt();const Bt=()=>({relations:[],states:{},documents:{}});let ct={root:Bt()},g=ct.root,F=0,Lt=0;const ie={LINE:0,DOTTED_LINE:1},re={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},nt=t=>JSON.parse(JSON.stringify(t)),ne=t=>{D.info("Setting root doc",t),lt=t},ae=()=>lt,at=(t,s,a)=>{if(s.stmt===It)at(t,s.state1,!0),at(t,s.state2,!1);else if(s.stmt===_t&&(s.id==="[*]"?(s.id=a?t.id+"_start":t.id+"_end",s.start=a):s.id=s.id.trim()),s.doc){const h=[];let f=[],d;for(d=0;d0&&f.length>0){const y={stmt:_t,id:Jt(),type:"divider",doc:nt(f)};h.push(nt(y)),s.doc=h}s.doc.forEach(y=>at(s,y,!0))}},le=()=>(at({id:"root"},{id:"root",doc:lt},!0),{id:"root",doc:lt}),ce=t=>{let s;t.doc?s=t.doc:s=t,D.info(s),Pt(!0),D.info("Extract",s),s.forEach(a=>{switch(a.stmt){case _t:I(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case It:Ft(a.state1,a.state2,a.description);break;case Qt:Vt(a.id.trim(),a.classes);break;case Zt:xt(a.id.trim(),a.styleClass);break}})},I=function(t,s=Et,a=null,h=null,f=null,d=null,y=null,k=null){const u=t==null?void 0:t.trim();g.states[u]===void 0?(D.info("Adding state ",u,h),g.states[u]={id:u,descriptions:[],type:s,doc:a,note:f,classes:[],styles:[],textStyles:[]}):(g.states[u].doc||(g.states[u].doc=a),g.states[u].type||(g.states[u].type=s)),h&&(D.info("Setting state description",u,h),typeof h=="string"&&kt(u,h.trim()),typeof h=="object"&&h.forEach(E=>kt(u,E.trim()))),f&&(g.states[u].note=f,g.states[u].note.text=ot.sanitizeText(g.states[u].note.text,Y())),d&&(D.info("Setting state classes",u,d),(typeof d=="string"?[d]:d).forEach(T=>xt(u,T.trim()))),y&&(D.info("Setting state styles",u,y),(typeof y=="string"?[y]:y).forEach(T=>_e(u,T.trim()))),k&&(D.info("Setting state styles",u,y),(typeof k=="string"?[k]:k).forEach(T=>me(u,T.trim())))},Pt=function(t){ct={root:Bt()},g=ct.root,F=0,P=wt(),t||Wt()},V=function(t){return g.states[t]},oe=function(){return g.states},he=function(){D.info("Documents = ",ct)},ue=function(){return g.relations};function mt(t=""){let s=t;return t===bt&&(F++,s=`${Ot}${F}`),s}function Tt(t="",s=Et){return t===bt?Ot:s}function fe(t=""){let s=t;return t===Nt&&(F++,s=`${Rt}${F}`),s}function de(t="",s=Et){return t===Nt?Rt:s}function ye(t,s,a){let h=mt(t.id.trim()),f=Tt(t.id.trim(),t.type),d=mt(s.id.trim()),y=Tt(s.id.trim(),s.type);I(h,f,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),I(d,y,s.doc,s.description,s.note,s.classes,s.styles,s.textStyles),g.relations.push({id1:h,id2:d,relationTitle:ot.sanitizeText(a,Y())})}const Ft=function(t,s,a){if(typeof t=="object")ye(t,s,a);else{const h=mt(t.trim()),f=Tt(t),d=fe(s.trim()),y=de(s);I(h,f),I(d,y),g.relations.push({id1:h,id2:d,title:ot.sanitizeText(a,Y())})}},kt=function(t,s){const a=g.states[t],h=s.startsWith(":")?s.replace(":","").trim():s;a.descriptions.push(ot.sanitizeText(h,Y()))},pe=function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},Se=()=>(Lt++,"divider-id-"+Lt),Vt=function(t,s=""){P[t]===void 0&&(P[t]={id:t,styles:[],textStyles:[]});const a=P[t];s!=null&&s.split(se).forEach(h=>{const f=h.replace(/([^;]*);/,"$1").trim();if(h.match(vt)){const y=f.replace(At,ee).replace(vt,At);a.textStyles.push(y)}a.styles.push(f)})},ge=function(){return P},xt=function(t,s){t.split(",").forEach(function(a){let h=V(a);if(h===void 0){const f=a.trim();I(f),h=V(f)}h.classes.push(s)})},_e=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},me=function(t,s){const a=V(t);a!==void 0&&a.textStyles.push(s)},Te=()=>$t,ke=t=>{$t=t},Ee=t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),ve={getConfig:()=>Y().state,addState:I,clear:Pt,getState:V,getStates:oe,getRelations:ue,getClasses:ge,getDirection:Te,addRelation:Ft,getDividerId:Se,setDirection:ke,cleanupLabel:pe,lineType:ie,relationType:re,logDocuments:he,getRootDoc:ae,setRootDoc:ne,getRootDocV2:le,extract:ce,trimColon:Ee,getAccTitle:Ut,setAccTitle:zt,getAccDescription:Mt,setAccDescription:Ht,addStyleClass:Vt,setCssClass:xt,addDescription:kt,setDiagramTitle:Xt,getDiagramTitle:Kt},be=t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,Ae=be;export{Et as D,It as S,te as a,_t as b,Ce as c,ve as d,De as p,Ae as s}; diff --git a/docs/assets/chunks/svgDrawCommon-0ee1b4e9.CCRf0t7P.js b/docs/assets/chunks/svgDrawCommon-0ee1b4e9.CCRf0t7P.js new file mode 100644 index 0000000..5f4796e --- /dev/null +++ b/docs/assets/chunks/svgDrawCommon-0ee1b4e9.CCRf0t7P.js @@ -0,0 +1 @@ +import{n as o,m as i}from"../app.Dv4846sG.js";const c=(s,t)=>{const r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.rx!==void 0&&r.attr("rx",t.rx),t.ry!==void 0&&r.attr("ry",t.ry),t.attrs!==void 0)for(const e in t.attrs)r.attr(e,t.attrs[e]);return t.class!==void 0&&r.attr("class",t.class),r},x=(s,t)=>{const r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};c(s,r).lower()},d=(s,t)=>{const r=t.text.replace(o," "),e=s.append("text");e.attr("x",t.x),e.attr("y",t.y),e.attr("class","legend"),e.style("text-anchor",t.anchor),t.class!==void 0&&e.attr("class",t.class);const n=e.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(r),e},h=(s,t,r,e)=>{const n=s.append("image");n.attr("x",t),n.attr("y",r);const a=i.sanitizeUrl(e);n.attr("xlink:href",a)},y=(s,t,r,e)=>{const n=s.append("use");n.attr("x",t),n.attr("y",r);const a=i.sanitizeUrl(e);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),p=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,y as b,h as c,c as d,p as e,d as f,g}; diff --git a/docs/assets/chunks/theme.DI3JhXoF.js b/docs/assets/chunks/theme.DI3JhXoF.js new file mode 100644 index 0000000..b7de2f8 --- /dev/null +++ b/docs/assets/chunks/theme.DI3JhXoF.js @@ -0,0 +1 @@ +import{d as m,o as a,c as l,r as c,n as S,a as F,t as L,b as k,w as v,e as f,T as ve,_ as b,u as Ue,i as ze,f as Ge,g as pe,h as T,j as R,k as $,l as G,m as d,p as r,q as C,s as H,v as z,x as le,y as j,z as x,A as he,B as ye,C as je,D as qe,E as q,F as N,G as E,H as Pe,I as ee,J as _,K as W,L as Ve,M as te,N as Q,O as se,P as Ke,Q as Le,R as We,S as Re,U as Je,V as Se,W as Ye,X as Te,Y as Ie,Z as Qe,$ as Xe,a0 as Ze,a1 as xe}from"./framework.aTtkxbT6.js";const et=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),l("span",{class:S(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[F(L(e.text),1)])],2))}}),tt={key:0,class:"VPBackdrop"},st=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),k(ve,{name:"fade"},{default:v(()=>[e.show?(a(),l("div",tt)):f("",!0)]),_:1}))}}),ot=b(st,[["__scopeId","data-v-c139a416"]]),V=Ue;function nt(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(s){return/^\//.test(s)?s:`/${s}`}function fe(s){const{pathname:e,search:t,hash:n,protocol:o}=new URL(s,"http://a.com");if(ze(s)||s.startsWith("#")||!o.startsWith("http")||!Ge(e))return s;const{site:i}=V(),u=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return pe(u)}const me=T(R?location.hash:"");R&&window.addEventListener("hashchange",()=>{me.value=location.hash});function J({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:i}=V(),u=$(()=>{var p,g;return{label:(p=t.value.locales[n.value])==null?void 0:p.label,link:((g=t.value.locales[n.value])==null?void 0:g.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:$(()=>Object.entries(t.value.locales).flatMap(([p,g])=>s&&u.value.label===g.label?[]:{text:g.label,link:at(g.link||(p==="root"?"/":`/${p}/`),i.value.i18nRouting!==!1&&e,o.value.relativePath.slice(u.value.link.length-1),!t.value.cleanUrls)+me.value})),currentLang:u}}function at(s,e,t,n){return e?s.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const rt=s=>(C("data-v-247423a4"),s=s(),H(),s),it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut=rt(()=>d("div",{class:"divider"},null,-1)),dt={class:"quote"},vt={class:"action"},pt=["href","aria-label"],ht=m({__name:"NotFound",setup(s){const{site:e,theme:t}=V(),{localeLinks:n}=J({removeCurrent:!1}),o=T("/");return G(()=>{var u;const i=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((u=n.value.find(({link:h})=>h.startsWith(i)))==null?void 0:u.link)||n.value[0].link)}),(i,u)=>{var h,p,g,y,P;return a(),l("div",it,[d("p",lt,L(((h=r(t).notFound)==null?void 0:h.code)??"404"),1),d("h1",ct,L(((p=r(t).notFound)==null?void 0:p.title)??"PAGE NOT FOUND"),1),ut,d("blockquote",dt,L(((g=r(t).notFound)==null?void 0:g.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",vt,[d("a",{class:"link",href:r(pe)(o.value),"aria-label":((y=r(t).notFound)==null?void 0:y.linkLabel)??"go to home"},L(((P=r(t).notFound)==null?void 0:P.linkText)??"Take me home"),9,pt)])])}}}),ft=b(ht,[["__scopeId","data-v-247423a4"]]);function we(s,e){if(Array.isArray(s))return X(s);if(s==null)return[];e=ce(e);const t=Object.keys(s).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ce(o))),n=t?s[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function mt(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function _t(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function ue(s,e){return Array.isArray(e)?e.some(t=>ue(s,t)):z(s,e.link)?!0:e.items?ue(s,e.items):!1}function X(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=X(n.items,o)),n})}function O(){const{frontmatter:s,page:e,theme:t}=V(),n=le("(min-width: 960px)"),o=T(!1),i=$(()=>{const B=t.value.sidebar,I=e.value.relativePath;return B?we(B,I):[]}),u=T(i.value);j(i,(B,I)=>{JSON.stringify(B)!==JSON.stringify(I)&&(u.value=i.value)});const h=$(()=>s.value.sidebar!==!1&&u.value.length>0&&s.value.layout!=="home"),p=$(()=>g?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),g=$(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),y=$(()=>h.value&&n.value),P=$(()=>h.value?mt(u.value):[]);function w(){o.value=!0}function M(){o.value=!1}function A(){o.value?M():w()}return{isOpen:o,sidebar:u,sidebarGroups:P,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:y,open:w,close:M,toggle:A}}function bt(s,e){let t;x(()=>{t=s.value?document.activeElement:void 0}),G(()=>{window.addEventListener("keyup",n)}),he(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function kt(s){const{page:e}=V(),t=T(!1),n=$(()=>s.value.collapsed!=null),o=$(()=>!!s.value.link),i=T(!1),u=()=>{i.value=z(e.value.relativePath,s.value.link)};j([e,s,me],u),G(u);const h=$(()=>i.value?!0:s.value.items?ue(e.value.relativePath,s.value.items):!1),p=$(()=>!!(s.value.items&&s.value.items.length));x(()=>{t.value=!!(n.value&&s.value.collapsed)}),ye(()=>{(i.value||h.value)&&(t.value=!1)});function g(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:o,isActiveLink:i,hasActiveLink:h,hasChildren:p,toggle:g}}function $t(){const{hasSidebar:s}=O(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const de=[];function Ne(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function _e(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return yt(e,s)}function gt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function yt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(u=>u.level>=n&&u.level<=o),de.length=0;for(const{element:u,link:h}of s)de.push({element:u,link:h});const i=[];e:for(let u=0;u=0;p--){const g=s[p];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),je(()=>{u(location.hash)}),he(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,y=Math.abs(h+p-g)<1,P=de.map(({element:M,link:A})=>({link:A,top:Vt(M)})).filter(({top:M})=>!Number.isNaN(M)).sort((M,A)=>M.top-A.top);if(!P.length){u(null);return}if(h<1){u(null);return}if(y){u(P[P.length-1].link);return}let w=null;for(const{link:M,top:A}of P){if(A>h+qe()+4)break;w=M}u(w)}function u(h){o&&o.classList.remove("active"),h==null?o=null:o=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=o;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Vt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const Lt=["href","title"],St=m({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const n=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(n));o==null||o.focus({preventScroll:!0})}return(t,n)=>{const o=q("VPDocOutlineItem",!0);return a(),l("ul",{class:S(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(N,null,E(t.headers,({children:i,link:u,title:h})=>(a(),l("li",null,[d("a",{class:"outline-link",href:u,onClick:e,title:h},L(h),9,Lt),i!=null&&i.length?(a(),k(o,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Me=b(St,[["__scopeId","data-v-81402b3e"]]),Tt=s=>(C("data-v-5ff0401b"),s=s(),H(),s),It={class:"content"},wt={class:"outline-title",role:"heading","aria-level":"2"},Nt={"aria-labelledby":"doc-outline-aria-label"},Mt=Tt(()=>d("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),At=m({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=V(),n=Pe([]);ee(()=>{n.value=_e(e.value.outline??t.value.outline)});const o=T(),i=T();return Pt(o,i),(u,h)=>(a(),l("div",{class:S(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[d("div",It,[d("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),d("div",wt,L(r(Ne)(r(t))),1),d("nav",Nt,[Mt,_(Me,{headers:n.value,root:!0},null,8,["headers"])])])],2))}}),Bt=b(At,[["__scopeId","data-v-5ff0401b"]]),Ct={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),l("div",Ct,[_(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Et=s=>(C("data-v-0d7c0cd0"),s=s(),H(),s),Ft={class:"VPDocAside"},Dt=Et(()=>d("div",{class:"spacer"},null,-1)),Ot=m({__name:"VPDocAside",setup(s){const{theme:e}=V();return(t,n)=>(a(),l("div",Ft,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),_(Bt),c(t.$slots,"aside-outline-after",{},void 0,!0),Dt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Ht,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ut=b(Ot,[["__scopeId","data-v-0d7c0cd0"]]);function zt(){const{theme:s,page:e}=V();return $(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Gt(){const{page:s,theme:e,frontmatter:t}=V();return $(()=>{var p,g,y,P,w,M,A,B;const n=we(e.value.sidebar,s.value.relativePath),o=_t(n),i=o.findIndex(I=>z(s.value.relativePath,I.link)),u=((p=e.value.docFooter)==null?void 0:p.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((g=e.value.docFooter)==null?void 0:g.next)===!1&&!t.value.next||t.value.next===!1;return{prev:u?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=o[i-1])==null?void 0:y.docFooterText)??((P=o[i-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((w=o[i-1])==null?void 0:w.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((M=o[i+1])==null?void 0:M.docFooterText)??((A=o[i+1])==null?void 0:A.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((B=o[i+1])==null?void 0:B.link)}}})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.tag??(e.href?"a":"span")),n=$(()=>e.href&&Ve.test(e.href));return(o,i)=>(a(),k(W(t.value),{class:S(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?r(fe)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:v(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},qt=["datetime"],Kt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n,lang:o}=V(),i=$(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),u=$(()=>i.value.toISOString()),h=T("");return G(()=>{x(()=>{var p,g,y;h.value=new Intl.DateTimeFormat((g=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&g.forceLocale?o.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(p,g)=>{var y;return a(),l("p",jt,[F(L(((y=r(e).lastUpdated)==null?void 0:y.text)||r(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:u.value},L(h.value),9,qt)])}}}),Wt=b(Kt,[["__scopeId","data-v-b58b6712"]]),Rt=s=>(C("data-v-db0d4041"),s=s(),H(),s),Jt={key:0,class:"VPDocFooter"},Yt={key:0,class:"edit-info"},Qt={key:0,class:"edit-link"},Xt=Rt(()=>d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Zt={key:1,class:"last-updated"},xt={key:1,class:"prev-next"},es={class:"pager"},ts=["innerHTML"],ss=["innerHTML"],os={class:"pager"},ns=["innerHTML"],as=["innerHTML"],rs=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=V(),o=zt(),i=Gt(),u=$(()=>e.value.editLink&&n.value.editLink!==!1),h=$(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),p=$(()=>u.value||h.value||i.value.prev||i.value.next);return(g,y)=>{var P,w,M,A;return p.value?(a(),l("footer",Jt,[c(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),l("div",Yt,[u.value?(a(),l("div",Qt,[_(D,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:v(()=>[Xt,F(" "+L(r(o).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),l("div",Zt,[_(Wt)])):f("",!0)])):f("",!0),(P=r(i).prev)!=null&&P.link||(w=r(i).next)!=null&&w.link?(a(),l("nav",xt,[d("div",es,[(M=r(i).prev)!=null&&M.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:v(()=>{var B;return[d("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,ts),d("span",{class:"title",innerHTML:r(i).prev.text},null,8,ss)]}),_:1},8,["href"])):f("",!0)]),d("div",os,[(A=r(i).next)!=null&&A.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:v(()=>{var B;return[d("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,ns),d("span",{class:"title",innerHTML:r(i).next.text},null,8,as)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),is=b(rs,[["__scopeId","data-v-db0d4041"]]),ls=s=>(C("data-v-dd3e4fdc"),s=s(),H(),s),cs={class:"container"},us=ls(()=>d("div",{class:"aside-curtain"},null,-1)),ds={class:"aside-container"},vs={class:"aside-content"},ps={class:"content"},hs={class:"content-container"},fs={class:"main"},ms=m({__name:"VPDoc",setup(s){const{theme:e}=V(),t=te(),{hasSidebar:n,hasAside:o,leftAside:i}=O(),u=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=q("Content");return a(),l("div",{class:S(["VPDoc",{"has-sidebar":r(n),"has-aside":r(o)}])},[c(h.$slots,"doc-top",{},void 0,!0),d("div",cs,[r(o)?(a(),l("div",{key:0,class:S(["aside",{"left-aside":r(i)}])},[us,d("div",ds,[d("div",vs,[_(Ut,null,{"aside-top":v(()=>[c(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),d("div",ps,[d("div",hs,[c(h.$slots,"doc-before",{},void 0,!0),d("main",fs,[_(g,{class:S(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(is,null,{"doc-footer-before":v(()=>[c(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(h.$slots,"doc-after",{},void 0,!0)])])]),c(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),_s=b(ms,[["__scopeId","data-v-dd3e4fdc"]]),bs=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.href&&Ve.test(e.href)),n=$(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),k(W(n.value),{class:S(["VPButton",[o.size,o.theme]]),href:o.href?r(fe)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[F(L(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),ks=b(bs,[["__scopeId","data-v-e91f229d"]]),$s=["src","alt"],gs=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),l(N,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",Q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,$s)):(a(),l(N,{key:1},[_(n,Q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(n,Q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Z=b(gs,[["__scopeId","data-v-3fe7ce4a"]]),ys=s=>(C("data-v-2e1d2e76"),s=s(),H(),s),Ps={class:"container"},Vs={class:"main"},Ls={key:0,class:"name"},Ss=["innerHTML"],Ts=["innerHTML"],Is=["innerHTML"],ws={key:0,class:"actions"},Ns={key:0,class:"image"},Ms={class:"image-container"},As=ys(()=>d("div",{class:"image-bg"},null,-1)),Bs=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=se("hero-image-slot-exists");return(t,n)=>(a(),l("div",{class:S(["VPHero",{"has-image":t.image||r(e)}])},[d("div",Ps,[d("div",Vs,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Ls,[d("span",{innerHTML:t.name,class:"clip"},null,8,Ss)])):f("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Ts)):f("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Is)):f("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",ws,[(a(!0),l(N,null,E(t.actions,o=>(a(),l("div",{key:o.link,class:"action"},[_(ks,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),l("div",Ns,[d("div",Ms,[As,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Cs=b(Bs,[["__scopeId","data-v-2e1d2e76"]]),Hs=m({__name:"VPHomeHero",setup(s){const{frontmatter:e}=V();return(t,n)=>r(e).hero?(a(),k(Cs,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Es=s=>(C("data-v-4efa949b"),s=s(),H(),s),Fs={class:"box"},Ds={key:0,class:"icon"},Os=["innerHTML"],Us=["innerHTML"],zs=["innerHTML"],Gs={key:4,class:"link-text"},js={class:"link-text-value"},qs=Es(()=>d("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),Ks=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[d("article",Fs,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Ds,[_(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Os)):f("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Us),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,zs)):f("",!0),e.linkText?(a(),l("div",Gs,[d("p",js,[F(L(e.linkText)+" ",1),qs])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Ws=b(Ks,[["__scopeId","data-v-4efa949b"]]),Rs={key:0,class:"VPFeatures"},Js={class:"container"},Ys={class:"items"},Qs=m({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=$(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),l("div",Rs,[d("div",Js,[d("div",Ys,[(a(!0),l(N,null,E(n.features,i=>(a(),l("div",{key:i.title,class:S(["item",[t.value]])},[_(Ws,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Xs=b(Qs,[["__scopeId","data-v-25991bec"]]),Zs=m({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=V();return(t,n)=>r(e).features?(a(),k(Xs,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),xs=m({__name:"VPHomeContent",setup(s){const{width:e}=Ke({includeScrollbar:!1});return(t,n)=>(a(),l("div",{class:"vp-doc container",style:Le(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),eo=b(xs,[["__scopeId","data-v-cd48fa37"]]),to={class:"VPHome"},so=m({__name:"VPHome",setup(s){const{frontmatter:e}=V();return(t,n)=>{const o=q("Content");return a(),l("div",to,[c(t.$slots,"home-hero-before",{},void 0,!0),_(Hs,null,{"home-hero-info-before":v(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),_(Zs),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(eo,{key:0},{default:v(()=>[_(o)]),_:1})):(a(),k(o,{key:1}))])}}}),oo=b(so,[["__scopeId","data-v-052fccb0"]]),no={},ao={class:"VPPage"};function ro(s,e){const t=q("Content");return a(),l("div",ao,[c(s.$slots,"page-top"),_(t),c(s.$slots,"page-bottom")])}const io=b(no,[["render",ro]]),lo=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(o,i)=>(a(),l("div",{class:S(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[_(ft)],!0):r(t).layout==="page"?(a(),k(io,{key:1},{"page-top":v(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(oo,{key:2},{"home-hero-before":v(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(W(r(t).layout),{key:3})):(a(),k(_s,{key:4},{"doc-top":v(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),co=b(lo,[["__scopeId","data-v-1cbf3d26"]]),uo={class:"container"},vo=["innerHTML"],po=["innerHTML"],ho=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),l("footer",{key:0,class:S(["VPFooter",{"has-sidebar":r(n)}])},[d("div",uo,[r(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,vo)):f("",!0),r(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,po)):f("",!0)])],2)):f("",!0)}}),fo=b(ho,[["__scopeId","data-v-90e82465"]]);function Ae(){const{theme:s,frontmatter:e}=V(),t=Pe([]),n=$(()=>t.value.length>0);return ee(()=>{t.value=_e(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:n}}const mo=s=>(C("data-v-00858feb"),s=s(),H(),s),_o=mo(()=>d("span",{class:"vpi-chevron-right icon"},null,-1)),bo={class:"header"},ko={class:"outline"},$o=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=V(),n=T(!1),o=T(0),i=T(),u=T();We(i,()=>{n.value=!1}),Re("Escape",()=>{n.value=!1}),ee(()=>{n.value=!1});function h(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(y){y.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Je(()=>{n.value=!1}))}function g(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,P)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),l("button",{key:0,onClick:h,class:S({open:n.value})},[F(L(r(Ne)(r(t)))+" ",1),_o],2)):(a(),l("button",{key:1,onClick:g},L(r(t).returnToTopLabel||"Return to top"),1)),_(ve,{name:"flyout"},{default:v(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:p},[d("div",bo,[d("a",{class:"top-link",href:"#",onClick:g},L(r(t).returnToTopLabel||"Return to top"),1)]),d("div",ko,[_(Me,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),go=b($o,[["__scopeId","data-v-00858feb"]]),yo=s=>(C("data-v-1122fb5b"),s=s(),H(),s),Po={class:"container"},Vo=["aria-expanded"],Lo=yo(()=>d("span",{class:"vpi-align-left menu-icon"},null,-1)),So={class:"menu-text"},To=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=O(),{headers:o}=Ae(),{y:i}=Se(),u=T(0);G(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{o.value=_e(t.value.outline??e.value.outline)});const h=$(()=>o.value.length===0),p=$(()=>h.value&&!n.value),g=$(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:p.value}));return(y,P)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),l("div",{key:0,class:S(g.value)},[d("div",Po,[r(n)?(a(),l("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:P[0]||(P[0]=w=>y.$emit("open-menu"))},[Lo,d("span",So,L(r(e).sidebarMenuLabel||"Menu"),1)],8,Vo)):f("",!0),_(go,{headers:r(o),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),Io=b(To,[["__scopeId","data-v-1122fb5b"]]);function wo(){const s=T(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=te();return j(()=>i.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const No={},Mo={class:"VPSwitch",type:"button",role:"switch"},Ao={class:"check"},Bo={key:0,class:"icon"};function Co(s,e){return a(),l("button",Mo,[d("span",Ao,[s.$slots.default?(a(),l("span",Bo,[c(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Ho=b(No,[["render",Co],["__scopeId","data-v-8480d003"]]),Be=s=>(C("data-v-dcc069ee"),s=s(),H(),s),Eo=Be(()=>d("span",{class:"vpi-sun sun"},null,-1)),Fo=Be(()=>d("span",{class:"vpi-moon moon"},null,-1)),Do=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=V(),n=se("toggle-appearance",()=>{e.value=!e.value}),o=$(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,u)=>(a(),k(Ho,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:v(()=>[Eo,Fo]),_:1},8,["title","aria-checked","onClick"]))}}),be=b(Do,[["__scopeId","data-v-dcc069ee"]]),Oo={key:0,class:"VPNavBarAppearance"},Uo=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=V();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",Oo,[_(be)])):f("",!0)}}),zo=b(Uo,[["__scopeId","data-v-53fc394a"]]),ke=T();let Ce=!1,ie=0;function Go(s){const e=T(!1);if(R){!Ce&&jo(),ie++;const t=j(ke,n=>{var o,i,u;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(i=s.onFocus)==null||i.call(s)):(e.value=!1,(u=s.onBlur)==null||u.call(s))});he(()=>{t(),ie--,ie||qo()})}return Ye(e)}function jo(){document.addEventListener("focusin",He),Ce=!0,ke.value=document.activeElement}function qo(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Ko={class:"VPMenuLink"},Wo=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),l("div",Ko,[_(D,{class:S({active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),oe=b(Wo,[["__scopeId","data-v-612f05ac"]]),Ro={class:"VPMenuGroup"},Jo={key:0,class:"title"},Yo=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Ro,[e.text?(a(),l("p",Jo,L(e.text),1)):f("",!0),(a(!0),l(N,null,E(e.items,n=>(a(),l(N,null,["link"in n?(a(),k(oe,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),Qo=b(Yo,[["__scopeId","data-v-15e3e412"]]),Xo={class:"VPMenu"},Zo={key:0,class:"items"},xo=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),l("div",Xo,[e.items?(a(),l("div",Zo,[(a(!0),l(N,null,E(e.items,n=>(a(),l(N,{key:n.text},["link"in n?(a(),k(oe,{key:0,item:n},null,8,["item"])):(a(),k(Qo,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),en=b(xo,[["__scopeId","data-v-9a9c385b"]]),tn=s=>(C("data-v-6ed45802"),s=s(),H(),s),sn=["aria-expanded","aria-label"],on={key:0,class:"text"},nn=["innerHTML"],an=tn(()=>d("span",{class:"vpi-chevron-down text-icon"},null,-1)),rn={key:1,class:"vpi-more-horizontal icon"},ln={class:"menu"},cn=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=T(!1),t=T();Go({el:t,onBlur:n});function n(){e.value=!1}return(o,i)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[o.button||o.icon?(a(),l("span",on,[o.icon?(a(),l("span",{key:0,class:S([o.icon,"option-icon"])},null,2)):f("",!0),o.button?(a(),l("span",{key:1,innerHTML:o.button},null,8,nn)):f("",!0),an])):(a(),l("span",rn))],8,sn),d("div",ln,[_(en,{items:o.items},{default:v(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=b(cn,[["__scopeId","data-v-6ed45802"]]),un=["href","aria-label","innerHTML"],dn=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=$(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,o)=>(a(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,un))}}),vn=b(dn,[["__scopeId","data-v-4f3b8892"]]),pn={class:"VPSocialLinks"},hn=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),l("div",pn,[(a(!0),l(N,null,E(e.links,({link:n,icon:o,ariaLabel:i})=>(a(),k(vn,{key:n,icon:o,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),ne=b(hn,[["__scopeId","data-v-da0d6b18"]]),fn={key:0,class:"group translations"},mn={class:"trans-title"},_n={key:1,class:"group"},bn={class:"item appearance"},kn={class:"label"},$n={class:"appearance-action"},gn={key:2,class:"group"},yn={class:"item social-links"},Pn=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:o}=J({correspondingLink:!0}),i=$(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),k($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[r(n).length&&r(o).label?(a(),l("div",fn,[d("p",mn,L(r(o).label),1),(a(!0),l(N,null,E(r(n),p=>(a(),k(oe,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",_n,[d("div",bn,[d("p",kn,L(r(t).darkModeSwitchLabel||"Appearance"),1),d("div",$n,[_(be)])])])):f("",!0),r(t).socialLinks?(a(),l("div",gn,[d("div",yn,[_(ne,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Vn=b(Pn,[["__scopeId","data-v-37f510c2"]]),Ln=s=>(C("data-v-7cfc33c7"),s=s(),H(),s),Sn=["aria-expanded"],Tn=Ln(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),In=[Tn],wn=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),l("button",{type:"button",class:S(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},In,10,Sn))}}),Nn=b(wn,[["__scopeId","data-v-7cfc33c7"]]),Mn=["innerHTML"],An=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),k(D,{class:S({VPNavBarMenuLink:!0,active:r(z)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[d("span",{innerHTML:t.item.text},null,8,Mn)]),_:1},8,["class","href","target","rel"]))}}),Bn=b(An,[["__scopeId","data-v-155b54f8"]]),Cn=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=V(),n=i=>"link"in i?z(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),o=$(()=>n(e.item));return(i,u)=>(a(),k($e,{class:S({VPNavBarMenuGroup:!0,active:r(z)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Hn=s=>(C("data-v-967fa819"),s=s(),H(),s),En={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Fn=Hn(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Dn=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),l("nav",En,[Fn,(a(!0),l(N,null,E(r(e).nav,o=>(a(),l(N,{key:o.text},["link"in o?(a(),k(Bn,{key:0,item:o},null,8,["item"])):(a(),k(Cn,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}}),On=b(Dn,[["__scopeId","data-v-967fa819"]]);function Un(s){const{localeIndex:e,theme:t}=V();function n(o){var A,B,I;const i=o.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((I=(B=u.locales)==null?void 0:B[e.value])==null?void 0:I.translations)||null,g=h&&u.translations||null;let y=p,P=g,w=s;const M=i.pop();for(const Y of i){let U=null;const K=w==null?void 0:w[Y];K&&(U=w=K);const ae=P==null?void 0:P[Y];ae&&(U=P=ae);const re=y==null?void 0:y[Y];re&&(U=y=re),K||(w=U),ae||(P=U),re||(y=U)}return(y==null?void 0:y[M])??(P==null?void 0:P[M])??(w==null?void 0:w[M])??""}return n}const zn=["aria-label"],Gn={class:"DocSearch-Button-Container"},jn=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),qn={class:"DocSearch-Button-Placeholder"},Kn=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=m({__name:"VPNavBarSearchButton",setup(s){const t=Un({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,o)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[d("span",Gn,[jn,d("span",qn,L(r(t)("button.buttonText")),1)]),Kn],8,zn))}}),Wn={class:"VPNavBarSearch"},Rn={id:"local-search"},Jn={key:1,id:"docsearch"},Yn=m({__name:"VPNavBarSearch",setup(s){const e=()=>null,t=()=>null,{theme:n}=V(),o=T(!1),i=T(!1);G(()=>{});function u(){o.value||(o.value=!0,setTimeout(h,16))}function h(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}const p=T(!1),g="";return(y,P)=>{var w;return a(),l("div",Wn,[r(g)==="local"?(a(),l(N,{key:0},[p.value?(a(),k(r(e),{key:0,onClose:P[0]||(P[0]=M=>p.value=!1)})):f("",!0),d("div",Rn,[_(ge,{onClick:P[1]||(P[1]=M=>p.value=!0)})])],64)):r(g)==="algolia"?(a(),l(N,{key:1},[o.value?(a(),k(r(t),{key:0,algolia:((w=r(n).search)==null?void 0:w.options)??r(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=M=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),l("div",Jn,[_(ge,{onClick:u})]))],64)):f("",!0)])}}}),Qn=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),k(ne,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Xn=b(Qn,[["__scopeId","data-v-d5f2fed7"]]),Zn=["href","rel","target"],xn={key:1},ea={key:2},ta=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=V(),{hasSidebar:n}=O(),{currentLang:o}=J(),i=$(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=$(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),l("div",{class:S(["VPNavBarTitle",{"has-sidebar":r(n)}])},[d("a",{class:"title",href:i.value??r(fe)(r(o).link),rel:u.value,target:h.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Z,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),l("span",xn,L(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),l("span",ea,L(r(e).title),1)):f("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,Zn)],2))}}),sa=b(ta,[["__scopeId","data-v-bad16710"]]),oa={class:"items"},na={class:"title"},aa=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=V(),{localeLinks:t,currentLang:n}=J({correspondingLink:!0});return(o,i)=>r(t).length&&r(n).label?(a(),k($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:v(()=>[d("div",oa,[d("p",na,L(r(n).label),1),(a(!0),l(N,null,E(r(t),u=>(a(),k(oe,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),ra=b(aa,[["__scopeId","data-v-08938979"]]),ia=s=>(C("data-v-b3572b97"),s=s(),H(),s),la={class:"wrapper"},ca={class:"container"},ua={class:"title"},da={class:"content"},va={class:"content-body"},pa=ia(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),ha=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Se(),{hasSidebar:t}=O(),{hasLocalNav:n}=Ae(),{frontmatter:o}=V(),i=T({});return ye(()=>{i.value={"has-sidebar":t.value,"has-local-nav":n.value,top:o.value.layout==="home"&&e.value===0}}),(u,h)=>(a(),l("div",{class:S(["VPNavBar",i.value])},[d("div",la,[d("div",ca,[d("div",ua,[_(sa,null,{"nav-bar-title-before":v(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",da,[d("div",va,[c(u.$slots,"nav-bar-content-before",{},void 0,!0),_(Yn,{class:"search"}),_(On,{class:"menu"}),_(ra,{class:"translations"}),_(zo,{class:"appearance"}),_(Xn,{class:"social-links"}),_(Vn,{class:"extra"}),c(u.$slots,"nav-bar-content-after",{},void 0,!0),_(Nn,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=p=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),pa],2))}}),fa=b(ha,[["__scopeId","data-v-b3572b97"]]),ma={key:0,class:"VPNavScreenAppearance"},_a={class:"text"},ba=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=V();return(n,o)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",ma,[d("p",_a,L(r(t).darkModeSwitchLabel||"Appearance"),1),_(be)])):f("",!0)}}),ka=b(ba,[["__scopeId","data-v-2d20d584"]]),$a=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),ga=b($a,[["__scopeId","data-v-56d75e0e"]]),ya=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[F(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ee=b(ya,[["__scopeId","data-v-f5b09cb8"]]),Pa={class:"VPNavScreenMenuGroupSection"},Va={key:0,class:"title"},La=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Pa,[e.text?(a(),l("p",Va,L(e.text),1)):f("",!0),(a(!0),l(N,null,E(e.items,n=>(a(),k(Ee,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Sa=b(La,[["__scopeId","data-v-a04a84d8"]]),Ta=s=>(C("data-v-f47b9234"),s=s(),H(),s),Ia=["aria-controls","aria-expanded"],wa=["innerHTML"],Na=Ta(()=>d("span",{class:"vpi-plus button-icon"},null,-1)),Ma=["id"],Aa={key:1,class:"group"},Ba=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=T(!1),n=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,u)=>(a(),l("div",{class:S(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[d("span",{class:"button-text",innerHTML:i.text},null,8,wa),Na],8,Ia),d("div",{id:n.value,class:"items"},[(a(!0),l(N,null,E(i.items,h=>(a(),l(N,{key:h.text},["link"in h?(a(),l("div",{key:h.text,class:"item"},[_(Ee,{item:h},null,8,["item"])])):(a(),l("div",Aa,[_(Sa,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ma)],2))}}),Ca=b(Ba,[["__scopeId","data-v-f47b9234"]]),Ha={key:0,class:"VPNavScreenMenu"},Ea=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),l("nav",Ha,[(a(!0),l(N,null,E(r(e).nav,o=>(a(),l(N,{key:o.text},["link"in o?(a(),k(ga,{key:0,item:o},null,8,["item"])):(a(),k(Ca,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Fa=m({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),k(ne,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Fe=s=>(C("data-v-bca8813f"),s=s(),H(),s),Da=Fe(()=>d("span",{class:"vpi-languages icon lang"},null,-1)),Oa=Fe(()=>d("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ua={class:"list"},za=m({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=J({correspondingLink:!0}),n=T(!1);function o(){n.value=!n.value}return(i,u)=>r(e).length&&r(t).label?(a(),l("div",{key:0,class:S(["VPNavScreenTranslations",{open:n.value}])},[d("button",{class:"title",onClick:o},[Da,F(" "+L(r(t).label)+" ",1),Oa]),d("ul",Ua,[(a(!0),l(N,null,E(r(e),h=>(a(),l("li",{key:h.link,class:"item"},[_(D,{class:"link",href:h.link},{default:v(()=>[F(L(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Ga=b(za,[["__scopeId","data-v-bca8813f"]]),ja={class:"container"},qa=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=T(null),t=Te(R?document.body:null);return(n,o)=>(a(),k(ve,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:v(()=>[n.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",ja,[c(n.$slots,"nav-screen-content-before",{},void 0,!0),_(Ea,{class:"menu"}),_(Ga,{class:"translations"}),_(ka,{class:"appearance"}),_(Fa,{class:"social-links"}),c(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ka=b(qa,[["__scopeId","data-v-6e19f0fd"]]),Wa={key:0,class:"VPNav"},Ra=m({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=wo(),{frontmatter:o}=V(),i=$(()=>o.value.navbar!==!1);return Ie("close-screen",t),x(()=>{R&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),l("header",Wa,[_(fa,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":v(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(Ka,{open:r(e)},{"nav-screen-content-before":v(()=>[c(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ja=b(Ra,[["__scopeId","data-v-982e548f"]]),De=s=>(C("data-v-2d5c92a1"),s=s(),H(),s),Ya=["role","tabindex"],Qa=De(()=>d("div",{class:"indicator"},null,-1)),Xa=De(()=>d("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Za=[Xa],xa={key:1,class:"items"},er=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=kt($(()=>e.item)),g=$(()=>h.value?"section":"div"),y=$(()=>o.value?"a":"div"),P=$(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),w=$(()=>o.value?void 0:"button"),M=$(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":u.value}]);function A(I){"key"in I&&I.key!=="Enter"||!e.item.link&&p()}function B(){e.item.link&&p()}return(I,Y)=>{const U=q("VPSidebarItem",!0);return a(),k(W(g.value),{class:S(["VPSidebarItem",M.value])},{default:v(()=>[I.item.text?(a(),l("div",Q({key:0,class:"item",role:w.value},Qe(I.item.items?{click:A,keydown:A}:{},!0),{tabindex:I.item.items&&0}),[Qa,I.item.link?(a(),k(D,{key:0,tag:y.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:v(()=>[(a(),k(W(P.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(W(P.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Xe(B,["enter"]),tabindex:"0"},Za,32)):f("",!0)],16,Ya)):f("",!0),I.item.items&&I.item.items.length?(a(),l("div",xa,[I.depth<5?(a(!0),l(N,{key:0},E(I.item.items,K=>(a(),k(U,{key:K.text,item:K,depth:I.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),tr=b(er,[["__scopeId","data-v-2d5c92a1"]]),Oe=s=>(C("data-v-b5b61e9d"),s=s(),H(),s),sr=Oe(()=>d("div",{class:"curtain"},null,-1)),or={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},nr=Oe(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ar=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=O(),n=s,o=T(null),i=Te(R?document.body:null);return j([n,o],()=>{var u;n.open?(i.value=!0,(u=o.value)==null||u.focus()):i.value=!1},{immediate:!0,flush:"post"}),(u,h)=>r(t)?(a(),l("aside",{key:0,class:S(["VPSidebar",{open:u.open}]),ref_key:"navEl",ref:o,onClick:h[0]||(h[0]=Ze(()=>{},["stop"]))},[sr,d("nav",or,[nr,c(u.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(N,null,E(r(e),p=>(a(),l("div",{key:p.text,class:"group"},[_(tr,{item:p,depth:0},null,8,["item"])]))),128)),c(u.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),rr=b(ar,[["__scopeId","data-v-b5b61e9d"]]),ir=m({__name:"VPSkipLink",setup(s){const e=te(),t=T();j(()=>e.path,()=>t.value.focus());function n({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),l(N,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),lr=b(ir,[["__scopeId","data-v-51bcb88e"]]),cr=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=O(),o=te();j(()=>o.path,n),bt(e,n);const{frontmatter:i}=V(),u=xe(),h=$(()=>!!u["home-hero-image"]);return Ie("hero-image-slot-exists",h),(p,g)=>{const y=q("Content");return r(i).layout!==!1?(a(),l("div",{key:0,class:S(["Layout",r(i).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),_(lr),_(ot,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),_(Ja,null,{"nav-bar-title-before":v(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(Io,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),_(rr,{open:r(e)},{"sidebar-nav-before":v(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(co,null,{"page-top":v(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(fo),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(y,{key:1}))}}}),ur=b(cr,[["__scopeId","data-v-bee2e1c1"]]),dr=s=>(C("data-v-2adf131b"),s=s(),H(),s),vr={class:"profile"},pr={class:"avatar"},hr=["src","alt"],fr={class:"data"},mr={class:"name"},_r={key:0,class:"affiliation"},br={key:0,class:"title"},kr={key:1,class:"at"},$r=["innerHTML"],gr={key:2,class:"links"},yr={key:0,class:"sp"},Pr=dr(()=>d("span",{class:"vpi-heart sp-icon"},null,-1)),Vr=m({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(s){return(e,t)=>(a(),l("article",{class:S(["VPTeamMembersItem",[e.size]])},[d("div",vr,[d("figure",pr,[d("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,hr)]),d("div",fr,[d("h1",mr,L(e.member.name),1),e.member.title||e.member.org?(a(),l("p",_r,[e.member.title?(a(),l("span",br,L(e.member.title),1)):f("",!0),e.member.title&&e.member.org?(a(),l("span",kr," @ ")):f("",!0),e.member.org?(a(),k(D,{key:2,class:S(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:v(()=>[F(L(e.member.org),1)]),_:1},8,["class","href"])):f("",!0)])):f("",!0),e.member.desc?(a(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,$r)):f("",!0),e.member.links?(a(),l("div",gr,[_(ne,{links:e.member.links},null,8,["links"])])):f("",!0)])]),e.member.sponsor?(a(),l("div",yr,[_(D,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:v(()=>[Pr,F(" "+L(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):f("",!0)],2))}}),Lr=b(Vr,[["__scopeId","data-v-2adf131b"]]),Sr={class:"container"},Tr=m({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(s){const e=s,t=$(()=>[e.size,`count-${e.members.length}`]);return(n,o)=>(a(),l("div",{class:S(["VPTeamMembers",t.value])},[d("div",Sr,[(a(!0),l(N,null,E(n.members,i=>(a(),l("div",{key:i.name,class:"item"},[_(Lr,{size:n.size,member:i},null,8,["size","member"])]))),128))])],2))}}),wr=b(Tr,[["__scopeId","data-v-81dab0e9"]]),Nr={Layout:ur,enhanceApp:({app:s})=>{s.component("Badge",et)}};export{wr as V,Nr as t}; diff --git a/docs/assets/chunks/timeline-definition-d977decf.BWb3XqIn.js b/docs/assets/chunks/timeline-definition-d977decf.BWb3XqIn.js new file mode 100644 index 0000000..f2ba673 --- /dev/null +++ b/docs/assets/chunks/timeline-definition-d977decf.BWb3XqIn.js @@ -0,0 +1,61 @@ +import{b2 as ft,z as gt,c as mt,l as E,h as G,t as xt,b3 as bt,b4 as _t,b5 as kt}from"../app.Dv4846sG.js";import{a as D}from"./arc.DUOD18ct.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./path.CbwjOpE9.js";var K=function(){var n=function(g,i,r,c){for(r=r||{},c=g.length;c--;r[g[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],l=[1,13],p=[1,16],y=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,o,$){var x=o.length-1;switch(u){case 1:return o[x-1];case 2:this.$=[];break;case 3:o[x-1].push(o[x]),this.$=o[x-1];break;case 4:case 5:this.$=o[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(o[x].substr(6)),this.$=o[x].substr(6);break;case 9:this.$=o[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(o[x].substr(8)),this.$=o[x].substr(8);break;case 15:d.addTask(o[x],0,""),this.$=o[x];break;case 16:d.addEvent(o[x].substr(2)),this.$=o[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],o=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=o.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;o.push(I);var P=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var _,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=z()),S=$[L]&&$[L][_]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":J="Parse error on line "+(T+1)+": Unexpected "+(_==A?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(J,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:I,expected:j})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(S[0]){case 1:c.push(_),u.push(k.yytext),o.push(k.yylloc),c.push(S[1]),_=null,W=k.yyleng,x=k.yytext,T=k.yylineno,I=k.yylloc;break;case 2:if(N=this.productions_[S[1]][1],R.$=u[u.length-N],R._$={first_line:o[o.length-(N||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(N||1)].first_column,last_column:o[o.length-1].last_column},P&&(R._$.range=[o[o.length-(N||1)].range[0],o[o.length-1].range[1]]),Z=this.performAction.apply(R,[x,W,T,w.yy,S[1],u,o].concat(B)),typeof Z<"u")return Z;N&&(c=c.slice(0,-1*N*2),u=u.slice(0,-1*N),o=o.slice(0,-1*N)),c.push(this.productions_[S[1]][0]),u.push(R.$),o.push(R._$),Y=$[c[c.length-2]][c[c.length-1]],c.push(Y);break;case 3:return!0}}return!0}},b=function(){var g={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+` +`+r+"^"},test_match:function(i,r){var c,d,u;if(this.options.backtrack_lexer&&(u={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(u.yylloc.range=this.yylloc.range.slice(0))),d=i[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+i[0].length},this.yytext+=i[0],this.match+=i[0],this.matches=i,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(i[0].length),this.matched+=i[0],c=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var o in u)this[o]=u[o];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var i,r,c,d;this._more||(this.yytext="",this.match="");for(var u=this._currentRules(),o=0;or[0].length)){if(r=c,d=o,this.options.backtrack_lexer){if(i=this.test_match(c,u[o]),i!==!1)return i;if(this._backtrack){r=!1;continue}else return!1}else if(!this.options.flex)break}return r?(i=this.test_match(r,u[d]),i!==!1?i:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r||this.lex()},begin:function(r){this.conditionStack.push(r)},popState:function(){var r=this.conditionStack.length-1;return r>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(r){return r=this.conditionStack.length-1-Math.abs(r||0),r>=0?this.conditionStack[r]:"INITIAL"},pushState:function(r){this.begin(r)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(r,c,d,u){switch(d){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),14;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return g}();f.lexer=b;function m(){this.yy={}}return m.prototype=f,f.Parser=m,new m}();K.parser=K;const vt=K;let F="",st=0;const Q=[],q=[],V=[],it=()=>ft,rt=function(){Q.length=0,q.length=0,F="",V.length=0,gt()},at=function(n){F=n,Q.push(n)},lt=function(){return Q},ot=function(){let n=tt();const t=100;let e=0;for(;!n&&ee.id===st-1).events.push(n)},dt=function(n){const t={section:F,type:F,description:n,task:n,classes:[]};q.push(t)},tt=function(){const n=function(e){return V[e].processed};let t=!0;for(const[e,a]of V.entries())n(e),t=t&&a.processed;return t},wt={clear:rt,getCommonDb:it,addSection:at,getSections:lt,getTasks:ot,addTask:ct,addTaskOrg:dt,addEvent:ht},St=Object.freeze(Object.defineProperty({__proto__:null,addEvent:ht,addSection:at,addTask:ct,addTaskOrg:dt,clear:rt,default:wt,getCommonDb:it,getSections:lt,getTasks:ot},Symbol.toStringTag,{value:"Module"})),Et=12,U=function(n,t){const e=n.append("rect");return e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),e.attr("rx",t.rx),e.attr("ry",t.ry),t.class!==void 0&&e.attr("class",t.class),e},Tt=function(n,t){const a=n.append("circle").attr("cx",t.cx).attr("cy",t.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),s=n.append("g");s.append("circle").attr("cx",t.cx-15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),s.append("circle").attr("cx",t.cx+15/3).attr("cy",t.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function h(y){const f=D().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}function l(y){const f=D().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);y.append("path").attr("class","mouth").attr("d",f).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}function p(y){y.append("line").attr("class","mouth").attr("stroke",2).attr("x1",t.cx-5).attr("y1",t.cy+7).attr("x2",t.cx+5).attr("y2",t.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return t.score>3?h(s):t.score<3?l(s):p(s),a},It=function(n,t){const e=n.append("circle");return e.attr("cx",t.cx),e.attr("cy",t.cy),e.attr("class","actor-"+t.pos),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("r",t.r),e.class!==void 0&&e.attr("class",e.class),t.title!==void 0&&e.append("title").text(t.title),e},ut=function(n,t){const e=t.text.replace(//gi," "),a=n.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class!==void 0&&a.attr("class",t.class);const s=a.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),a},$t=function(n,t){function e(s,h,l,p,y){return s+","+h+" "+(s+l)+","+h+" "+(s+l)+","+(h+p-y)+" "+(s+l-y*1.2)+","+(h+p)+" "+s+","+(h+p)}const a=n.append("polygon");a.attr("points",e(t.x,t.y,50,20,7)),a.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,ut(n,t)},Nt=function(n,t,e){const a=n.append("g"),s=X();s.x=t.x,s.y=t.y,s.fill=t.fill,s.width=e.width,s.height=e.height,s.class="journey-section section-type-"+t.num,s.rx=3,s.ry=3,U(a,s),pt(e)(t.text,a,s.x,s.y,s.width,s.height,{class:"journey-section section-type-"+t.num},e,t.colour)};let et=-1;const Mt=function(n,t,e){const a=t.x+e.width/2,s=n.append("g");et++;const h=300+5*30;s.append("line").attr("id","task"+et).attr("x1",a).attr("y1",t.y).attr("x2",a).attr("y2",h).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Tt(s,{cx:a,cy:300+(5-t.score)*30,score:t.score});const l=X();l.x=t.x,l.y=t.y,l.fill=t.fill,l.width=e.width,l.height=e.height,l.class="task task-type-"+t.num,l.rx=3,l.ry=3,U(s,l),t.x+14,pt(e)(t.task,s,l.x,l.y,l.width,l.height,{class:"task"},e,t.colour)},Lt=function(n,t){U(n,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},At=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},X=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},pt=function(){function n(s,h,l,p,y,f,b,m){const g=h.append("text").attr("x",l+y/2).attr("y",p+f/2+5).style("font-color",m).style("text-anchor","middle").text(s);a(g,b)}function t(s,h,l,p,y,f,b,m,g){const{taskFontSize:i,taskFontFamily:r}=m,c=s.split(//gi);for(let d=0;d)/).reverse(),s,h=[],l=1.1,p=e.attr("y"),y=parseFloat(e.attr("dy")),f=e.text(null).append("tspan").attr("x",0).attr("y",p).attr("dy",y+"em");for(let b=0;bt||s==="
")&&(h.pop(),f.text(h.join(" ").trim()),s==="
"?h=[""]:h=[s],f=e.append("tspan").attr("x",0).attr("y",p).attr("dy",l+"em").text(s))})}const Ht=function(n,t,e,a){const s=e%Et-1,h=n.append("g");t.section=s,h.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+s));const l=h.append("g"),p=h.append("g"),f=p.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),b=a.fontSize&&a.fontSize.replace?a.fontSize.replace("px",""):a.fontSize;return t.height=f.height+b*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,p.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),zt(l,t,s),t},Ct=function(n,t,e){const a=n.append("g"),h=a.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(yt,t.width).node().getBBox(),l=e.fontSize&&e.fontSize.replace?e.fontSize.replace("px",""):e.fontSize;return a.remove(),h.height+l*1.1*.5+t.padding},zt=function(n,t,e){n.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+t.type).attr("d",`M0 ${t.height-5} v${-t.height+2*5} q0,-5 5,-5 h${t.width-2*5} q5,0 5,5 v${t.height-5} H0 Z`),n.append("line").attr("class","node-line-"+e).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},H={drawRect:U,drawCircle:It,drawSection:Nt,drawText:ut,drawLabel:$t,drawTask:Mt,drawBackgroundRect:Lt,getTextObj:At,getNoteRect:X,initGraphics:Pt,drawNode:Ht,getVirtualNodeHeight:Ct},Rt=function(n,t,e,a){var s,h;const l=mt(),p=l.leftMargin??50;E.debug("timeline",a.db);const y=l.securityLevel;let f;y==="sandbox"&&(f=G("#i"+t));const m=(y==="sandbox"?G(f.nodes()[0].contentDocument.body):G("body")).select("#"+t);m.append("g");const g=a.db.getTasks(),i=a.db.getCommonDb().getDiagramTitle();E.debug("task",g),H.initGraphics(m);const r=a.db.getSections();E.debug("sections",r);let c=0,d=0,u=0,o=0,$=50+p,x=50;o=50;let T=0,W=!0;r.forEach(function(w){const v={number:T,descr:w,section:T,width:150,padding:20,maxHeight:c},I=H.getVirtualNodeHeight(m,v,l);E.debug("sectionHeight before draw",I),c=Math.max(c,I+20)});let C=0,A=0;E.debug("tasks.length",g.length);for(const[w,v]of g.entries()){const I={number:w,descr:v,section:v.section,width:150,padding:20,maxHeight:d},P=H.getVirtualNodeHeight(m,I,l);E.debug("taskHeight before draw",P),d=Math.max(d,P+20),C=Math.max(C,v.events.length);let z=0;for(let _=0;_0?r.forEach(w=>{const v=g.filter(_=>_.section===w),I={number:T,descr:w,section:T,width:200*Math.max(v.length,1)-50,padding:20,maxHeight:c};E.debug("sectionNode",I);const P=m.append("g"),z=H.drawNode(P,I,T,l);E.debug("sectionNode output",z),P.attr("transform",`translate(${$}, ${o})`),x+=c+50,v.length>0&&nt(m,v,T,$,x,d,l,C,A,c,!1),$+=200*Math.max(v.length,1),x=o,T++}):(W=!1,nt(m,g,T,$,x,d,l,C,A,c,!0));const B=m.node().getBBox();E.debug("bounds",B),i&&m.append("text").text(i).attr("x",B.width/2-p).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),u=W?c+d+150:d+100,m.append("g").attr("class","lineWrapper").append("line").attr("x1",p).attr("y1",u).attr("x2",B.width+3*p).attr("y2",u).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),xt(void 0,m,((s=l.timeline)==null?void 0:s.padding)??50,((h=l.timeline)==null?void 0:h.useMaxWidth)??!1)},nt=function(n,t,e,a,s,h,l,p,y,f,b){var m;for(const g of t){const i={descr:g.task,section:e,number:e,width:150,padding:20,maxHeight:h};E.debug("taskNode",i);const r=n.append("g").attr("class","taskWrapper"),d=H.drawNode(r,i,e,l).height;if(E.debug("taskHeight after draw",d),r.attr("transform",`translate(${a}, ${s})`),h=Math.max(h,d),g.events){const u=n.append("g").attr("class","lineWrapper");let o=h;s+=100,o=o+Ft(n,g.events,e,a,s,l),s-=100,u.append("line").attr("x1",a+190/2).attr("y1",s+h).attr("x2",a+190/2).attr("y2",s+h+(b?h:f)+y+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}a=a+200,b&&!((m=l.timeline)!=null&&m.disableMulticolor)&&e++}s=s-10},Ft=function(n,t,e,a,s,h){let l=0;const p=s;s=s+100;for(const y of t){const f={descr:y,section:e,number:e,width:150,padding:20,maxHeight:50};E.debug("eventNode",f);const b=n.append("g").attr("class","eventWrapper"),g=H.drawNode(b,f,e,h).height;l=l+g,b.attr("transform",`translate(${a}, ${s})`),s=s+10+g}return s=p,l},Vt={setConf:()=>{},draw:Rt},Wt=n=>{let t="";for(let e=0;e` + .edge { + stroke-width: 3; + } + ${Wt(n)} + .section-root rect, .section-root path, .section-root circle { + fill: ${n.git0}; + } + .section-root text { + fill: ${n.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,Ot=Bt,Jt={db:St,renderer:Vt,parser:vt,styles:Ot};export{Jt as diagram}; diff --git a/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js b/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js new file mode 100644 index 0000000..effcb96 --- /dev/null +++ b/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js @@ -0,0 +1 @@ +const e={securityLevel:"loose",startOnLoad:!1};export{e as default}; diff --git a/docs/assets/chunks/xychartDiagram-e50adddc._djyjX0F.js b/docs/assets/chunks/xychartDiagram-e50adddc._djyjX0F.js new file mode 100644 index 0000000..8a134f8 --- /dev/null +++ b/docs/assets/chunks/xychartDiagram-e50adddc._djyjX0F.js @@ -0,0 +1,7 @@ +import{aY as zt,aZ as ot,aK as wt,aJ as Ft,s as Nt,g as Xt,v as Yt,x as St,a as Ht,b as $t,z as Ut,l as Ct,aH as qt,i as jt,d as Gt}from"../app.Dv4846sG.js";import{a as Qt}from"./createText-423428c9.B39V2kZ0.js";import{i as Kt}from"./init.Gi6I4Gst.js";import{o as Zt}from"./ordinal.BYWQX77i.js";import{l as ft}from"./linear.xw6n-5RF.js";import{l as pt}from"./line._MqlDceE.js";import"./framework.aTtkxbT6.js";import"./theme.DI3JhXoF.js";import"./array.BKyUJesY.js";import"./path.CbwjOpE9.js";function Jt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,E,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?E=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),E=F[W]&&F[W][D]),typeof E>"u"||!E.length||!E[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`: +`+k.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(E[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(E[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[E[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,E[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[E[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` +`+l+"^"},test_match:function(r,l){var u,g,b;if(this.options.backtrack_lexer&&(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(b.yylloc.range=this.yylloc.range.slice(0))),g=r[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+r[0].length},this.yytext+=r[0],this.match+=r[0],this.matches=r,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(r[0].length),this.matched+=r[0],u=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var a in b)this[a]=b[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,l,u,g;this._more||(this.yytext="",this.match="");for(var b=this._currentRules(),a=0;al[0].length)){if(l=u,g=a,this.options.backtrack_lexer){if(r=this.test_match(u,b[a]),r!==!1)return r;if(this._backtrack){l=!1;continue}else return!1}else if(!this.options.flex)break}return l?(r=this.test_match(l,b[g]),r!==!1?r:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var l=this.next();return l||this.lex()},begin:function(l){this.conditionStack.push(l)},popState:function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},pushState:function(l){this.begin(l)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(l,u,g,b){switch(g){case 0:break;case 1:break;case 2:return this.popState(),34;case 3:return this.popState(),34;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";case 17:return this.pushState("axis_data"),"Y_AXIS";case 18:return this.pushState("axis_band_data"),24;case 19:return 31;case 20:return this.pushState("data"),16;case 21:return this.pushState("data"),18;case 22:return this.pushState("data_inner"),24;case 23:return 27;case 24:return this.popState(),26;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return V}();K.lexer=It;function Z(){this.yy={}}return Z.prototype=K,K.Parser=Z,new Z}();nt.parser=nt;const ti=nt;function mt(e){return e.type==="bar"}function _t(e){return e.type==="band"}function N(e){return e.type==="linear"}class kt{constructor(t){this.parentGroup=t}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((o,c)=>Math.max(c.length,o),0)*i,height:i};const s={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const o of t){const c=Qt(n,1,o),f=c?c.width:o.length*i,d=c?c.height:i;s.width=Math.max(s.width,f),s.height=Math.max(s.height,d)}return n.remove(),s}}const yt=.7,bt=.2;class Rt{constructor(t,i,s,n){this.axisConfig=t,this.title=i,this.textDimensionCalculator=s,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){yt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(yt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.width;this.outerPadding=Math.min(s.width/2,n);const o=s.height+this.axisConfig.labelPadding*2;this.labelTextHeight=s.height,o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=bt*t.height;this.outerPadding=Math.min(s.height/2,n);const o=s.width+this.axisConfig.labelPadding*2;o<=i&&(i-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=i&&(i-=n,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${i},${this.getScaleValue(s)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(s)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i} L ${this.getScaleValue(s)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(s)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}class ii extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.categories=s,this.scale=st().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=st().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Ct.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)||this.getRange()[0]}}class ei extends Rt{constructor(t,i,s,n,o){super(t,n,o,i),this.domain=s,this.scale=ft().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=ft().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}function At(e,t,i,s){const n=new kt(s);return _t(e)?new ii(t,i,e.categories,e.title,n):new ei(t,i,[e.min,e.max],e.title,n)}class si{constructor(t,i,s,n){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=s,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),s=Math.max(i.width,t.width),n=i.height+2*this.chartConfig.titlePadding;return i.width<=s&&i.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=s,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}}function ni(e,t,i,s){const n=new kt(s);return new si(n,e,t,i)}class ai{constructor(t,i,s,n,o){this.plotData=t,this.xAxis=i,this.yAxis=s,this.orientation=n,this.plotIndex=o}getDrawableElement(){const t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]);let i;return this.orientation==="horizontal"?i=pt().y(s=>s[0]).x(s=>s[1])(t):i=pt().x(s=>s[0]).y(s=>s[1])(t),i?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}class oi{constructor(t,i,s,n,o,c){this.barData=t,this.boundingRect=i,this.xAxis=s,this.yAxis=n,this.orientation=o,this.plotIndex=c}getDrawableElement(){const t=this.barData.data.map(o=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=s/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:this.boundingRect.x,y:o[0]-n,height:s,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:o[0]-n,y:o[1],width:s,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}class ri{constructor(t,i,s){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const t=[];for(const[i,s]of this.chartData.plots.entries())switch(s.type){case"line":{const n=new ai(s,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break;case"bar":{const n=new oi(s,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...n.getDrawableElement())}break}return t}}function hi(e,t,i){return new ri(e,t,i)}class li{constructor(t,i,s,n){this.chartConfig=t,this.chartData=i,this.componentStore={title:ni(t,i,s,n),plot:hi(t,i,s),xAxis:At(i.xAxis,t.xAxis,{titleColor:s.xAxisTitleColor,labelColor:s.xAxisLabelColor,tickColor:s.xAxisTickColor,axisLineColor:s.xAxisLineColor},n),yAxis:At(i.yAxis,t.yAxis,{titleColor:s.yAxisTitleColor,labelColor:s.yAxisLabelColor,tickColor:s.yAxisTickColor,axisLineColor:s.yAxisLineColor},n)}}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),f=this.componentStore.plot.calculateSpace({width:o,height:c});t-=f.width,i-=f.height,f=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),n=f.height,i-=f.height,this.componentStore.xAxis.setAxisPosition("bottom"),f=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=f.height,this.componentStore.yAxis.setAxisPosition("left"),f=this.componentStore.yAxis.calculateSpace({width:t,height:i}),s=f.width,t-=f.width,t>0&&(o+=t,t=0),i>0&&(c+=i,i=0),this.componentStore.plot.calculateSpace({width:o,height:c}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.xAxis.setRange([s,s+o]),this.componentStore.xAxis.setBoundingBoxXY({x:s,y:n+c}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(d=>mt(d))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizonatalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,s=0,n=0,o=0,c=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),f=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),d=this.componentStore.plot.calculateSpace({width:c,height:f});t-=d.width,i-=d.height,d=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=d.height,i-=d.height,this.componentStore.xAxis.setAxisPosition("left"),d=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=d.width,n=d.width,this.componentStore.yAxis.setAxisPosition("top"),d=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=d.height,o=s+d.height,t>0&&(c+=t,t=0),i>0&&(f+=i,i=0),this.componentStore.plot.calculateSpace({width:c,height:f}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+c]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:s}),this.componentStore.xAxis.setRange([o,o+f]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some(R=>mt(R))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizonatalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}}class ci{static build(t,i,s,n){return new li(t,i,s,n).getDrawableElement()}}let X=0,Tt,Y=Pt(),H=Dt(),y=Lt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1;function Dt(){const e=zt(),t=ot();return wt(e.xyChart,t.themeVariables.xyChart)}function Pt(){const e=ot();return wt(Ft.xyChart,e.xyChart)}function Lt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function ht(e){const t=ot();return Gt(e.trim(),t)}function ui(e){Tt=e}function gi(e){e==="horizontal"?Y.chartOrientation="horizontal":Y.chartOrientation="vertical"}function xi(e){y.xAxis.title=ht(e.text)}function vt(e,t){y.xAxis={type:"linear",title:y.xAxis.title,min:e,max:t},G=!0}function di(e){y.xAxis={type:"band",title:y.xAxis.title,categories:e.map(t=>ht(t.text))},G=!0}function fi(e){y.yAxis.title=ht(e.text)}function pi(e,t){y.yAxis={type:"linear",title:y.yAxis.title,min:e,max:t},rt=!0}function mi(e){const t=Math.min(...e),i=Math.max(...e),s=N(y.yAxis)?y.yAxis.min:1/0,n=N(y.yAxis)?y.yAxis.max:-1/0;y.yAxis={type:"linear",title:y.yAxis.title,min:Math.min(s,t),max:Math.max(n,i)}}function Et(e){let t=[];if(e.length===0)return t;if(!G){const i=N(y.xAxis)?y.xAxis.min:1/0,s=N(y.xAxis)?y.xAxis.max:-1/0;vt(Math.min(i,1),Math.max(s,e.length))}if(rt||mi(e),_t(y.xAxis)&&(t=y.xAxis.categories.map((i,s)=>[i,e[s]])),N(y.xAxis)){const i=y.xAxis.min,s=y.xAxis.max,n=(s-i+1)/e.length,o=[];for(let c=i;c<=s;c+=n)o.push(`${c}`);t=o.map((c,f)=>[c,e[f]])}return t}function Mt(e){return at[e===0?0:e%at.length]}function yi(e,t){const i=Et(t);y.plots.push({type:"line",strokeFill:Mt(X),strokeWidth:2,data:i}),X++}function bi(e,t){const i=Et(t);y.plots.push({type:"bar",fill:Mt(X),data:i}),X++}function Ai(){if(y.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return y.title=St(),ci.build(Y,y,H,Tt)}function wi(){return H}function Si(){return Y}const Ci=function(){Ut(),X=0,Y=Pt(),y=Lt(),H=Dt(),at=H.plotColorPalette.split(",").map(e=>e.trim()),G=!1,rt=!1},_i={getDrawableElem:Ai,clear:Ci,setAccTitle:Nt,getAccTitle:Xt,setDiagramTitle:Yt,getDiagramTitle:St,getAccDescription:Ht,setAccDescription:$t,setOrientation:gi,setXAxisTitle:xi,setXAxisRangeData:vt,setXAxisBand:di,setYAxisTitle:fi,setYAxisRangeData:pi,setLineData:yi,setBarData:bi,setTmpSVGG:ui,getChartThemeConfig:wi,getChartConfig:Si},ki=(e,t,i,s)=>{const n=s.db,o=n.getChartThemeConfig(),c=n.getChartConfig();function f(p){return p==="top"?"text-before-edge":"middle"}function d(p){return p==="left"?"start":p==="right"?"end":"middle"}function R(p){return`translate(${p.x}, ${p.y}) rotate(${p.rotation||0})`}Ct.debug(`Rendering xychart chart +`+e);const _=qt(t),A=_.append("g").attr("class","main"),m=A.append("rect").attr("width",c.width).attr("height",c.height).attr("class","background");jt(_,c.height,c.width,!0),_.attr("viewBox",`0 0 ${c.width} ${c.height}`),m.attr("fill",o.backgroundColor),n.setTmpSVGG(_.append("g").attr("class","mermaid-tmp-group"));const T=n.getDrawableElem(),S={};function P(p){let C=A,h="";for(const[L]of p.entries()){let z=A;L>0&&S[h]&&(z=S[h]),h+=p[L],C=S[h],C||(C=S[h]=z.append("g").attr("class",p[L]))}return C}for(const p of T){if(p.data.length===0)continue;const C=P(p.groupTexts);switch(p.type){case"rect":C.selectAll("rect").data(p.data).enter().append("rect").attr("x",h=>h.x).attr("y",h=>h.y).attr("width",h=>h.width).attr("height",h=>h.height).attr("fill",h=>h.fill).attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break;case"text":C.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",h=>h.fill).attr("font-size",h=>h.fontSize).attr("dominant-baseline",h=>f(h.verticalPos)).attr("text-anchor",h=>d(h.horizontalPos)).attr("transform",h=>R(h)).text(h=>h.text);break;case"path":C.selectAll("path").data(p.data).enter().append("path").attr("d",h=>h.path).attr("fill",h=>h.fill?h.fill:"none").attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break}}},Ri={draw:ki},Wi={parser:ti,db:_i,renderer:Ri};export{Wi as diagram}; diff --git a/docs/assets/cleanpng.OTAb6wML.png b/docs/assets/cleanpng.OTAb6wML.png new file mode 100644 index 0000000..202df73 Binary files /dev/null and b/docs/assets/cleanpng.OTAb6wML.png differ diff --git a/docs/assets/cloud.D_oAYMVs.jpg b/docs/assets/cloud.D_oAYMVs.jpg new file mode 100644 index 0000000..99edbbd Binary files /dev/null and b/docs/assets/cloud.D_oAYMVs.jpg differ diff --git a/docs/assets/cwebp.CSR3lZeR.webp b/docs/assets/cwebp.CSR3lZeR.webp new file mode 100644 index 0000000..014e0ba Binary files /dev/null and b/docs/assets/cwebp.CSR3lZeR.webp differ diff --git "a/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.js" "b/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.js" new file mode 100644 index 0000000..0a75ca7 --- /dev/null +++ "b/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.js" @@ -0,0 +1 @@ +import{_ as a,c as e,o as l,a2 as t}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"API 网关","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202210/Api网关.md","filePath":"date/202210/Api网关.md","lastUpdated":null}'),r={name:"date/202210/Api网关.md"},i=t('

API 网关

一、背景

微服务体系中,如果未部署网关,则客户端必须直接向前端服务发送请求。 但是,直接向客户端公开服务会造成一些潜在问题:

  • 可能需要编写复杂的客户端代码。 客户端必须跟踪多个终结点,并以弹性方式处理故障。
  • 会在客户端与后端之间造成耦合。 客户端需要知道如何分解各个服务。 因此,客户端维护和服务重构会变得更困难。
  • 单个操作可能需要调用多个服务。 这可能导致客户端和服务器之间的多次网络往返,从而显著增加了延迟时间。
  • 每个面向公众的服务必须处理身份验证、SSL 和客户端速率限制等问题。
  • 服务必须公开客户端友好的协议,例如 HTTP 或 WebSocket。 这就限制了通信协议的选择。
  • 包含公共终结点的服务是潜在的受攻击面,必须得到强化。

二、API 网关

位置:API 网关位于客户端与服务之间

作用:

  • 充当反向代理,将来自客户端的请求路由到服务。
  • 执行各种横切任务,例如身份验证、SSL 终止和速率限制

网关的功能,划分为三类:

  • 网关路由。使用网关作为反向代理,网关为客户端提供单一终结点,可帮助将客户端与服务分开。
  • 网关聚合。将多个单独请求聚合成一个请求。
  • 网关卸载。将单个服务的功能卸载到网关,尤其适合用于解决横切问题。
    • SSL 终止
    • 访问控制,IP 允许/阻止列表
    • 流量控制,客户端速率限制(限制)
    • 日志记录和监视
    • Authentication。登录凭证校验、API 资源调用权限校验
    • API 参数清洗
    • 响应缓存
    • Web 应用程序防火墙
    • GZIP 压缩
    • 为静态内容提供服务
  • 发布
    • 金丝雀
    • 灰度发布
  • 持续集成
    • 对接 swagger 文档

支持的应用层协议:

  • HTTP、HTTPS
  • WebSocket

三、功能

3.1 API 路由转发

使用反向代理服务器,一般使用 Nginx 和 HAProxy。

支持的协议:HTTP、HTTPS、WebSocket

3.2 API 路由聚合

BFF(Backend For Frontend),服务于前端的后端。为每一种客户端适配一个网关,组装、过滤客户端需要的数据(不关心业务)。

3.3 SSL 终止

客户端到网关层使用 HTTPS 协议,网关层到各个服务层使用 HTTP 协议。

3.4 流量控制

限制单位时间内 API 的被调用次数,保护后端服务。

3.5 访问控制

控制访问 API 的 IP 地址和帐户,设置 IP 地址或帐户的黑白名单来拒绝/允许某个 IP 地址或帐户访问 API。

3.6 流量监控

监控 API 的延迟、流入流量、流出流量、调用次数等。参考华为云 API 网关的指标

3.7 日志分析

分析的指标:

  • PV、UV
  • 客户端种类分布移动端、PC 端口;Chrome、Firefox
  • 访客 IP 分布

3.8 鉴权

鉴权对象方式
应用鉴权为应用设置 AppCode,请求中携带正确的 AppCode 时,鉴权通过。
用户鉴权云账号;基于 OAuth 2.0 协议的 OpenID;无认证
API 鉴权插件,拦截请求,配合具体业务具体实现

四、产品设计

一个 API 网关产品,通常会抽象出:

  • Upstream 上游
  • Router 路由
  • API Group(有的产品也叫服务)
  • Plugin 插件

Router

通过路由定义规则来匹配客户端请求,根据匹配结果加载并执行相应的插件,最后把请求转发给到指定的上游应用

Api Group

路由集合。可以通过 Group 统一配置 API 的转发、横切任务。

Upstream

上游的作用是按照配置规则对服务节点进行负载均衡,它的地址信息可以直接配置到路由或服务上。

Plugin

内置横切任务插件,比如 KeyAuth、日志审计等。

可以单独为路由配置插件,也可以为 Group 配置插件。

五、产品


参考

',48),o=[i];function n(h,p,d,s,c,u){return l(),e("div",null,o)}const b=a(r,[["render",n]]);export{_ as __pageData,b as default}; diff --git "a/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.lean.js" "b/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.lean.js" new file mode 100644 index 0000000..03576a9 --- /dev/null +++ "b/docs/assets/date_202210_Api\347\275\221\345\205\263.md.Ci-9lyCW.lean.js" @@ -0,0 +1 @@ +import{_ as a,c as e,o as l,a2 as t}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"API 网关","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202210/Api网关.md","filePath":"date/202210/Api网关.md","lastUpdated":null}'),r={name:"date/202210/Api网关.md"},i=t("",48),o=[i];function n(h,p,d,s,c,u){return l(),e("div",null,o)}const b=a(r,[["render",n]]);export{_ as __pageData,b as default}; diff --git "a/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.js" "b/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.js" new file mode 100644 index 0000000..10b08cc --- /dev/null +++ "b/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.js" @@ -0,0 +1 @@ +import{_ as a,c as e,o as l,a2 as o}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"两年创业的得与失","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202210/两年创业的得与失.md","filePath":"date/202210/两年创业的得与失.md","lastUpdated":null}'),i={name:"date/202210/两年创业的得与失.md"},t=o('

两年创业的得与失

走走,停停,看看,想想。总有一点温暖,值得持续坚持下去。

一、回顾

1.1 零到一的相遇

毕业后一直供职于一家网络安全的公司,从事主机安全相关的工作。

二零年初发生一些变故,同时感觉职场没有上升的机会,所以果断离职了。最后到一家主营数据中心安全监控的公司供职,当时正好这边新开一个无代码平台的项目,个人成为 Web 组的小 leader。上下班时间规律的很,朝九晚五,准时上下班、零食不断。感觉一下子到了退休生活,自己为小组安排工作,按时交付输出就行。没人给我画大饼、咱也不会给组员画大饼,融洽的很。总结一个字,就是闲。

国庆节后,前公司 leader 突然联系,说是准备自己开公司,要不要来做合伙人。没考虑太久,就同意了,理由有一下几点:

  1. leader 待人和善,工作上总是能给予引导,是我职场上的带路人。
  2. leader 技术能力强,早年的清华硕士。同时,他是《深入浅出 MFC》的作者,专业能力没得说。
  3. 我自己当时的状态,的确闲。钱多事少,跟养老似的,时间久了,怕把自己整废了。

趁年轻,浪一次,拼搏一把,指不定成了呢。

1.2 深圳的十点钟

二零年大家信心充沛,干劲十足。当时正好公司这边在跟某省移动在接触,移动那边认可我们的产品设计,承诺年底前,产品版本发布后可以签订单合同。

公司的办公室在一栋公寓里,三十多平,窗口朝着地铁口,每天人来人往。不大的空间,正好够五、六个人的工位,再加上一些服务器,整个办公室满满当当的。

有三人是住在这栋公寓,另外的人离公司也很近。整个二零年下半年,基本上都是早九点上班、晚十点下班,周六再花一个上午做周总结、复盘等。很忙,但充实,大家知道自己在什么,知道可以得到什么。

回顾整个二零年,上半年闲的天天划水、下半年忙的没时间思考。

1.3 有个兄弟离场了

二一年年中时,有个兄弟决定离开了。

成立公司时,预期的能够很快拿到订单,公司会有持续的收入。但是,但是没有收入。因为一些场外原因(我们自己分析的),某省移动的合同一直没能签下来。

当然,二一年期间,我们也陆陆续续在跟一些潜在客户、合作商、销售联系、跟进,但是没有太大的进展。换句话说,账面上依然是赤字,只有投入,没有产出。

1.4 产品打磨

二二年,发生疫情后的第三年了。整体的大环境不好,国家政策上一直在强调网络安全,这是利好消息。但是企业客户在花钱上很谨慎了,想进军企业市场难度越来越大。可能的原因:

  1. 相似的产品,客户已经部署。如果只是某一点比别家的产品强,或者产品整体优势不明显,企业不乐意引入新产品。
  2. 有些公司自己就会做主机安全方面的产品,他们只是想借鉴我们的产品。
  3. 甚至有些公司直接想合并我们,但是又不想付出足够的代价。
  4. 没有人脉,划重点,没有牢靠的人脉关系。

外部环境不好,能够做的是打磨我们的产品,为客户提供更大的价值,增加对外销售的机会。

1.5 与女友闹掰了

这是一个悲伤的故事...

二、事业

2.1 公司

公司注册

能注册新公司就直接注册新公司,通过公司变更的方式成立新公司反而更麻烦,同时也会失去一些市政的优惠政策。

专利文件

专利文件要尽早的编写、提交申请,申请尽量走快审通道,不要省快审的钱。

专利可以选择不公开,在自己的产品完全成熟前,不暴露自己。小公司唯一的优势就是技术能力了,要近可能晚地暴露自己的产品。

软著

软件著作权,基本提交申请就能通过,从开发人员的角度看,可能没啥意义。但是很多投资方不懂技术,反而更在意软著,投资方期望从软著评估你的公司是不是真正的在做事。所以,有时间还是尽量去申请吧。

高新资质

尽量去申请吧,政府补贴还是很可观的。

2.2 管理思维

管理不只是下命令,需要识别需求、识别关键点、把控风险点、跟进进度、共享信息。

识别真正的需求,永远不要偏离最初的诉求,或者说不要忘记初衷,每一步结束时,都要回头看下是否偏离初衷。

自发的识别关键点。做规划时,能够意识到哪里时关键节点,针对关键问题,需要组织评审会议,不同的角色对关键点的认知是不同的,经过讨论是会碰撞出不同的思路的。

把控风险点。比如预研类的任务通常是一个风险点,不能明确具体耗时,这时就需要管理者即时跟进进度,判断是否继续、还是会议讨论换个思路。

共享信息。信息共享贯穿于整个生命周期内,需要传达信息到下层,也需要从下层获取信息。信息的共享是很有必要,同一个业务,不同角色(开发、产品等)会有不同的认知。他人会提出不同的观点,或许这正是你设计时未考虑到的点呢。通常开发人员会带有偏见,比如前端觉得没必要让后知道页面逻辑;后台觉得跟前端说业务是浪费时间~~

所有,一个合格的管理者,我觉得至少需要做到以下几点:

  • 委托任务。将正确的任务,在正确的时间节点,委托给正确的人。
  • 信息流动。尽可能的保证信息在流通过程中,不会发生变形,能够正确的传达。
  • 识别关键点。组织会议,对于关键点,明确输入、输出。
  • 把控风险,及时跟进进度。

2.3 Bottom 与 Top

看待问题时,可以从底层向高层推理,也可以从高层向下层设计。用锤子的例子来说明:

从 Bottom 到 Top 思考。

采矿时,发现这片矿场只有金、银、铜三种矿石,那可以逆推出,只能作出金锤子、银锤子、铜锤子。

从 Top 到 Bottom 思考

现在,想要一把金锤子。然后,去矿场挖矿,发现金、银、铜三种矿石。所以,金锤子的诉求能满足,顺便还能做银锤子、铜锤子。

例子可能不太恰当,意会吧,啊哈哈哈哈。

实际上,开发人员的思维通常是 Bottom 到 Top,而产品人员的思维是 Top 到 Bottom。

2.4 沟通是个技术活

内部沟通、外部沟通都是一个技术活啊,着实难!!!

a. 内部沟通

口头转达、书面记录,都是沟通的一种方式,沟通的目的,是为了让沟通方在信息上达成一致,即理解要相同,含义不会发生变形。

复述自己的理解

有时讲述者讲述完后,会让聆听者重复一遍。这是一个确认理解是否发生偏移的过程,这个过程并不是故意给某人使绊子,因为同样的一句话,不同的人的确会存在不同的理解。可以多想想 HTTP 三次握手的过程,不要闲麻烦、更不要带有负面情绪,心平气和地沟通。

不要着急说 NO

他人提出一种观点时,尽可能地多想想为什么会提出这种观点。通常情况下,可能的原因:

  1. 角色不同,看待问题的思维是不一样的。
  2. 信息的上下文不同,他人可能基于某个假设,提出了这个观点,而你并不知道这个假设。
执着于证明对错,不是一个好的习惯

工作中,没人关心你为什么错了,方向偏了,立马纠正回来,完成目标就行。下次遇见相同的问题,不要踩坑就行。

发散、聚拢

头脑风暴时,思维是天马行空的,尽可能的发散思维,不要纠结于对错、具体的实施可行性。先发散、最后再聚拢。

遇见问题时,可以向周围人求助,不同的视角,会有不同的建议。

要礼貌

最重要的,让他人把话说完,不要抢话。划重点,不要抢话!!!有疑问时,可以在他人发言的间歇时再提出。

b. 外部沟通

外部沟通时,会遇见形形色色的人,有可能是 CEO、CTO、售前、投资人、友商等,与不同角色的人沟通,沟通的侧重点是完全不同的。比如:

  • CEO 在意的是商业价值、战略部署、长期效益
  • CTO 在意的是技术架构是否优秀,技术难点的攻克方案
  • 售前在意的是产品优势,在同类产品中是否令人眼前一亮,激发购买欲
  • 投资人在意的收益,可能是短期收益、也可能是长期收益
  • 友商在意的是是否能合作共赢

所以呐,PPT 难写!!!需要专业的人去讲故事。

总的说呢,对外沟通,要:

  • 理解对方的行为。从对方的行为上,能够理解对方产生这个动作的潜在内因。这,很艰难,但的确需要去理解。比如:签合同,对方沟通很积极;签署后不再积极跟进,为啥嘞?
  • 获取信息。从对方那里尽可能多地获取信息,武装自己。比如:政策信息、市场信息、产品信息等等。
  • 保护自己。羽翼未丰之前,保护自己,比如专利、软著等。沟通交流时,不要泄漏核心技术。
  • 利益分配。不要轻易许诺股份,初创公司要将公司的主动权把握在自己手中。

三、个人

3.1 说点啥嘞

两年无社交,大黄(我的喵啊)伴我行。大黄呀,等我富贵了,带你吃香的喝辣的,啊哈哈哈哈哈。

另外,《如果有一天我变得很有钱》,然后故作谦虚的说金钱不是一切。

3.2 专业能力

业务

主机安全方面,在广度上,涉猎的面很广,比如:

  • 资产清点、合规检测
  • 漏洞检测、补丁修复
  • 入侵检测
  • 账号安全
  • Web 蜜罐
  • API 网关

当然都是在广度上,交流、聊天自信还是能忽悠不熟悉这行的人的,啊哈哈哈哈哈。深度上涉猎不多,比如设计到网络层的入侵检测、涉及内核层的进程等。

技术向善,安全人都是善良人,赞美下自己。

开发

再说老本行,前端,深度有点拉下了,还是得紧跟潮流,继续卷?卷卷卷!!!前端可以继续卷的方向:

  • 音频、视频
  • 图像图像处理
  • 可视化,2D、3D 动画

后台吧,没吃猪弱也见过猪跑。检索引擎、消息队列、容器这些哇,耳濡目染之下,多多少少了解些,暂时不考虑深度了,会用就行。等有需要了,再去详细学习吧。

内核层 API 操作,这个就先算了,短期不考虑、或许长期也不考虑...

管理

这两年也陆陆续续地主导项目,需求啊、WBS 啊、沟通啊、交付啊、复盘啊都有意、无意的实践这些,接下来有时间可以系统的看下 PMP,增加自己的底蕴。

四、总结

创业需要很大的勇气,努力是基本素质、失败是起步,不要盲目创业,创业需慎重。

打工时只需要考虑任务如何完成,创业后,需要自己找任务做。有事情做的日子很忙,没事儿做时很焦虑。

焦虑呢,无解,多走走、多看看,自己瞎溜达下吧,情绪呢就自我消化吧。

啊,都看到这里啦,打个广告噻。有兴趣了解我们正在做的事情的话,请访问 https://www.bitsnav.com/ 获取更多信息。


目前一个 loser,我随便写写,诸君随便看看就行。

',97),r=[t];function p(h,n,d,s,c,u){return l(),e("div",null,r)}const q=a(i,[["render",p]]);export{_ as __pageData,q as default}; diff --git "a/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.lean.js" "b/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.lean.js" new file mode 100644 index 0000000..cc75076 --- /dev/null +++ "b/docs/assets/date_202210_\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.md.C7iCUvCt.lean.js" @@ -0,0 +1 @@ +import{_ as a,c as e,o as l,a2 as o}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"两年创业的得与失","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202210/两年创业的得与失.md","filePath":"date/202210/两年创业的得与失.md","lastUpdated":null}'),i={name:"date/202210/两年创业的得与失.md"},t=o("",97),r=[t];function p(h,n,d,s,c,u){return l(),e("div",null,r)}const q=a(i,[["render",p]]);export{_ as __pageData,q as default}; diff --git "a/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.js" "b/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.js" new file mode 100644 index 0000000..e01ee03 --- /dev/null +++ "b/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.js" @@ -0,0 +1 @@ +import{_ as l,c as a,o as i,a2 as e}from"./chunks/framework.aTtkxbT6.js";const m=JSON.parse('{"title":"巷子里的酒香","description":"","frontmatter":{},"headers":[],"relativePath":"date/202210/巷子里的酒香.md","filePath":"date/202210/巷子里的酒香.md","lastUpdated":null}'),t={name:"date/202210/巷子里的酒香.md"},o=e('

巷子里的酒香

最近准备换个住所,一开始在发愁怎么找房源。可行的方案:

  1. 周六日沿着地铁线、公交线,自己去公寓、城中村、一手房东找房子。
  2. 朋友推荐
  3. 联系中介,靠中介推荐

方案一嘞,疫情管控,不敢瞎逛。卒。

方案二嘞,朋友住的公寓,不是自己喜欢的风格。卒

所以,选方案三了。联系中介了,但是找中介也是个技术活,没点技术,都不知道中介门朝哪里开。

中介

街边经常看到链家、乐友家等房产中介,一般也提供租房服务,但是嘞有限制:

  1. 需要我在街边一家一家找中介。
  2. 大部分房产中介,要收中介费。

所以嘞,一懒二穷的咱,立马放弃这个实施方案。啊哈哈哈哈哈哈。

自媒体

本着闲置物二次利用,到咸鱼挂闲置的家电。偶热间发现有人在挂转租房,麻溜地联系卖家,聊下后才发现竟然是租房中介。这叫啥,柳暗花明一村哇,正愁着怎么找中介嘞,这下子妥了。

然后就是中介大哥带着去现场看房,中介大哥挺善谈,交谈中了解到他们会在快手、抖音、视频号、小红书这些平台发布租房信息。关键字一敲,一堆的中介大哥为你介绍房源。当时那个心情哇,瞬间感觉自己老古董了~_~

抖音、快手天南海北的打广告,小红书安利各种美景美食,然,几乎没用过。一般都是过年时,帮亲朋好友点个链接啥的,对这些应用的认知一直停留在随手拍、分享日常生活等等,带有点偏见的意思。

巷子中的酒

跟随着五六位中介去看房子,这个过程中发现有些房源是重复的。房东会把房间委托给几家不同的中介,再由中介对外出租。走动过程中会发现这么一个现象,靠近远离公交站台、地铁口的房间的装修,普遍比靠近交通枢纽的更好,价格也更低一些。但是,藏在深巷中的房源被选中的概率远低于直接暴露在外面的房间。

人靠衣装马靠鞍,第一眼被曝光的总会比深藏不露的更会被选中。

当然,还有句话说,是金子总会发光的。想发光也得先遇见光,深埋万丈深渊,还是能发光嘞。说句不好听的,一块破抹布遮在金子上,只要不遇见贵人,永远发不了光。

在抬抬杠,也有句话说,内涵比外表重要。这话在理,但是嘞,在外表上就被人直接 PASS 了,谁给你机会去展露内涵呢。

以前的时代呐,想喝口好酒,人呐会一个一个巷子去找,一款一款的对比,所以嘞酒香不怕巷子深;现在呐,再好的酒商家不主动增加曝光度,百度一下没看见你,完犊子了。

产品

时代在变、市场在变,人们的生活方式也在变,产品需要适应人,不再是人适应产品了。好的产品也是需要主动地、积极地刷刷自己的存在感,增加曝光度。第一步迈出去了,才有机会让人了解优秀的内涵。

呐,说到这里。给公司打打广告,主营 ToB 业务。主要产品:

  • 主机安全
    • 安全运维能力
    • 漏洞检测与管理
    • 安全态势可视化
    • 数据采集和分析能力
    • 运行保护
    • 安全体系建设
  • CWPP 和容器安全
    • 安全运维能力
    • 漏洞与合规
    • 运行保护
  • 账号安全
    • 账号集中管理
    • 访问控制策略集中管理
    • 弱密码管理

更多详情请访问官网:https://www.bitsnav.com/

',25),r=[o];function p(n,s,d,_,h,c){return i(),a("div",null,r)}const f=l(t,[["render",p]]);export{m as __pageData,f as default}; diff --git "a/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.lean.js" "b/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.lean.js" new file mode 100644 index 0000000..54cc57b --- /dev/null +++ "b/docs/assets/date_202210_\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.md.bDAoNLL8.lean.js" @@ -0,0 +1 @@ +import{_ as l,c as a,o as i,a2 as e}from"./chunks/framework.aTtkxbT6.js";const m=JSON.parse('{"title":"巷子里的酒香","description":"","frontmatter":{},"headers":[],"relativePath":"date/202210/巷子里的酒香.md","filePath":"date/202210/巷子里的酒香.md","lastUpdated":null}'),t={name:"date/202210/巷子里的酒香.md"},o=e("",25),r=[o];function p(n,s,d,_,h,c){return i(),a("div",null,r)}const f=l(t,[["render",p]]);export{m as __pageData,f as default}; diff --git "a/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.js" "b/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.js" new file mode 100644 index 0000000..8721cc5 --- /dev/null +++ "b/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o as l,a2 as t}from"./chunks/framework.aTtkxbT6.js";const H=JSON.parse('{"title":"HTTP 发展史","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/HTTP发展史.md","filePath":"date/202211/HTTP发展史.md","lastUpdated":null}'),i={name:"date/202211/HTTP发展史.md"},T=t('

HTTP 发展史

HTTP/0.9

HTTP/0.9,有时也叫做单行(one-line)协议。它是在现有的 TCP 和 IP 协议基础之上建立,协议由四个部分组成:

  • 一个用来表示超文本文档的文本格式,超文本标记语言(HTML)。
  • 一个用来交换超文本文档的简单协议,超文本传输协议(HTTP)。
  • 一个显示(以及编辑)超文本文档的客户端,即网络浏览器。第一个网络浏览器被称为 WorldWideWeb。
  • 一个服务器用于提供可访问的文档,即 httpd 的前身。

HTTP/0.9 极其简单:请求由单行指令构成,没有版本号。示例:

bash
GET /example.html

HTTP/1.0

HTTP/0.9的基础上进行扩展:

  • 每个请求中携带协议版本号(GET /example.html HTTP/1.0
  • 状态码会在响应开始时发送,使浏览器能了解请求执行成功或失败,并相应调整行为(如更新或使用本地缓存)。
  • 引入了HTTP headers的概念,无论是对于请求还是响应,允许传输元数据,使协议变得非常灵活,更具扩展性。
  • 在新HTTP headers的帮助下,具备了传输除纯文本 HTML 文件以外其他类型文档的能力(凭借 Content-Type 头)。

HTTP/1.1

HTTP/1.0 多种不同的实现方式在实际运用中显得有些混乱,HTTP/1.1 消除了大量歧义内容并引入了多项改进:

  • 连接可以复用,节省了多次打开 TCP 连接加载网页文档资源的时间。
  • 增加管线化技术,允许在第一个应答被完全发送之前就发送第二个请求,以降低通信延迟。
  • 支持响应分块。
  • 引入额外的缓存控制机制。
  • 引入内容协商机制,包括语言,编码,类型等,并允许客户端和服务器之间约定以最合适的内容进行交换。
  • 凭借 Host 头,能够使不同域名配置在同一个 IP 地址的服务器上。

HTTP/2

HTTP/2 在 HTTP/1.1 有几处基本的不同:

  • HTTP/2 是二进制协议而不是文本协议。不再可读,也不可无障碍的手动创建,改善的优化技术现在可被实施。
  • 这是一个复用协议。并行的请求能在同一个链接中处理,移除了 HTTP/1.x 中顺序和阻塞的约束。
  • 压缩了 headers。因为 headers 在一系列请求中常常是相似的,其移除了重复和传输重复数据的成本。
  • 其允许服务器在客户端缓存中填充数据,通过一个叫服务器推送的机制来提前请求。

HTTP3

HTTP3 本质不是对 HTTP 协议本身的改进,它主要是集中在如何提高传输效率。

  • HTTP3 使用 stream 进一步扩展了 HTTP2 的多路复用。在 HTTP3 模式下,一般传输多少个文件就会产生对应数量的 stream。当这些文件中的其中一个发生丢包时,你只需要重传丢包文件的对应 stream 即可。
  • HTTP3 不再是基于 TCP 建立的,而是通过 UDP 建立,在用户空间保证传输的可靠性,相比 TCP,UDP 之上的 QUIC 协议提高了连接建立的速度,降低了延迟。
  • 通过引入 Connection ID,使得 HTTP3 支持连接迁移以及 NAT 的重绑定。
  • HTTP3 含有一个包括验证、加密、数据及负载的 built-in 的 TLS 安全机制。
  • 拥塞控制。TCP 是在内核区实现的,而 HTTP3 将拥塞控制移出了内核,通过用户空间来实现。这样做的好处就是不再需要等待内核更新可以实现很方便的进行快速迭代。
  • 头部压缩。HTTP2 使用的 HPACK,HTTP3 更换成了兼容 HPACK 的 QPACK 压缩方案。QPACK 优化了对乱序发送的支持,也优化了压缩率。
',18),o=[T];function s(d,h,P,r,n,c){return l(),a("div",null,o)}const u=e(i,[["render",s]]);export{H as __pageData,u as default}; diff --git "a/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.lean.js" "b/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.lean.js" new file mode 100644 index 0000000..784c2f2 --- /dev/null +++ "b/docs/assets/date_202211_HTTP\345\217\221\345\261\225\345\217\262.md.C9vDJO0C.lean.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o as l,a2 as t}from"./chunks/framework.aTtkxbT6.js";const H=JSON.parse('{"title":"HTTP 发展史","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/HTTP发展史.md","filePath":"date/202211/HTTP发展史.md","lastUpdated":null}'),i={name:"date/202211/HTTP发展史.md"},T=t("",18),o=[T];function s(d,h,P,r,n,c){return l(),a("div",null,o)}const u=e(i,[["render",s]]);export{H as __pageData,u as default}; diff --git "a/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.js" "b/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.js" new file mode 100644 index 0000000..40d589c --- /dev/null +++ "b/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.js" @@ -0,0 +1,43 @@ +import{_ as s,c as i,o as a,a2 as t}from"./chunks/framework.aTtkxbT6.js";const F=JSON.parse('{"title":"HTTP 速查手册","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/HTTP手册.md","filePath":"date/202211/HTTP手册.md","lastUpdated":null}'),n={name:"date/202211/HTTP手册.md"},h=t(`

HTTP 速查手册

一、通用身份验证

bash
# 服务端返回401,并告知验证类型为Basic
+GET 401 Unauthorized
+WWW-Authenticate: Basic realm="description"
+
+# 浏览器输入验证信息后,请求头中携带验证信息
+Authorization: Basic xxxxxxxxxx

二、Cookie

bash
# 服务端返回set-cookie
+set-cookie: name=xxxxx
+set-cookie: age=xxxxx
+
+# 用户代理记录Cookie,并在下次请求时携带Cookie
+Cookie: name=xxxxx; age=xxxxx

三、永久重定向

bash
# 状态码配置为301
+
+GET 301
+Location: http://example.com

四、临时重定向

bash
# 状态码配置为302
+
+GET 302
+Location: http://example.com

五、HTML 重定向

html
<!-- 通过HTML标签实现重定向 -->
+
+<meta http-equiv="Refresh" content="0; URL=http://example.com/" />
js
// 通过JS实现重定向
+
+window.location = "http://example.com/";

六、访问控制策略

js
// headers配置
+
+// 允许所有来源
+Access-Control-Allow-Origin: *
+// 允许所有方法
+Access-Control-Allow-Methods: *
+// 允许所有Headers
+Access-Control-Allow-Headers: *
+// 响应的有效时间为 86400 秒,也就是 24 小时。在有效时间内,浏览器无须为同一请求再次发起预检请求。
+Access-Control-Max-Age: 86400

七、HTTP 缓存

混存的种类:

  • 私有缓存。eg:浏览器
  • 共享缓存
    • 代理缓存。eg:代理设备(Nginx 代理)
    • 托管缓存。eg:反向代理、CDN 和 service worker 与缓存 API 的组合。

7.1 Cache-Control

Response:

valuedescription
private数据可以被私有缓存存储(eg:浏览器)
public数据可以被共享缓存存储 (eg:代理缓存、托管缓存)
no-cache相应的数据可以被缓存,但之后的每次请求需要向源服务端做文件有效性校验
no-store任何种类的缓存(私有缓存、共享缓存)都不应缓存数据
max-age=0不直接使用本地缓存,需向目标服务端做新鲜度
must-revalidate缓存未过期时,可以直接使用;过期后,需要向源服务端做文件有效性校验
proxy-revalidate等价于must-revalidate ,但仅共享缓存有效

Request

valuedescription
no-cache要求缓存做新鲜度校验
no-store即使源服务端的响应,可以被缓存,也不应该缓存
max-age客户端告诉服务端,客户端允许的最大缓存时长(秒)

7.2 验证响应

基于文件最后更新时间

Last-Modified / If-Modified-Since

基于正文内容 Hash

ETag / If-None-Match

强制重新验证

方式一:

Cache-Control: no-cache

方式二:

Cache-Control: max-age=0, must-revalidate

八、范围请求

STEP 1:检测是否支持范围请求

bash
curl -I http://example.com
+
+# 若支持范围请求,则Headers中存在Accept-Ranges、Content-Length
+HTTP/1.1 200 OK
+...
+Accept-Ranges: bytes
+Content-Length: 146515

Accept-Ranges字段存在,且值非none,则支持范围请求。

STEP 2:发送范围请求

bash
curl http://exmaple.com/test.jpg -i -H "Range: bytes=0-1023"
+
+# 响应头
+HTTP/1.1 206 Partial Content
+Content-Range: bytes 0-1023/146515
+Content-Length: 1024
+...
+(binary content)
`,38),e=[h];function l(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(n,[["render",l]]);export{F as __pageData,y as default}; diff --git "a/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.lean.js" "b/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.lean.js" new file mode 100644 index 0000000..29e6ca1 --- /dev/null +++ "b/docs/assets/date_202211_HTTP\346\211\213\345\206\214.md.B8aTL1Y2.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as t}from"./chunks/framework.aTtkxbT6.js";const F=JSON.parse('{"title":"HTTP 速查手册","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/HTTP手册.md","filePath":"date/202211/HTTP手册.md","lastUpdated":null}'),n={name:"date/202211/HTTP手册.md"},h=t("",38),e=[h];function l(p,k,d,r,o,c){return a(),i("div",null,e)}const y=s(n,[["render",l]]);export{F as __pageData,y as default}; diff --git a/docs/assets/date_202211_Observer.md.Dh59ogQI.js b/docs/assets/date_202211_Observer.md.Dh59ogQI.js new file mode 100644 index 0000000..317b5ff --- /dev/null +++ b/docs/assets/date_202211_Observer.md.Dh59ogQI.js @@ -0,0 +1,46 @@ +import{_ as s,c as i,o as a,a2 as e}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"DOM Observer","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/Observer.md","filePath":"date/202211/Observer.md","lastUpdated":null}'),n={name:"date/202211/Observer.md"},t=e(`

DOM Observer

一些比较方便的 DOM 监测的 API。

一个 Observer 实例具备的实例方法:

  • observe。向监听的目标集合添加一个元素。
  • unobserve。停止对一个元素的观察。
  • disconnect。终止对所有目标元素的观察。
  • ...

一、IntersectionObserver

提供了一种异步检测目标元素与祖先元素或视口相交情况变化的方法。

示例,检测目标元素与浏览器视窗是否完全相交:

js
// 定义一个Observer
+let options = {
+  root: null, // document.querySelector("#parent")
+  rootMargin: "0px",
+  threshold: 1.0, // [0, 0.25, 0.5, 0.75, 1]
+};
+let observer = new IntersectionObserver(callback, options);
+
+// 使用用Observer监测目标元素
+let target = document.querySelector("#target");
+observer.observe(target);

ResizeObserver Constructor

new ResizeObserver(callback),构造器接收两个参数:

callback。回掉函数,当检测到相交时触发

options。配置相交规则

  • root。指定与目标元素进行比对的父元素
    • 当值为 null,则认为是浏览器视窗。
    • 值为 HTMLElement
  • rootMargin。外边距。
  • threshold。指定callback触发的时机
    • 值为数组,如 0.5,即可见程度为 50% 时触发一次回调。
    • 值为数组时,如[0, 0.25, 0.5, 0.75, 1],即可见程度每多 25% 就触发一次回调。

使用场景

  • 图片懒加载——当图片滚动到可见时才进行加载
  • 内容无限滚动——也就是用户滚动到接近内容底部时直接加载更多,而无需用户操作翻页,给用户一种网页可以无限滚动的错觉
  • 检测广告的曝光情况——为了计算广告收益,需要知道广告元素的曝光情况
  • 在用户看见某个区域时执行任务或播放动画

二、ResizeObserver

Resize Observer API 提供了一种高性能的机制,通过该机制,代码可以监视元素的大小更改,并且每次大小更改时都会向观察者传递通知。

示例,监控两个元素的大小变化:

html
<div id="box">
+  <div id="inner"></div>
+</div>
js
const box = document.querySelector("#box");
+const inner = document.querySelector("#inner");
+
+const observer = new ResizeObserver((entries, observer) => {
+  console.log(entries);
+  console.log(observer);
+});
+observer.observe(box);
+observer.observe(inner);

ResizeObserver Constructor

new ResizeObserver(callback),构造器接收的 callback 接收两个参数:

  • entries。一个ResizeObserverEntry对象数组,可以用于获取每个元素改变后的新尺寸。
  • observer。观察者对象自身

使用场景

  • 媒体适配优化
  • 自适应布局
  • 窗口变化监测
  • REM 重置

三、PerformanceObserver

用于监测性能度量事件,在浏览器的性能时间轴记录新的 performance entry 的时候将会被通知。

示例:

js
function perf_observer(list, observer) {
+  // Process the "measure" event
+  // 处理 "measure" 事件
+}
+var observer = new PerformanceObserver(perf_observer);
+observer.observe({ entryTypes: ["measure"] });

PerformanceObserver Constructor

new PerformanceObserver(callback),构造器接收的 callback 接收两个参数:

支持的性能观察列表

使用代码PerformanceObserver.supportedEntryTypes检测浏览器支持的类型。

js
// chrome中执行Code,查看输出结果
+
+PerformanceObserver.supportedEntryTypes;
+// ['back-forward-cache-restoration', 'element', 'event', 'first-input', 'largest-contentful-paint', 'layout-shift', 'longtask', 'mark', 'measure', 'navigation', 'paint', 'resource', 'visibility-state']

使用场景

LCP(Largest Contentful Paint),最大内容绘制

js
const observer = new PerformanceObserver((list) => {
+  let perfEntries = list.getEntries();
+  console.log(perfEntries);
+});
+observer.observe({
+  entryTypes: ["largest-contentful-paint", "longtask"],
+});

四、MutationObserver

MutationObserver 接口提供了监视对 DOM 树所做更改的能力。它被设计为旧的 Mutation Events 功能的替代品,该功能是 DOM3 Events 规范的一部分。

示例,检测目标元素的属性、子节点、所有后代节点的变化:

js
const observer = new MutationObserver(function (mutationsList, observer) {
+  for (let mutation of mutationsList) {
+    console.log(mutation.type, "changed");
+  }
+});
+
+const targetNode = document.getElementById("box");
+observer.observe(targetNode, {
+  attributes: true,
+  childList: true,
+  subtree: true,
+});

MutationObserver Constructor

new MutationObserver(callback),构造器接收的 callback 接收两个参数:

  • mutationsList。所有被触发改动的 MutationRecord 对象数组
  • observer。观察者对象自身

支持观测类型:

  • subtree。当为 true 时,将会监听以 target 为根节点的整个子树。包括子树中所有节点的属性,而不仅仅是针对 target。
  • childList。当为 true 时,监听 target 节点中发生的节点的新增与删除(同时,如果 subtree 为 true,会针对整个子树生效)。
  • attributes。当为 true 时观察所有监听的节点属性值的变化。
  • attributeFilter。一个用于声明哪些属性名会被监听的数组。如果不声明该属性,所有属性的变化都将触发通知。
  • attributeOldValue。当为 true 时,记录上一次被监听的节点的属性变化;
  • characterData。当为 true 时,监听声明的 target 节点上所有字符的变化。
  • characterDataOldValue。当为 true 时,记录前一个被监听的节点中发生的文本变化。

五、ReportingObserver

处于实验阶段的 API。用于收集、访问报告。

链接

`,51),l=[t];function r(h,p,k,E,o,d){return a(),i("div",null,l)}const y=s(n,[["render",r]]);export{c as __pageData,y as default}; diff --git a/docs/assets/date_202211_Observer.md.Dh59ogQI.lean.js b/docs/assets/date_202211_Observer.md.Dh59ogQI.lean.js new file mode 100644 index 0000000..d74cf60 --- /dev/null +++ b/docs/assets/date_202211_Observer.md.Dh59ogQI.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as e}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"DOM Observer","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/Observer.md","filePath":"date/202211/Observer.md","lastUpdated":null}'),n={name:"date/202211/Observer.md"},t=e("",51),l=[t];function r(h,p,k,E,o,d){return a(),i("div",null,l)}const y=s(n,[["render",r]]);export{c as __pageData,y as default}; diff --git "a/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.js" "b/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.js" new file mode 100644 index 0000000..0b0c5c9 --- /dev/null +++ "b/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o as l,a2 as o}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"Web 蜜罐","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/Web蜜罐.md","filePath":"date/202211/Web蜜罐.md","lastUpdated":null}'),r={name:"date/202211/Web蜜罐.md"},t=o('

Web 蜜罐

一、蜜罐概述

1.1 蜜罐的定义

蜜罐是一个安全资源,它的价值在于被探测、攻击和损害。合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。

1.2 蜜罐的安全问题

对蜜罐的不当使用,可能会涉及一些法律问题。

  1. 设陷技术

设陷技术关系到设置这台蜜罐的管理员的技术,一台设置不周全或者隐蔽性不够的蜜罐会被入侵者轻易识破或者破坏,由此导致的后果将十分严重。

  1. 隐私问题

蜜罐属于记录设备,所以它有可能会牵涉到隐私权问题。

  1. 责任问题

若蜜罐被入侵者成功破坏了,且被当作肉鸡攻击互联网的设备,会存在法律责任问题。

也就是说,一般会给每个蜜罐打上这样的标语:“使用该系统的任何人同意自己的行为受到监控,并透露给其他人,包括执法人员。”

1.3 蜜罐的分类

一般可以按照交互类型蜜罐作用点对蜜罐的种类进行划分。

1.3.1 按照交互类型进行划分

低交互蜜罐,特点:

  • 低交互式蜜罐使用的资源较少,收集有关威胁的级别和类型以及威胁来源的基本信息。
  • 它们的设置简单快捷,通常只需模拟一些基本的 TCP 和 IP 协议以及网络服务。
  • 但是蜜罐中没有任何内容可以让攻击者长时间交互,您不会获得有关他们的习惯或复杂威胁的深入信息。

高交互蜜罐,特点:

  • 旨在使黑客在蜜罐内花费尽可能多的时间,从而提供有关他们的意图和目标以及他们正在利用的漏洞和所用作案手法的大量信息。
  • 可以将其视为添加了“胶水”的蜜罐 - 可以让攻击者花费更长时间交互的数据库、系统和进程。
  • 这使得研究人员能够跟踪攻击者在系统中的哪些位置查找敏感信息,他们使用哪些工具来提权,或者利用哪些漏洞来破坏系统。

纯蜜罐,特点:

纯蜜罐和真实业务系统功能上一致,但是会在其外部加入监测记录功能。

1.3.2 按照作用点划分

  • 应用层蜜罐
  • 网络蜜罐
  • 主机蜜罐
  • 设备蜜罐

1.4 优劣势

1.4.1 优势

误报少

正常情况下,一个真正的用户是不会主动访问蜜罐的。话句话说,所有被蜜罐抓取到 IP 地址,都是可疑 IP。这一点,与传统的入侵检测系统 (IDS) 形成鲜明对比。

资源消耗少

由于蜜罐处理的流量非常有限,它们也非常节省资源。

观察攻击模式

蜜罐可以提供有关威胁如何进化的可靠情报。

捕获内部威胁

威胁不一定仅来自互联网,也能是内部网络,可以捕获内部威胁。

1.4.2 劣势

指纹固定

一旦蜜罐被“采指纹”,攻击者便可以进行欺骗性攻击以转移注意力,而以真正的生产系统为目标进行攻击。

跳板

一个被攻陷的蜜罐可以用作进一步入侵的踏板。

二、Web 蜜罐

2.1 概念

Web 蜜罐按照作用点归类属于应用层蜜罐

在 Web 安全攻防对抗中,攻击模式一般分为两种:非定向 Web 攻击定向 Web 攻击

非定向 Web 攻击

  • 通常由自动化脚本发起攻击,人为参与低。
  • 应对这种攻击,低交互蜜罐足以应对。
  • 蜜罐部署上,蜜罐部署在公网。

定向 Web 攻击

  • 攻击多由攻击者亲身参与,攻击目标明确。
  • 应对这种攻击,使用高交互蜜罐,足够真实。
  • 蜜罐部署上,部署在组织的防火墙后面。

2.2 开源蜜罐

在 Web 应用开发领域有一种著名的架构模式叫做 MVC,它将 Web 应用系统分为模型层(Model)、控制器层(Controller)和视图层(View)。

2.2.1 视图层蜜罐

视图层蜜罐技术指的是诱骗或监测发生在视图层及以上的技术形态,主要表现为各类具有模拟功能的低交互 Web 蜜罐记录 HTTP 流量类型的纯蜜罐Web 中间件类型蜜罐反向代理类型蜜罐等。

  • Glastopf。低交互 Web 蜜罐,它通过各种 Web 漏洞类型模拟器模拟各类 Web 漏洞。
  • HFish 蜜罐平台。基于 Nginx 中间件开发的插件,可以实现将任意站点转化为蜜罐。

2.2.2 控制器层蜜罐技术

控制器层蜜罐技术的诱骗或监测发生在视图层之下、数据层之上,主要包括各类高交互 Web 蜜罐网站影子系统等。

  • HIHAT 可以将现有的 PHP 应用转化为一个高交互蜜罐。

2.2.3 数据层蜜罐技术

数据层蜜罐技术偏向于数据层面的诱骗和监测,主要包括数据库蜜罐数据蜜饵等。

  • NoSQLpot 是一个 NoSQL 蜜罐框架。

三、思考

开源的蜜罐,一般都意味着它的指纹是固定的、或可以被枚举的,很容易被攻击者识别。

若一个组织自己做一套仿真蜜罐,需要投入人员、开发资源、部署资源等,代价较大。

做好一个优秀的低交互 Web 蜜罐的难点:

  • 指纹问题。为应对非定向 Web 攻击,可否通过一种随机算法,动态生成一个低交互蜜罐。
  • 仿真问题。为应对定向 Web 攻击,蜜罐需要以假乱真,肉眼看起来像是一个真正的业务系统。
  • 部署问题。一个组织需要多套蜜罐系统,尽可能的部署简单、资源能耗少。

四、文献

',65),i=[t];function d(h,n,c,p,s,b){return l(),a("div",null,i)}const q=e(r,[["render",d]]);export{_ as __pageData,q as default}; diff --git "a/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.lean.js" "b/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.lean.js" new file mode 100644 index 0000000..a6b1f0b --- /dev/null +++ "b/docs/assets/date_202211_Web\350\234\234\347\275\220.md.DzeiCwCE.lean.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o as l,a2 as o}from"./chunks/framework.aTtkxbT6.js";const _=JSON.parse('{"title":"Web 蜜罐","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/Web蜜罐.md","filePath":"date/202211/Web蜜罐.md","lastUpdated":null}'),r={name:"date/202211/Web蜜罐.md"},t=o("",65),i=[t];function d(h,n,c,p,s,b){return l(),a("div",null,i)}const q=e(r,[["render",d]]);export{_ as __pageData,q as default}; diff --git "a/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.js" "b/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.js" new file mode 100644 index 0000000..bb54654 --- /dev/null +++ "b/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.js" @@ -0,0 +1,66 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"中断请求","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/中断HTTP请求.md","filePath":"date/202211/中断HTTP请求.md","lastUpdated":null}'),l={name:"date/202211/中断HTTP请求.md"},h=n(`

中断请求

XHR

js
const xhr = new XMLHttpRequest();
+addListeners(xhr);
+xhr.open("GET", url);
+xhr.send();
+
+// 中止请求
+xhr.abort();

fetch

中止 fetch 的请求

AbortController

使用AbortController创建一个信号,自主控制请求的中止。

js
const controller = new AbortController();
+const signal = controller.signal;
+
+fetch(url, { signal })
+  .then((response) => {
+    console.log("Download complete", response);
+  })
+  .catch((err) => {
+    console.error(\`Download error: \${err.message}\`);
+  });
+
+// 中止请求
+controller.abort();

AbortSignal

使用AbortSignal创建一个超时信号

js
try {
+  const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
+} catch (err) {
+  if (err.name === "TimeoutError") {
+    // ...
+  } else if (err.name === "AbortError") {
+    // ...
+  } else if (err.name === "TypeError") {
+    // AbortSignal.timeout() method is not supported
+  } else {
+    // A network error, or some other problem.
+    console.error(\`Error: type: \${err.name}, message: \${err.message}\`);
+  }
+}

Axios

AbortController

从 v0.22.0 开始,Axios 支持以 fetch API 方式—— AbortController 中止请求:

js
const controller = new AbortController();
+const signal = controller.signal;
+
+axios.get("/foo/bar", { signal }).then(function (response) {
+  //...
+});
+
+// 中止请求
+controller.abort();

CancelToken deprecated

您还可以使用 cancel token 取消一个请求。

  • Axios 的 cancel token API 是基于被撤销 cancelable promises proposal。
  • 此 API 从 v0.22.0 开始已被弃用,不应在新项目中使用。

可以使用 CancelToken.source 工厂方法创建一个 cancel token ,如下所示:

js
const CancelToken = axios.CancelToken;
+const source = CancelToken.source();
+
+axios
+  .get("/user/12345", {
+    cancelToken: source.token,
+  })
+  .catch(function (thrown) {
+    if (axios.isCancel(thrown)) {
+      console.log("Request canceled", thrown.message);
+    } else {
+      // 处理错误
+    }
+  });
+
+axios.post(
+  "/user/12345",
+  {
+    name: "new name",
+  },
+  {
+    cancelToken: source.token,
+  }
+);
+
+// 取消请求(message 参数是可选的)
+source.cancel("Operation canceled by the user.");
`,20),t=[h];function k(p,e,E,r,d,o){return a(),i("div",null,t)}const y=s(l,[["render",k]]);export{c as __pageData,y as default}; diff --git "a/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.lean.js" "b/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.lean.js" new file mode 100644 index 0000000..5c5b95f --- /dev/null +++ "b/docs/assets/date_202211_\344\270\255\346\226\255HTTP\350\257\267\346\261\202.md.Dzb60jKW.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"中断请求","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202211/中断HTTP请求.md","filePath":"date/202211/中断HTTP请求.md","lastUpdated":null}'),l={name:"date/202211/中断HTTP请求.md"},h=n("",20),t=[h];function k(p,e,E,r,d,o){return a(),i("div",null,t)}const y=s(l,[["render",k]]);export{c as __pageData,y as default}; diff --git a/docs/assets/date_202212_typescript concept.md.CCoBvouL.js b/docs/assets/date_202212_typescript concept.md.CCoBvouL.js new file mode 100644 index 0000000..42324d8 --- /dev/null +++ b/docs/assets/date_202212_typescript concept.md.CCoBvouL.js @@ -0,0 +1,56 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const y=JSON.parse('{"title":"TypeScript Concept","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202212/typescript concept.md","filePath":"date/202212/typescript concept.md","lastUpdated":null}'),p={name:"date/202212/typescript concept.md"},t=n(`

TypeScript Concept

一、类型系统

TypeScriptJavaScript的超集,支持JavaScript所有特性。

二、定义类型

ts
interface User {
+  name: string;
+  id: number;
+}

三、联合组合(union type)

ts
type MyBool = true | false;

范型(generic type)

ts
type StringArray = Array<string>;
+
+interface Backpack<Type> {
+  add: (obj: Type) => void;
+  get: () => Type;
+}

四、结构类型系统

TS 中检查两个类型是否相同,仅比对结构(shape)是否相同,示例:

ts
interface PointA {
+  x: number;
+  y: number;
+}
+
+interface PointB {
+  x: number;
+  y: number;
+}
+
+// PointA、PointB是完全相同的两个类型

五、typeinterface的差异

typeinterface非常相似,大多数情况下,可以任意使用。唯一的区别是,前者不能再添加新的属性,后者可以随意扩展。

5.1 继承

interface 的实现

ts
interface Animal {
+  name: string;
+}
+
+interface Bear extends Animal {
+  honey: boolean;
+}
+
+const bear = getBear();
+bear.name;
+bear.honey;

type 的实现

ts
type Animal = {
+  name: string;
+};
+
+type Bear = Animal & {
+  honey: boolean;
+};
+
+const bear = getBear();
+bear.name;
+bear.honey;

5.2 扩展新属性

interface 的实现

ts
interface Window {
+  title: string;
+}
+
+interface Window {
+  ts: TypeScriptAPI;
+}
+
+const src = 'const a = "Hello World"';
+window.ts.transpileModule(src, {});

type 不支持扩展

ts
type Window = {
+  title: string;
+};
+
+type Window = {
+  ts: TypeScriptAPI;
+};
+
+// Error: Duplicate identifier 'Window'.
`,24),h=[t];function l(e,k,r,d,E,g){return a(),i("div",null,h)}const o=s(p,[["render",l]]);export{y as __pageData,o as default}; diff --git a/docs/assets/date_202212_typescript concept.md.CCoBvouL.lean.js b/docs/assets/date_202212_typescript concept.md.CCoBvouL.lean.js new file mode 100644 index 0000000..f48651e --- /dev/null +++ b/docs/assets/date_202212_typescript concept.md.CCoBvouL.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const y=JSON.parse('{"title":"TypeScript Concept","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202212/typescript concept.md","filePath":"date/202212/typescript concept.md","lastUpdated":null}'),p={name:"date/202212/typescript concept.md"},t=n("",24),h=[t];function l(e,k,r,d,E,g){return a(),i("div",null,h)}const o=s(p,[["render",l]]);export{y as __pageData,o as default}; diff --git "a/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.js" "b/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.js" new file mode 100644 index 0000000..4491a08 --- /dev/null +++ "b/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.js" @@ -0,0 +1 @@ +import{_ as o,E as s,c as u,m as l,J as n,w as a,a as t,o as _}from"./chunks/framework.aTtkxbT6.js";const V=JSON.parse('{"title":"老友说《自我》","description":"","frontmatter":{},"headers":[],"relativePath":"date/202212/老友说.md","filePath":"date/202212/老友说.md","lastUpdated":null}'),r={name:"date/202212/老友说.md"},d=l("h1",{id:"老友说《自我》",tabindex:"-1"},[t("老友说《自我》 "),l("a",{class:"header-anchor",href:"#老友说《自我》","aria-label":'Permalink to "老友说《自我》"'},"​")],-1),c=l("p",null,"男人永不褪色的魅力,不是钱、不是家庭条件,是人品、是独立。",-1),p=l("p",null,"成熟的人要建立一套自己的评判实物的体系,不独立的人格是没有魅力的。",-1),i=l("p",null,"自己的世界一直是自己在主导,不要欺骗自己是受外物影响,承认自我、完善自我、实现精神跃迁。",-1),h=l("p",null,"自我决定上限,人与人的分水岭,不是物质,是精神。独立、自主地构思、泼墨自己的画卷。",-1),f=l("p",null,"试卷上的题目,解题、纠错、向前。走走、停停、看看、想想。",-1),m=l("p",null,"梧高凤必至,花香蝶自来。为自己画饼,自己是最好的哒。",-1);function g(x,N,$,k,v,B){const e=s("center");return _(),u("div",null,[d,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("魅力")]),_:1})])]),c,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("价值观")]),_:1})])]),p,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("自我")]),_:1})])]),i,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("上限")]),_:1})])]),h,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("修行")]),_:1})])]),f,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("画饼")]),_:1})])]),m])}const b=o(r,[["render",g]]);export{V as __pageData,b as default}; diff --git "a/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.lean.js" "b/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.lean.js" new file mode 100644 index 0000000..4491a08 --- /dev/null +++ "b/docs/assets/date_202212_\350\200\201\345\217\213\350\257\264.md.CVn-FR1Q.lean.js" @@ -0,0 +1 @@ +import{_ as o,E as s,c as u,m as l,J as n,w as a,a as t,o as _}from"./chunks/framework.aTtkxbT6.js";const V=JSON.parse('{"title":"老友说《自我》","description":"","frontmatter":{},"headers":[],"relativePath":"date/202212/老友说.md","filePath":"date/202212/老友说.md","lastUpdated":null}'),r={name:"date/202212/老友说.md"},d=l("h1",{id:"老友说《自我》",tabindex:"-1"},[t("老友说《自我》 "),l("a",{class:"header-anchor",href:"#老友说《自我》","aria-label":'Permalink to "老友说《自我》"'},"​")],-1),c=l("p",null,"男人永不褪色的魅力,不是钱、不是家庭条件,是人品、是独立。",-1),p=l("p",null,"成熟的人要建立一套自己的评判实物的体系,不独立的人格是没有魅力的。",-1),i=l("p",null,"自己的世界一直是自己在主导,不要欺骗自己是受外物影响,承认自我、完善自我、实现精神跃迁。",-1),h=l("p",null,"自我决定上限,人与人的分水岭,不是物质,是精神。独立、自主地构思、泼墨自己的画卷。",-1),f=l("p",null,"试卷上的题目,解题、纠错、向前。走走、停停、看看、想想。",-1),m=l("p",null,"梧高凤必至,花香蝶自来。为自己画饼,自己是最好的哒。",-1);function g(x,N,$,k,v,B){const e=s("center");return _(),u("div",null,[d,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("魅力")]),_:1})])]),c,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("价值观")]),_:1})])]),p,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("自我")]),_:1})])]),i,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("上限")]),_:1})])]),h,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("修行")]),_:1})])]),f,l("p",null,[l("strong",null,[n(e,null,{default:a(()=>[t("画饼")]),_:1})])]),m])}const b=o(r,[["render",g]]);export{V as __pageData,b as default}; diff --git "a/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.js" "b/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.js" new file mode 100644 index 0000000..1cacda1 --- /dev/null +++ "b/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.js" @@ -0,0 +1,5 @@ +import{_ as i,E as t,c as l,J as o,w as n,m as a,a as e,a2 as d,o as c}from"./chunks/framework.aTtkxbT6.js";const h="/assets/struct.Br_Nri3S.png",x=JSON.parse('{"title":"JavaScript 的内存管理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202301/js内存/readme.md","filePath":"date/202301/js内存/readme.md","lastUpdated":null}'),r={name:"date/202301/js内存/readme.md"},p=a("h1",{id:"javascript-的内存管理",tabindex:"-1"},[e("JavaScript 的内存管理 "),a("a",{class:"header-anchor",href:"#javascript-的内存管理","aria-label":'Permalink to "JavaScript 的内存管理"'},"​")],-1),k=a("p",null,"JavaScript 是一个弱类型的、动态语言,在执行一段 JS 代码时,需要经历编译、执行、内存回收阶段。",-1),E=a("h2",{id:"一、编译阶段",tabindex:"-1"},[e("一、编译阶段 "),a("a",{class:"header-anchor",href:"#一、编译阶段","aria-label":'Permalink to "一、编译阶段"'},"​")],-1),_=a("img",{src:h},null,-1),u=d(`

JS 代码执行时,会首先创建全局执行上下文、以及函数执行上下文,上下文的执行顺序按照栈的方式进行调用,所以也叫做函数调用栈

创建上下文时,会执行编译阶段,这一阶段会确定作用域,作用域确定了上下文有权限、且按一定的顺序访问的变量、函数。

进入一个上下文时,会经历变量环境的创建、初始化、赋值,这就导致了常见的变量提升问题。若是ES6环境时,还会额外多出词法环境,用于存储ES6的声明。

二、栈、堆

执行上下文存储于栈,引用对象存储于堆。

当遇见引用对象时,栈中存储的是对象在堆中的地址。所以会有这么一个现象:当将对象复制给一个变量时,修改另一个对象时,原对象的值也会发生变化。示例:

js
var a = { name: "xxx" };
+var b = a;
+b.name = "yyy";
+
+console.info(a); // {name: 'yyy'}

三、内存

JS 的内存分配是动态,不需要事先申请,同时内存也是自动释放、不需要手动释放。

占用的内存会随着上下文的执行结束而释放,占用的内存使用另一套机制。

V8 将堆空间分为两个区域:

  • 新生代。存放生存时间短的对象;空间小,一般1~8M
  • 老生代。存放生存时间久的对象;空间大。

通用的垃圾回收流程:

  1. 标记活动对象和非活动对象
  2. 清理非活动对象占据的内存
  3. 内存整理

3.1 新生代垃圾回收策略

采用 Scavenge 算法,基本原理:

  • 将空间对半分为对象区域和空闲区域
  • 当对象区域快满时,执行一次清理过程
  • 为对象区域的垃圾做标记,将存活的对象有序地、复制到到空闲区域,然后清空对象区域
  • 对象区域、空闲区域角色反转,等待下一次清理流程

备注:当经过两次垃圾回收依然还存活的对象,会被移动到老生代区域,即对象晋升策略

3.2 老生代垃圾回收策略

A. 策略

依然采用标记清除策略,标记存活对象,清除垃圾。

与新生代回收策略不同的是,不会分两个区域(对象区域、空闲区域)。所以,当清理垃圾后,存储空间不是连续的,需要执行整理过程。

B. 影响

垃圾回收器的执行是占用主线程的,即会阻塞JavaScript的执行,当垃圾回收执行结束,再恢复脚本执行。这种行为叫做全停顿(stop-the-world)

C. 优化

为了降低老生代的垃圾回收而造成的卡顿,V8 将标记过程分为一个个的子标记过程,同时让垃圾回收标记和 JavaScript 应用逻辑交替进行,直到标记阶段完成,我们把这个算法称为增量标记(Incremental Marking)算法

`,26);function m(g,b,y,f,v,q){const s=t("center");return c(),l("div",null,[p,k,E,o(s,null,{default:n(()=>[_]),_:1}),u])}const F=i(r,[["render",m]]);export{x as __pageData,F as default}; diff --git "a/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.lean.js" "b/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.lean.js" new file mode 100644 index 0000000..3327c5c --- /dev/null +++ "b/docs/assets/date_202301_js\345\206\205\345\255\230_readme.md.79MgituF.lean.js" @@ -0,0 +1 @@ +import{_ as i,E as t,c as l,J as o,w as n,m as a,a as e,a2 as d,o as c}from"./chunks/framework.aTtkxbT6.js";const h="/assets/struct.Br_Nri3S.png",x=JSON.parse('{"title":"JavaScript 的内存管理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202301/js内存/readme.md","filePath":"date/202301/js内存/readme.md","lastUpdated":null}'),r={name:"date/202301/js内存/readme.md"},p=a("h1",{id:"javascript-的内存管理",tabindex:"-1"},[e("JavaScript 的内存管理 "),a("a",{class:"header-anchor",href:"#javascript-的内存管理","aria-label":'Permalink to "JavaScript 的内存管理"'},"​")],-1),k=a("p",null,"JavaScript 是一个弱类型的、动态语言,在执行一段 JS 代码时,需要经历编译、执行、内存回收阶段。",-1),E=a("h2",{id:"一、编译阶段",tabindex:"-1"},[e("一、编译阶段 "),a("a",{class:"header-anchor",href:"#一、编译阶段","aria-label":'Permalink to "一、编译阶段"'},"​")],-1),_=a("img",{src:h},null,-1),u=d("",26);function m(g,b,y,f,v,q){const s=t("center");return c(),l("div",null,[p,k,E,o(s,null,{default:n(()=>[_]),_:1}),u])}const F=i(r,[["render",m]]);export{x as __pageData,F as default}; diff --git "a/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.js" "b/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.js" new file mode 100644 index 0000000..f2104b1 --- /dev/null +++ "b/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.js" @@ -0,0 +1 @@ +import{_ as l,c as a,o as e,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"浏览器原理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202301/浏览器原理.md","filePath":"date/202301/浏览器原理.md","lastUpdated":null}'),o={name:"date/202301/浏览器原理.md"},t=i('

浏览器原理

一、安全防范

1. XSS

跨站脚本攻击

1.1 攻击目的

多种可能的目的:

  • 收集用户在站点上的 Cookie 信息、storage 信息等,对这些信息二次利用,对用户造成损害。
  • 监听用户行为。比如通过 JavaScript 为添加监听键盘事件,窃取账户、密码等。
  • 修改 DOM 伪造假的登录窗口,欺骗用户输入用户名、密码。
  • 生成浮窗广告

1.2 实现原理

存储型 XSS 攻击

通过系统漏洞,将恶意脚本存储到数据库。再由数据库返回到页面,执行了恶意脚本。

反射型 XSS 攻击

未存储到数据库看,直接由服务端返回恶意脚本,并执行了恶意脚本。

比如:请求的参数中携带了恶意脚本,页面在呈现时,执行了脚本。

基于 DOM 的 XSS 攻击

基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的。

黑客通过各种手段将恶意脚本注入用户的页面中,比如通过网络劫持在页面传输过程中修改 HTML 页面的内容,这种劫持类型很多,有通过 WiFi 路由器劫持的,有通过本地恶意软件来劫持的

它们的共同点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。

1.3 根因

分为两类:

  • 经历了服务端。参数不严谨,未校验参数
  • 网络劫持

1.4 防范方法

  1. 服务器对输入脚本进行过滤或转译。
  2. 充分利用 CSP。禁止非法来源(站点)的脚本加载。
  3. Cookie 配置 HttpOnly。即便恶意脚本被执行了,也无法获取 Cookie 信息。

2. CSRF

跨站请求伪造

2.1 攻击的目的

利用用户身份,假冒用户执行危险操作。比如:代替用户发起转账请求。

2.2 原理:

  1. 用户在A站点登录
  2. 用户点击第三方站点
  3. 第三方站点自动向A站点发送伪造的请求(Get、Post)
  4. 对用户早晨损失

2.3 根因

黑客利用用户的登录状态,通过第三方站点目标站点伪造请求。由于服务端对请求的校验不严谨、或在客户端对 Cookie 的管理不严谨,对用户造成损失。

2.4 防范方法

  1. 验证请求的来源

通常 CSRF 攻击来源于第三方站点,验证请求头中 originreferer 是否与服务器地址一致。

  1. Cookie 设置 SameSite

三方站点自动向A站点发送伪造的请求(Get、Post)时,会携带 Cookie 中的信息。所以,为 Cookie 添加 SameSite 限制,令第三方拿不到 Cookie,导致服务端校验不通过。

  1. CSRF Token

正确的请求都携带CSRF Token,服务端校验CSRF Token,正确的 Token 才可以继续后续处理。因为CSRF Token存储在前端内存,第三方站点是无法拿到的。

3. 现代安全浏览器安全架构

3.1 单进程架构

Chrome 最初的架构是单进程架构,若是浏览器爆发安全漏洞,那么黑客很容易利用浏览器对操作系统发起攻击。单进程架构的特点:

  • 不稳定。若浏览器中的某一功能出现异常,很可能会影响到整个浏览器。比如:页面卡死、浏览器崩溃等。
  • 通过漏洞攻击操作系统。比如:缓冲区溢出漏洞,获取操作系统的 shell 发起攻击。

3.2 多进程架构

一段恶意程序,若不被执行,则不会产生危害。所以,将资源的下载过程与执行过程分开处理,更为妥善。

因此,现代安全架构采用多进程架构,化为为两个核心:

  • 浏览器内核
    • 浏览器主进程
    • 网路进程
    • GPU 进程
  • 渲染内核
    • 渲染进程

代码的执行主要发生在渲染进程,为渲染进程使用安全沙箱技术,将渲染进程操作系统隔离,限制其对操作系统资源的访问和修改。

当渲染进程需要操作系统的读写功能时(如:读写本地文件、网络请求、调用 GPU 接口等),需要通过浏览器内核来实现,然后将访问的结果通过 IPC 转发给渲染进程。

安全沙箱对渲染进程的影响:

  • 持久存储。对 Cookie、上传文件等,由浏览器内核通过 IPC 转发为渲染进程。
  • 网络请求。由浏览器内核通过 IPC 转发为渲染进程。
  • 用户交互。
    • 渲染进程生成位图,转发为浏览器内核,然后浏览器内核将位图复制到屏幕。
    • 用户输入事件,由浏览器内核通过 IPC 转发为渲染进程。

4. 数据安全

HTTP 本来一切安好,只是走歪路的人多了,才多了安全的 HTTPS。

4.1 HTTP

HTTP 最初设计的初衷仅是为了传输超文本文件,没有加密传输的需求,所以是明文传输。这就存在了中间人攻击的隐患,中间人可以窃取、篡改、伪造通信数据。

4.2 HTTPS

哪里有洞就堵哪里,给数据添加一层保护层。

对称加密

流程:

  1. 协商密钥
    • 客户端、服务端协商对称密码
  2. 通信
    • 使用对称密码加密通信

缺陷:

  1. 密码协商过程为明文,依然可以被中间人获取,然后发生攻击行为。

非对称加密

流程:

  1. 协商密钥
    • 服务端向客户端返回公钥
  2. 通信
    • 服务端使用私钥加密即将发送到客户端的数据
    • 客户端使用公钥解密服务端返回的数据
    • 客户端使用公钥加密发送到服务端的数据
    • 服务端使用私钥解密客户端发送来的数据

缺陷:

  1. 公钥在传输中可以被中间人获取,中间人通过公钥伪造数据
  2. 非对称加密消耗资源大

对称加密+非对称加密

流程:

  1. 协商密钥
    • 客户端向服务端发送随机数 A
    • 服务端返回随机数 B + 公钥
    • 客户端使用公钥加密随机 C,然后发送到服务端
    • 客户端、服务端,使用同一种算法,利用随机数 A、B、C 计算出通信的对称密钥 D
  2. 通信
    • 使用密钥 D,作为对称加密的密钥进行通信

优点:

  1. 中间人获取不到随机数 C,即无法获取密钥 D,则通信内容不会被窃取、伪造、监听
  2. 握手时使用非对称加密;通信时使用对称加密。

缺陷:

  1. 中间人可以假冒服务端,向客户端发送自己的公钥,导致通信内容不安全。
  2. 客户端无法确认通信的对象是不是对的。

对称加密+数字证书

数字证书由第三方权威机构 CA 颁发给服务端,数字证书中包含:

  • 服务端的基本信息(明文存储,包括组织、有效期、加密算法等)
  • 服务端公钥、
  • CA 的签名(一段 HASH 值)。

客户端拿到数字证书后,可以向 CA 验证服务端的身份。

流程:

  1. 协商密钥
    • 客户端向服务端发送随机数 A
    • 服务端返回随机数 B + 公钥
    • 客户端验证数字证书
    • 客户端使用公钥加密随机 C,然后发送到服务端
    • 客户端、服务端,使用同一种算法,利用随机数 A、B、C 计算出通信的对称密钥 D
  2. 通信
    • 使用密钥 D,作为对称加密的密钥进行通信
',78),r=[t];function d(h,c,n,s,u,p){return e(),a("div",null,r)}const q=l(o,[["render",d]]);export{b as __pageData,q as default}; diff --git "a/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.lean.js" "b/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.lean.js" new file mode 100644 index 0000000..30da786 --- /dev/null +++ "b/docs/assets/date_202301_\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.md.H_BIWMeW.lean.js" @@ -0,0 +1 @@ +import{_ as l,c as a,o as e,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"浏览器原理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202301/浏览器原理.md","filePath":"date/202301/浏览器原理.md","lastUpdated":null}'),o={name:"date/202301/浏览器原理.md"},t=i("",78),r=[t];function d(h,c,n,s,u,p){return e(),a("div",null,r)}const q=l(o,[["render",d]]);export{b as __pageData,q as default}; diff --git "a/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.js" "b/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.js" new file mode 100644 index 0000000..f4ce418 --- /dev/null +++ "b/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.js" @@ -0,0 +1 @@ +import{_ as l,c as i,o as e,a2 as t}from"./chunks/framework.aTtkxbT6.js";const m=JSON.parse('{"title":"面试汇总","description":"","frontmatter":{},"headers":[],"relativePath":"date/202302/面试汇总.md","filePath":"date/202302/面试汇总.md","lastUpdated":null}'),a={name:"date/202302/面试汇总.md"},_=t('

面试汇总

二月中旬开始复习、面试,可能自己期望太高,收到的面试邀约不多,有顺丰科技、腾讯文档、TD SYNNEX、UDesk。

几轮下来,个人认为面试考察的几个方面:

  • 技术
    • 深度。
      • 基本功,HTML、JS、CSS 的细节。
      • 网络、缓存、性能等
      • 框架原理
    • 广度
      • PC 端、移动端、小程序
      • 常见的 UI 框架
      • 工程构建工具
    • 敏感度
      • 框架、规范等的新的提案、变更
      • 技术新动态
  • 工程能力
    • 开发
    • 测试
    • 部署
  • 稳定性
    • 短期目标
    • 长期目标
  • 公司文化
    • 比如:996 等
',4),o=[_];function s(r,u,n,c,d,p){return e(),i("div",null,o)}const f=l(a,[["render",s]]);export{m as __pageData,f as default}; diff --git "a/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.lean.js" "b/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.lean.js" new file mode 100644 index 0000000..af63fe8 --- /dev/null +++ "b/docs/assets/date_202302_\351\235\242\350\257\225\346\261\207\346\200\273.md.C5zMgMFu.lean.js" @@ -0,0 +1 @@ +import{_ as l,c as i,o as e,a2 as t}from"./chunks/framework.aTtkxbT6.js";const m=JSON.parse('{"title":"面试汇总","description":"","frontmatter":{},"headers":[],"relativePath":"date/202302/面试汇总.md","filePath":"date/202302/面试汇总.md","lastUpdated":null}'),a={name:"date/202302/面试汇总.md"},_=t("",4),o=[_];function s(r,u,n,c,d,p){return e(),i("div",null,o)}const f=l(a,[["render",s]]);export{m as __pageData,f as default}; diff --git a/docs/assets/date_202303_qiankun.md.BYrYag5f.js b/docs/assets/date_202303_qiankun.md.BYrYag5f.js new file mode 100644 index 0000000..a2ab927 --- /dev/null +++ b/docs/assets/date_202303_qiankun.md.BYrYag5f.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as n,a2 as i}from"./chunks/framework.aTtkxbT6.js";const s=JSON.parse('{"title":"【微前端】qiankun","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/qiankun.md","filePath":"date/202303/qiankun.md","lastUpdated":null}'),l={name:"date/202303/qiankun.md"},o=i('

【微前端】qiankun

专栏:

目录:

  • [一、qiankun 是什么](#一、qiankun 是什么)
  • [二、qiankun 的设计思路](#二、qiankun 的设计思路)
  • [三、qiankun 的子应用切换原理](#三、qiankun 的子应用切换原理)
  • 四、沙箱机制
  • 五、优劣点

一、qiankun 是什么

qiankun是一种前端微服务架构,旨在解决大型复杂应用的拆分和管理问题。

二、qiankun 的设计思路

qiankun的设计思路是基于“微服务”架构和“大前端”思想的,通过拆分前端应用、动态加载、状态共享、兼容性和稳定性等特性,帮助开发者构建复杂的前端应用,并实现快速、稳定、可扩展的部署和管理。

它的设计思路主要包括以下几个方面:

2.1 从大前端角度出发

qiankun大前端的角度出发,将前端应用分为多个子应用,每个子应用相对独立,可以单独部署、独立运行。

这种方式类似于微服务架构,将前端应用拆分成多个小块,降低了整个应用的耦合度和复杂度。

2.2 基于路由的动态加载

qiankun的路由系统可以实现根据路由动态加载子应用。

在用户访问不同的页面时,qiankun会根据当前页面的路由信息动态加载相应的子应用,从而实现多个子应用的集成。

2.3 统一状态管理

qiankun通过提供一个全局状态管理器来实现多个子应用之间的状态共享。

子应用可以将自己的状态注册到全局状态管理器中,并在需要的时候获取全局状态,从而实现子应用之间的数据交换和共享。

2.4 兼容性和稳定性

qiankun采用了“双向通信”技术来实现子应用之间的通信,同时也提供了多种兼容性解决方案,可以在不同的浏览器和环境中运行,从而保证了整个应用的稳定性和兼容性。

三、qiankun 的子应用切换原理

qiankun的应用切换原理是通过动态加载应用卸载挂载、以及全局状态共享等机制来实现的。这些机制保证了多个子应用之间的隔离和独立性,同时又实现了数据和状态的共享,从而为用户提供了无缝的应用切换体验。

qiankun的应用切换原理可以概括为以下几个步骤:

  1. qiankun主应用加载

当用户访问qiankun主应用时,qiankun主应用会被加载和初始化。

在这个过程中,qiankun主应用会根据预定义的子应用列表(包括子应用的名称、入口文件路径、路由等信息)来预加载子应用的代码和资源文件。

  1. 子应用懒加载

当用户访问某个子应用时,qiankun主应用会根据路由信息动态加载相应的子应用。

这个过程中,qiankun会先检查子应用是否已经加载过,如果没有加载过,则会懒加载相应的子应用代码和资源文件。

  1. 应用切换

当用户从一个子应用切换到另一个子应用时,qiankun会首先将当前子应用卸载,并清除其对应的 DOM 节点和事件监听器。然后,qiankun会加载新的子应用,并将其挂载到 DOM 节点上,同时调用子应用的生命周期函数来初始化新的应用。

  1. 全局状态共享

qiankun提供了一个全局状态管理器来实现子应用之间的状态共享。

当用户从一个子应用切换到另一个子应用时,qiankun会自动将当前子应用的状态保存到全局状态管理器中,然后再将新的子应用的状态从全局状态管理器中获取并更新到新的子应用中。

四、沙箱机制

为了避免不同子应用之间的代码冲突和安全问题,采用了沙箱机制来隔离不同子应用的代码执行环境。具体来说,qiankun沙箱机制主要有以下几个方面:

  • 应用级别的沙箱

qiankun将每个子应用都视为一个独立的应用,每个子应用都有自己的独立沙箱环境,因此每个子应用都可以独立运行、独立调试、独立部署,互不影响。

  • 模块级别的沙箱

在子应用中,qiankun会使用自定义的模块加载器来加载和执行子应用的代码,这些代码都运行在独立的模块沙箱环境中,避免了子应用之间的代码污染和冲突。

  • 样式隔离

qiankun还提供了样式隔离机制,可以在不同子应用之间隔离样式,避免了样式冲突的问题。

  • 生命周期隔离

qiankun中,每个子应用都有自己的生命周期管理机制,这些生命周期钩子函数运行在独立的沙箱环境中,避免了子应用之间的生命周期冲突和影响。

qiankun的沙箱机制可以有效地隔离不同子应用之间的代码执行环境,避免了代码冲突和安全问题。开发者可以放心地在qiankun架构下开发和部署多个子应用,并且不必担心子应用之间的代码污染和冲突问题。

五、优劣点

  • 优势
    • 模块化
    • 动态加载
    • 全局状态管理
    • 兼容性和稳定性
  • 劣势
    • 复杂性:工程复杂,主应用、子应用。
    • 调试困难:多个子应用之间存在状态共享时,调试困难。
    • 性能问题:在网络条件不佳的情况下,动态加载可能会导致用户等待时间过长。
    • 安全性:跨站点脚本攻击(XSS)和跨站点请求伪造(CSRF)等。
',48),d=[o];function c(t,u,r,q,k,p){return n(),e("div",null,d)}const _=a(l,[["render",c]]);export{s as __pageData,_ as default}; diff --git a/docs/assets/date_202303_qiankun.md.BYrYag5f.lean.js b/docs/assets/date_202303_qiankun.md.BYrYag5f.lean.js new file mode 100644 index 0000000..b058a4b --- /dev/null +++ b/docs/assets/date_202303_qiankun.md.BYrYag5f.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as n,a2 as i}from"./chunks/framework.aTtkxbT6.js";const s=JSON.parse('{"title":"【微前端】qiankun","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/qiankun.md","filePath":"date/202303/qiankun.md","lastUpdated":null}'),l={name:"date/202303/qiankun.md"},o=i("",48),d=[o];function c(t,u,r,q,k,p){return n(),e("div",null,d)}const _=a(l,[["render",c]]);export{s as __pageData,_ as default}; diff --git a/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.js b/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.js new file mode 100644 index 0000000..d36a1de --- /dev/null +++ b/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.js @@ -0,0 +1,185 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const y=JSON.parse('{"title":"【微前端】qiankun + vite + vue","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/qiankun_vite_vue3.md","filePath":"date/202303/qiankun_vite_vue3.md","lastUpdated":null}'),h={name:"date/202303/qiankun_vite_vue3.md"},p=n(`

【微前端】qiankun + vite + vue

专栏:

一、整体结构

在 qiankun 体系下,一个微前端工程包含一个主应用和多个子应用。本质上,每个工程(主应用)都可以单独开发、运行。

1.1 开发时工程结构

共三个工程,一个主应用、两个子应用,目录结构:

bash
.
+├── app-01
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+├── app-02
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+├── main-app
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+└── readme.md

1.2 部署工程结构

部署方式可以选择多种,这里使用的方式是将三个工程部署在同一个 server、同一个 port 下,目录结构为:

bash
.
+├── index.html
+├── static
+│   ├── index-011eeef2.css
+│   └── index-0ab867b1.js
+├── sub
+│   ├── app-01
+│   │   ├── index.html
+│   │   ├── static
+│   │   │   ├── index-0244ff29.js
+│   │   │   └── index-83c9dd61.css
+│   │   └── vite.svg
+│   └── app-02
+│       ├── index.html
+│       ├── static
+│       │   └── index-cb440182.js
+│       └── vite.svg
+└── vite.svg

二、开发

开发时,三个应用对应的监听端口:

应用端口
main-app80
app-018081
app-028082

工程启动之后,可以在浏览器访问:

2.1 主应用

主应用用于注册子应用,以及控制子应用之间的切换。

A. 注册子应用

在新建的 vue3 工程的 main.ts 中注册子应用:

ts
// 开发模式时,entry的值为子应用的开发演示环境的地址
+if ("development" === import.meta.env.MODE) {
+  registerMicroApps([
+    {
+      name: "app_01",
+      entry: "//localhost:8081/",
+      container: "#container",
+      activeRule: "/app_01",
+    },
+    {
+      name: "app_02",
+      entry: "//localhost:8082/",
+      container: "#container",
+      activeRule: "/app_02",
+    },
+  ]);
+} else {
+  // 生产环境时,entry的路径为app在部署时的真实路径
+  registerMicroApps([
+    {
+      name: "app_01",
+      entry: "./sub/app-01",
+      container: "#container",
+      activeRule: "/app_01",
+    },
+    {
+      name: "app_02",
+      entry: "./sub/app-02",
+      container: "#container",
+      activeRule: "/app_02",
+    },
+  ]);
+}
+
+setDefaultMountApp("/app_01");
+
+// 启动 qiankun
+start();

注册子应用时,分为两种模式,开发模式和部署模式,对应的 entry 的值是有区别的。

B. 子应用路由

html
<a @click="toApp('/app_01')">app 01</a>
js
function toApp(path: string) {
+  history.pushState({}, "", path);
+}

需要注意的是,这里不能使用 a 标签 的 href,会报错 404 错误,必须使用history.pushState控制路由。

因为href属性会导致浏览器刷新,获取不到资源。

2.2 子应用

A. 安装依赖

pnpm add vite-plugin-qiankun

vite.config.js

配置文件修改

js
export default defineConfig({
+  // 打包时,这里填充的为绝对路径,对应的是部署路径
+  base: "/sub/app-01",
+  plugins: [
+    vue(),
+    qiankun("app-01", {
+      useDevMode: true,
+    }),
+  ],
+});

C. 入口改造

启动方式,分为两种:

  • 单独启动
  • 在主应用中启动

qiankun 需要子应用导出三个接口:

  • bootstrap
  • mount
  • unmount
ts
import {
+  renderWithQiankun,
+  qiankunWindow,
+} from "vite-plugin-qiankun/dist/helper";
+
+import { App as VueApp, createApp } from "vue";
+import router from "./router";
+import App from "./App.vue";
+
+let app: VueApp<Element>;
+if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
+  createApp(App).use(router).mount("#app");
+} else {
+  renderWithQiankun({
+    mount(props) {
+      console.log("--app 01 mount");
+
+      app = createApp(App);
+      app.use(router);
+      app.mount(
+        (props.container
+          ? props.container.querySelector("#app")
+          : document.getElementById("app")) as Element
+      );
+    },
+    bootstrap() {
+      console.log("--app 01 bootstrap");
+    },
+    update() {
+      console.log("--app 01 update");
+    },
+    unmount() {
+      console.log("--app 01 unmount");
+      app?.unmount();
+    },
+  });
+}

三、部署

三个工程依次打包后,在main-app的打包输出中,新建 sub 文件夹,将子应用的打包输出移动到 sub 文件夹中。结构:

bash
.
+├── index.html
+├── static
+│   ├── index-011eeef2.css
+│   └── index-0ab867b1.js
+├── sub
+│   ├── app-01
+│   │   ├── index.html
+│   │   ├── static
+│   │   │   ├── index-0244ff29.js
+│   │   │   └── index-83c9dd61.css
+│   │   └── vite.svg
+│   └── app-02
+│       ├── index.html
+│       ├── static
+│       │   └── index-cb440182.js
+│       └── vite.svg
+└── vite.svg

在本地启动一个静态 web 服务即可访问页面,比如使用serve命令启动服务:

bash
serve . -p 5500

浏览器中访问:http://localhost:5500

四、坑点

001. 主应用注册 App 时,activeRule 有两种模式

hash 模式

js
const getActiveRule = (hash) => (location) => location.hash.startsWith(hash);
+registerMicroApps([
+  {
+    name: "app-hash",
+    entry: "http://localhost:8080",
+    container: "#container",
+    activeRule: getActiveRule("#/app-hash"),
+    // 这里也可以直接写 activeRule: '#/app-hash',但是如果主应用是 history 模式或者主应用部署在非根目录,这样写不会生效。
+  },
+]);

history 模式

js
registerMicroApps([
+  {
+    name: "app",
+    entry: "http://localhost:8080",
+    container: "#container",
+    activeRule: "/app",
+  },
+]);

002. 主应用使用history时,如何控制子应用的切换

history 模式时,主应用会监听location.pathname的变化,从而切换子应用的加载与卸载。

主应用中,使用 a 便签切换应用时:

html
<!-- 开发环境时,没有问题 -->
+<!-- 部署环境时,会报错:/app_01 404的错误 -->
+<a href="/app_01">app 01</a>

404 的原因,静态部署时:a 标签会触发浏览器的刷新,刷新后,浏览器向后台发起请求/app_01,后台的确没有这个物理路径

改进方案,使用 history.pushState 接口:

html
<a @click="toApp('/app_01')">app 01</a>
js
function toApp(path: string) {
+  history.pushState({}, "", path);
+}

使用history.pushState的方式,不会出发浏览器的刷新行为。当浏览器的pathname发生变化时,qiankun会感知到路由发生变化,并加载对应的页面。

到这一步时,若不主动执行F5刷新操作,一切正常。但使用F5后,还是会报错 404,此时需要后台的路由进行配合,以 Nginx 为例子:

nginx
server {
+  listen       8080;
+  server_name  localhost;
+
+  location / {
+    root   html;
+    index  index.html index.htm;
+    try_files $uri $uri/ /index.html;
+  }
+
+  location /child/vue-history {
+    root   html;
+    index  index.html index.htm;
+    try_files $uri $uri/ /child/vue-history/index.html;
+  }
+}

六、源码

源码地址:https://github.com/swlws/qiankun-vite-vue3

`,64),l=[p];function t(k,e,E,r,d,F){return a(),i("div",null,l)}const c=s(h,[["render",t]]);export{y as __pageData,c as default}; diff --git a/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.lean.js b/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.lean.js new file mode 100644 index 0000000..b849a03 --- /dev/null +++ b/docs/assets/date_202303_qiankun_vite_vue3.md.B6mxNwVN.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const y=JSON.parse('{"title":"【微前端】qiankun + vite + vue","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/qiankun_vite_vue3.md","filePath":"date/202303/qiankun_vite_vue3.md","lastUpdated":null}'),h={name:"date/202303/qiankun_vite_vue3.md"},p=n("",64),l=[p];function t(k,e,E,r,d,F){return a(),i("div",null,l)}const c=s(h,[["render",t]]);export{y as __pageData,c as default}; diff --git "a/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.js" "b/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.js" new file mode 100644 index 0000000..0498ac4 --- /dev/null +++ "b/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.js" @@ -0,0 +1,61 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const F=JSON.parse('{"title":"几种并发 Promise 的实现","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/几种并发Promise的实现.md","filePath":"date/202303/几种并发Promise的实现.md","lastUpdated":null}'),h={name:"date/202303/几种并发Promise的实现.md"},k=n(`

几种并发 Promise 的实现

方案一

js
/**
+ *
+ * @param {*} list 参数
+ * @param {*} fn Promise函数
+ * @param {*} limit 限制
+ * @returns
+ */
+function limit_task(list, fn, limit = 3) {
+  const len = list.length;
+
+  return new Promise((r) => {
+    const rt = [];
+    const wrap = () => {
+      if (rt.length === len) r(rt);
+
+      if (!list.length) return;
+
+      return fn(list.shift()).then((data) => {
+        rt.push(data);
+        return wrap();
+      });
+    };
+
+    let i = 0;
+    while (i < limit) {
+      wrap();
+      i++;
+    }
+  });
+}

方案二

ts
/**
+ * 并发Promise
+ *
+ * @param poolLimit 并发最大数
+ * @param array 参数
+ * @param iteratorFn 回调函数
+ * @returns
+ */
+async function threadPool(
+  poolLimit: number,
+  array: any[],
+  iteratorFn: (...args: any[]) => any
+) {
+  const ret = []; // 存储所有的异步任务
+  const executing: any[] = []; // 存储正在执行的异步任务
+  for (const item of array) {
+    // 调用iteratorFn函数创建异步任务
+    const p = Promise.resolve().then(() => iteratorFn(item, array));
+    ret.push(p); // 保存新的异步任务
+
+    // 当poolLimit值小于或等于总任务个数时,进行并发控制
+    if (poolLimit <= array.length) {
+      // 当任务完成后,从正在执行的任务数组中移除已完成的任务
+      const e: any = p.then(() => executing.splice(executing.indexOf(e), 1));
+      executing.push(e); // 保存正在执行的异步任务
+      if (executing.length >= poolLimit) {
+        await Promise.race(executing); // 等待较快的任务执行完成
+      }
+    }
+  }
+  return Promise.all(ret);
+}

方案三

p-limit

`,7),l=[k];function p(t,e,r,E,d,g){return a(),i("div",null,l)}const A=s(h,[["render",p]]);export{F as __pageData,A as default}; diff --git "a/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.lean.js" "b/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.lean.js" new file mode 100644 index 0000000..9b03d1d --- /dev/null +++ "b/docs/assets/date_202303_\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.md.CH7bVPer.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const F=JSON.parse('{"title":"几种并发 Promise 的实现","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/几种并发Promise的实现.md","filePath":"date/202303/几种并发Promise的实现.md","lastUpdated":null}'),h={name:"date/202303/几种并发Promise的实现.md"},k=n("",7),l=[k];function p(t,e,r,E,d,g){return a(),i("div",null,l)}const A=s(h,[["render",p]]);export{F as __pageData,A as default}; diff --git "a/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.js" "b/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.js" new file mode 100644 index 0000000..1e460e5 --- /dev/null +++ "b/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.js" @@ -0,0 +1 @@ +import{_ as a,c as l,o as e,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"【微前端】什么是微前端","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/微前端.md","filePath":"date/202303/微前端.md","lastUpdated":null}'),t={name:"date/202303/微前端.md"},r=i('

【微前端】什么是微前端

专栏:


目录:

一、微前端是什么

微前端(Micro Frontends)是一种前端架构模式,通过将单个应用程序分解为多个小型、独立的部分来实现应用程序的组合。每个小型部分都由独立的团队开发、测试和部署,然后将它们组合成为一个完整的应用程序。

微前端的目标是使前端开发更加容易、可维护和可扩展,并且能够实现团队之间的协作。

在微前端架构中,每个微前端都有自己的代码库和独立的部署过程。

微前端可以使用不同的技术栈、框架和语言,因为它们只需要定义一组共享的 API 和协议。这样可以让团队独立地开发和部署微前端,同时还能够保持整个应用程序的一致性。

二、微前端解决了什么问题

  1. 大型单体应用程序难以扩展和维护问题

在大型单体应用程序中,当应用程序的规模增加时,应用程序的可维护性和可扩展性变得更加困难。微前端将应用程序分解为多个小型、独立的部分,使得每个部分都可以独立扩展和维护。

  1. 多个团队开发同一应用程序的协同问题

在大型应用程序中,往往需要多个团队协同开发。使用微前端架构模式可以将应用程序分解为多个小型部分,从而使得每个团队可以独立开发和维护它们自己的部分。

  1. 技术栈不一致的问题

不同的团队可能使用不同的技术栈来开发应用程序的不同部分。微前端架构模式允许使用不同的技术栈来开发每个微前端,从而避免了技术栈不一致的问题。

  1. 应用程序的可测试性和可部署性

微前端将应用程序分解为多个小型部分,从而使得每个部分都可以独立进行测试和部署。这提高了应用程序的可测试性和可部署性。

  1. 增量升级

使用微前端架构模式可以实现增量升级,从而使得应用程序的升级更加容易和快速。

三、微前端的优缺点

优点:

  • 可扩展性:可以根据需要添加或删除微前端。
  • 独立开发:每个微前端可以由不同的团队开发和维护。
  • 独立部署:每个微前端都可以独立部署,从而使整个应用程序更加稳定。
  • 技术栈灵活:不同的微前端可以使用不同的技术栈。
  • 高效开发:可以同时开发多个微前端,从而提高开发效率。
  • 可维护性:微前端可以更容易地进行维护和测试,因为它们具有清晰的界限和独立的代码库。

劣势:

  • 增加了系统复杂度

微前端需要对系统进行拆分,将单体应用拆分成多个独立的微前端应用。这种拆分可能导致系统整体变得更加复杂,因为需要处理跨应用之间的通信和集成问题。

  • 需要依赖于额外的工具和技术

实现微前端需要使用一些额外的工具和技术,例如模块加载器、应用容器等。这些工具和技术需要额外的学习和维护成本,也可能会导致一些性能问题。

  • 安全性问题

由于微前端应用是独立的,它们之间可能存在安全隐患。例如,如果某个微前端应用存在漏洞,攻击者可能会利用这个漏洞来攻击整个系统。

  • 兼容性问题

由于微前端应用是独立的,它们之间可能存在兼容性问题。例如,某个微前端应用可能使用了一些不兼容的依赖库,这可能会导致整个系统出现问题。

  • 开发团队需要有一定的技术水平

实现微前端需要开发团队有一定的技术水平,包括对模块化、代码复用、应用集成等方面有深入的了解。如果团队缺乏这方面的技能,可能会导致微前端实现出现问题。

四、微前端的解决方案

4.1 基于 Web Components 的解决方案

Web Components 是一种标准化的 Web 技术,可以创建可复用的自定义元素,包括 HTML 标记、CSS 样式和 JavaScript 代码。基于 Web Components 的微前端解决方案可以使不同的微前端应用程序使用相同的 Web 组件,从而提高复用性和可维护性。

4.2 基于 Iframe 的解决方案

使用 Iframe 可以将不同的微前端应用程序嵌入到主应用程序的页面中,从而实现微前端的隔离和独立部署。但是 Iframe 也存在一些问题,如安全性和性能等方面的问题。

4.3 基于服务端渲染的解决方案

服务端渲染可以将微前端应用程序的 HTML 和 JavaScript 在服务器端进行预处理,从而减少客户端的加载和渲染时间。这种解决方案可以提高性能和 SEO,但是也需要在服务器端增加额外的负载。

4.4 基于 JavaScript 模块加载器的解决方案

使用 JavaScript 模块加载器可以将不同的微前端应用程序作为不同的模块加载,从而实现微前端的隔离和独立部署。这种解决方案可以提高可维护性和扩展性,但是也需要使用特定的 JavaScript 模块加载器,如 SystemJS 或者 Webpack 等。

常用的技术实现方案:

  • single-spa
  • qiankun

4.5 基于流媒体技术的解决方案

使用流媒体技术可以将微前端应用程序作为流式数据进行传输和播放,从而实现微前端的隔离和独立部署。

五、何时需要引入微前端

通常情况下并不要需要微前端架构,冒然引入会增加额外的复杂度等问题。当出现以下特征时,可以考虑引入微前端:

  1. 应用程序的规模不断扩大,导致应用程序变得难以维护和扩展。
  2. 应用程序需要多个团队协同开发,但是不同团队之间的开发进度和技术栈不一致。
  3. 应用程序需要支持动态更新和增量升级,但是传统的单体应用程序难以实现。
  4. 应用程序需要支持自定义和可插拔的功能,但是传统的单体应用程序的架构限制了自定义和可插拔性。
  5. 应用程序需要支持不同的终端设备和浏览器,但是传统的单体应用程序难以实现对不同设备和浏览器的适配。
',52),o=[r];function n(p,h,s,c,d,u){return e(),l("div",null,o)}const f=a(t,[["render",n]]);export{b as __pageData,f as default}; diff --git "a/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.lean.js" "b/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.lean.js" new file mode 100644 index 0000000..e66fc65 --- /dev/null +++ "b/docs/assets/date_202303_\345\276\256\345\211\215\347\253\257.md.Bkfse4OM.lean.js" @@ -0,0 +1 @@ +import{_ as a,c as l,o as e,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"【微前端】什么是微前端","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202303/微前端.md","filePath":"date/202303/微前端.md","lastUpdated":null}'),t={name:"date/202303/微前端.md"},r=i("",52),o=[r];function n(p,h,s,c,d,u){return e(),l("div",null,o)}const f=a(t,[["render",n]]);export{b as __pageData,f as default}; diff --git "a/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.js" "b/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.js" new file mode 100644 index 0000000..05560cb --- /dev/null +++ "b/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.js" @@ -0,0 +1 @@ +import{_ as t,c as a,o as r,m as e,a as s}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"性能监控工具","description":"","frontmatter":{},"headers":[],"relativePath":"date/202303/性能监控库.md","filePath":"date/202303/性能监控库.md","lastUpdated":null}'),o={name:"date/202303/性能监控库.md"},l=e("h1",{id:"性能监控工具",tabindex:"-1"},[s("性能监控工具 "),e("a",{class:"header-anchor",href:"#性能监控工具","aria-label":'Permalink to "性能监控工具"'},"​")],-1),n=e("ul",null,[e("li",null,[e("a",{href:"https://github.com/mrdoob/stats.js",target:"_blank",rel:"noreferrer"},"state.js")]),e("li",null,[e("a",{href:"https://www.npmjs.com/package/web-vitals",target:"_blank",rel:"noreferrer"},"web-vitals")])],-1),c=[l,n];function d(_,i,h,p,m,f){return r(),a("div",null,c)}const k=t(o,[["render",d]]);export{b as __pageData,k as default}; diff --git "a/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.lean.js" "b/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.lean.js" new file mode 100644 index 0000000..05560cb --- /dev/null +++ "b/docs/assets/date_202303_\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.md.ChAZk8oQ.lean.js" @@ -0,0 +1 @@ +import{_ as t,c as a,o as r,m as e,a as s}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"性能监控工具","description":"","frontmatter":{},"headers":[],"relativePath":"date/202303/性能监控库.md","filePath":"date/202303/性能监控库.md","lastUpdated":null}'),o={name:"date/202303/性能监控库.md"},l=e("h1",{id:"性能监控工具",tabindex:"-1"},[s("性能监控工具 "),e("a",{class:"header-anchor",href:"#性能监控工具","aria-label":'Permalink to "性能监控工具"'},"​")],-1),n=e("ul",null,[e("li",null,[e("a",{href:"https://github.com/mrdoob/stats.js",target:"_blank",rel:"noreferrer"},"state.js")]),e("li",null,[e("a",{href:"https://www.npmjs.com/package/web-vitals",target:"_blank",rel:"noreferrer"},"web-vitals")])],-1),c=[l,n];function d(_,i,h,p,m,f){return r(),a("div",null,c)}const k=t(o,[["render",d]]);export{b as __pageData,k as default}; diff --git a/docs/assets/date_202304_ai.md.M5JDf33l.js b/docs/assets/date_202304_ai.md.M5JDf33l.js new file mode 100644 index 0000000..c118013 --- /dev/null +++ b/docs/assets/date_202304_ai.md.M5JDf33l.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as r,m as e,a as o}from"./chunks/framework.aTtkxbT6.js";const k=JSON.parse('{"title":"AI","description":"","frontmatter":{},"headers":[],"relativePath":"date/202304/ai.md","filePath":"date/202304/ai.md","lastUpdated":null}'),n={name:"date/202304/ai.md"},l=e("h1",{id:"ai",tabindex:"-1"},[o("AI "),e("a",{class:"header-anchor",href:"#ai","aria-label":'Permalink to "AI"'},"​")],-1),i=e("ul",null,[e("li",null,"chatGPT"),e("li",null,[e("a",{href:"https://www.notion.so/",target:"_blank",rel:"noreferrer"},"notion ai")]),e("li",null,[e("a",{href:"https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F",target:"_blank",rel:"noreferrer"},"midjourney")])],-1),s=[l,i];function c(d,_,h,p,m,f){return r(),t("div",null,s)}const w=a(n,[["render",c]]);export{k as __pageData,w as default}; diff --git a/docs/assets/date_202304_ai.md.M5JDf33l.lean.js b/docs/assets/date_202304_ai.md.M5JDf33l.lean.js new file mode 100644 index 0000000..c118013 --- /dev/null +++ b/docs/assets/date_202304_ai.md.M5JDf33l.lean.js @@ -0,0 +1 @@ +import{_ as a,c as t,o as r,m as e,a as o}from"./chunks/framework.aTtkxbT6.js";const k=JSON.parse('{"title":"AI","description":"","frontmatter":{},"headers":[],"relativePath":"date/202304/ai.md","filePath":"date/202304/ai.md","lastUpdated":null}'),n={name:"date/202304/ai.md"},l=e("h1",{id:"ai",tabindex:"-1"},[o("AI "),e("a",{class:"header-anchor",href:"#ai","aria-label":'Permalink to "AI"'},"​")],-1),i=e("ul",null,[e("li",null,"chatGPT"),e("li",null,[e("a",{href:"https://www.notion.so/",target:"_blank",rel:"noreferrer"},"notion ai")]),e("li",null,[e("a",{href:"https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F",target:"_blank",rel:"noreferrer"},"midjourney")])],-1),s=[l,i];function c(d,_,h,p,m,f){return r(),t("div",null,s)}const w=a(n,[["render",c]]);export{k as __pageData,w as default}; diff --git "a/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.js" "b/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.js" new file mode 100644 index 0000000..05a852f --- /dev/null +++ "b/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.js" @@ -0,0 +1,14 @@ +import{_ as t,c as s,o as a,a2 as i}from"./chunks/framework.aTtkxbT6.js";const u=JSON.parse('{"title":"DOM 监测","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/DOM监测.md","filePath":"date/202305/DOM监测.md","lastUpdated":null}'),e={name:"date/202305/DOM监测.md"},n=i(`

DOM 监测

如何定义DOM监测

  • 新加 DOM
  • DOM 属性变更
  • 移除 DOM

通常有两种方式,早期使用 DOM 事件监听节点的变化,目前已不再推荐。当前推荐使用MutationObserver

一、DOM 事件

事件作用注意事项
DOMNodeInsertedIntoDocument用于检测节点的插入当 Node 被插入到 Document 时,才会触发此事件
DOMNodeInserted用于检测节点的插入当 Node 被插入到 Document 或非 Document 时,都会被触发
DOMNodeRemovedFromDocument用于检测节点的移除当 Node 从 Document 移除时,才会触发此事件
DOMNodeRemoved用于检测节点的移除当 Node 从 Document 或非 Document 时移除时,才会触发此事件
DOMAttributeModified用于检测 DOM 属性变化
DOMCharacterDataModified检测 DOM 节点的文本变化
DOMSubtreeModified用于代替(DOMAttributeModified、DOMCharacterDataModified、DOMNodeInserted、DOMNodeInsertedIntoDocument、DOMNodeRemoved 和 DOMNodeRemovedFromDocument)IE9 环境存在 BUG,当 Node 第一时间被插入时,不会立即触发此事件

这里的非Document指的是,节点不在 DOM 树上的场景。如节点存放与内存中,Code 演示

二、MutationObserver

MutationObserver提供了一种监控自身节点以及子节点变化的能力,包括新增、移除、属性变化。示例:

js
const callback = (mutationRecords) => {};
+const observer = new MutationObserver(callback);
+
+const targetNode = document.querySelector("#node");
+const option = {
+  subtree: false,
+  childList: false,
+  attributes: true,
+  attributeFilter: undefined,
+  attributeOldValue: false,
+  characterData: false,
+  characterDataOldValue: false,
+};
+observer.observe(targetNode, option);
配置默认值说明
subtreefalse监听目标节点的所有后代节点
childListfalse监听目标节点的新增、移除子节点的行为
attributesfalse监听目标节点的属性的变化
attributeFilterundefined当值为数组时,仅检测指定的属性的值的变化。
attributeOldValuefalse是否记录属性的旧值
characterDatafalse是否监控文本节点的变化
characterDataOldValuefalse是否记录文本节点的旧值

三、参考

`,13),d=[n];function l(r,h,p,k,o,E){return a(),s("div",null,d)}const g=t(e,[["render",l]]);export{u as __pageData,g as default}; diff --git "a/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.lean.js" "b/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.lean.js" new file mode 100644 index 0000000..c161431 --- /dev/null +++ "b/docs/assets/date_202305_DOM\347\233\221\346\265\213.md.0z8xZW1O.lean.js" @@ -0,0 +1 @@ +import{_ as t,c as s,o as a,a2 as i}from"./chunks/framework.aTtkxbT6.js";const u=JSON.parse('{"title":"DOM 监测","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/DOM监测.md","filePath":"date/202305/DOM监测.md","lastUpdated":null}'),e={name:"date/202305/DOM监测.md"},n=i("",13),d=[n];function l(r,h,p,k,o,E){return a(),s("div",null,d)}const g=t(e,[["render",l]]);export{u as __pageData,g as default}; diff --git "a/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.js" "b/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.js" new file mode 100644 index 0000000..36e6ca0 --- /dev/null +++ "b/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.js" @@ -0,0 +1,20 @@ +import{_ as s,c as i,o as a,a2 as t}from"./chunks/framework.aTtkxbT6.js";const g=JSON.parse('{"title":"lit","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/lit_生命周期.md","filePath":"date/202305/lit_生命周期.md","lastUpdated":null}'),e={name:"date/202305/lit_生命周期.md"},l=t(`

lit

一、lit 是什么

lit提供了一种方式, 可以更快\\更轻量的创建一个web component. 在原生的web component的基础上, lit提供了更友好的响应式生命\\局部样式书写方式.

web compoent的生成使用lit实现, 具体的 UI 实现可以使用不同的技术栈(vue react angular 等)

二、lit 与 web component

原生 web componentlit
响应式声明不支持支持
样式隔离支持支持
渲染attachShadowrender
生命周期connectedCallback disconnectedCallback adoptedCallback attributeChangedCallbackconnectedcallback disconnectedcallback attributechangedcallback adoptedcallback
响应式更新-shouldUpdate willUpdae update
主动触发更新-haschanged requestUpdate

三、生命周期

  • connectedCallback
    • 当 DOM 从 Document 文档移除时触发
  • disconnectedCallback
    • 当 DOM 挂载到 Document 文档时触发
  • shouldUpdate
    • 是否允许更新
  • willUpdate
    • 即将更新, 允许对响应式属性做调整
  • update
    • 执行更新

父子组件之间生命周期的行为:

  • 第一次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback -> 父 update(shouldUpdate willUpdate update) -> 父 update(shouldUpdate willUpdate update)
  • 第二次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback
  • 更新时: 父节点更新时, 不会影响子节点更新. 即仅触发父 update(shouldUpdate willUpdate update)
  • DOM 卸载时: 父 disconnectedCallback -> 子 disconnectedCallback

四、lit + vue

首先需要先创建一个 VUE 实例

ts
@query(".container")
+container!: HTMLDivElement;
+
+createVueComponent = () => {
+  const component = defineComponent({
+    template: \`
+            <div>vue component</div>
+        \`,
+  });
+
+  const app = createApp(component);
+  app.mount(this.container);
+};

善用三个生命周期connectedcallback disconnectedcallback update, 通过update动态更新vue 实例.

第一次connectedcallback之后会触发update钩子, 此时container已被赋值, 可以执行createVueComponent.

TS
protected update( changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown> ): void {
+    super.update(changedProperties);
+
+    if (this.container) {
+      unmountInstance(this);
+      this.createVueComponent();
+    }
+  }

五、Code

Code 完整示例

六、Reference

`,20),n=[l];function h(p,d,k,r,c,o){return a(),i("div",null,n)}const u=s(e,[["render",h]]);export{g as __pageData,u as default}; diff --git "a/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.lean.js" "b/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.lean.js" new file mode 100644 index 0000000..a6db871 --- /dev/null +++ "b/docs/assets/date_202305_lit_\347\224\237\345\221\275\345\221\250\346\234\237.md.BOBfPYM_.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as t}from"./chunks/framework.aTtkxbT6.js";const g=JSON.parse('{"title":"lit","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/lit_生命周期.md","filePath":"date/202305/lit_生命周期.md","lastUpdated":null}'),e={name:"date/202305/lit_生命周期.md"},l=t("",20),n=[l];function h(p,d,k,r,c,o){return a(),i("div",null,n)}const u=s(e,[["render",h]]);export{g as __pageData,u as default}; diff --git "a/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.js" "b/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.js" new file mode 100644 index 0000000..a8e440c --- /dev/null +++ "b/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.js" @@ -0,0 +1,4 @@ +import{_ as l,E as _,c as a,J as o,w as n,m as e,a as t,a2 as p,o as d}from"./chunks/framework.aTtkxbT6.js";const q=JSON.parse('{"title":"此去欲何-2023 年中结","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/提前的半年总结.md","filePath":"date/202305/提前的半年总结.md","lastUpdated":null}'),c={name:"date/202305/提前的半年总结.md"},i=e("h1",{id:"此去欲何-2023-年中结",tabindex:"-1"},[t("此去欲何-2023 年中结 "),e("a",{class:"header-anchor",href:"#此去欲何-2023-年中结","aria-label":'Permalink to "此去欲何-2023 年中结"'},"​")],-1),r=e("p",null,"一天下午,leader 走进办公室,对我们说,资金维持不下去了,仅能支撑到这个月了。",-1),u=e("p",null,"那一刻,leader 眼睛低迷、脸色暗淡,身形略微有点弯曲。办公室的光线有点暗,那一刻,似乎更暗了。",-1),h=e("p",null,"那一刻,似乎卸下了一个担子,但另一个更重的担子迎面而来。对于 leader、对于我们,都是如此。",-1),g=e("p",null,"我,一位前端攻城师,失业了。哦,创业失败,公司也没了。",-1),f=e("hr",null,null,-1),T=e("p",null,"一月九号,公司算是正式结束运营。",-1),m=e("p",null,"十号那天兄弟们依然来到办公室,继续工作。继续做着原计划中的任务,继续打磨着我们呵护了数年的产品。十号、十一号、十二号...",-1),S=e("p",null,"唯一的变化,是我们离开办公室的时间。以前都是九点钟离开办公室,现在是六点。",-1),C=e("p",null,"除了下班的时间外,其它的似乎一切没变。正常的通勤、正常的与邻居唠嗑、正常的吃肠粉、正常的...",-1),P=e("hr",null,null,-1),V=e("p",null,"印象中大概有十多年了,未在家中陪家人一起过元宵节了。",-1),A=e("p",null,"小小的元宵,大大的团圆。",-1),v=e("p",null,"老妈也曾怀疑,为何今年走这么晚,难得在家过了十五才离开。我一直谎称公司不忙,远程办公也是一样的,不碍事。",-1),N=e("p",null,"试探性地问老妈,以后想起哪里定居呢?老妈念家,想回老家了。",-1),b=e("p",null,"二月下旬,回了深圳。看书、爬山、与朋友喝茶,默默准备着告别。",-1),k=e("hr",null,null,-1),x=p("

年后看到一些推文、群聊,到处在散发着焦虑,工作不好找、如意的工作更不好找。

顺丰科技

可能我比较幸运吧,开始投递简历没多久,就得到了顺丰科技的邀约。由于岗位要求与我过往经历匹配度挺高的,四轮面试也比较顺利。但比较可惜的是,最终没收到 offer。

反思了下,可能是因为我提到内部转岗的事情,三、四轮面试时,面试官一直追着这个问题再问,可能被认为不稳定吧。

这段时间投递简历时,一直在有意的找安全方向岗位,毕竟接触了这么多年安全业务,也算是半个安全人哈。也有着自己的小算盘,多了解下,指不定以后做安全方向的销售呢。

腾讯

最早接触的是腾讯手机地图,可惜的是人家要找的是经验丰富的移动端开发,但我对移动端零经验。不出意外的,挂了。哈哈哈哈哈,纯粹积累下面试经验

之后接触的是腾讯文档,整个面试周期还是蛮长的,将近三周时间。一、二面技术面、三面 leader 面,四面 HR。很可惜的,HR 面,薪资没谈妥,被膈应到了。

心态有点炸了

三月份,收到的面试邀约并不多,除却顺丰、腾讯外,也面过两三家小公司,仅拿到过一家小公司的 offer,考虑许久没去这家公司。

惯例中的金三银四没看到,倒是感受了铜三铁四的寒气。


",12),I=p("

一个多月的投递简历,整体感觉卷的厉害。

BOSS 上抛出的岗位,很多要求一兼多职,即要求 PC 开发,也要移动开发、甚至小程序开发。适合自己的岗位不多,三月下旬、四月初行情一直不太好。

焦虑了

有一天,失眠了。白天,心慌、手不自觉的颤抖。胸中似乎有一股怒火,想发泄,无处呐喊。

知道自己的精神状态出问题了。一个多月的独处,每天在出租屋内,无人交谈,再加上工作不顺,压抑、抑郁了。

之后的几天里,一直是这种状态。没有刻意的去思考工作、去学习,但那压力如水,包裹全身。

人生第一次感到那么的无助,但我知道,只能靠自己。

自救

我们的公司虽然停止营业了,但办公室还在。之前只是一直在准备复习以及面试,很少去了。

之后每天都去办公室,与李总、凯哥闲聊,喝茶看报聊天...

哦,对了,还有我的猫,大黄,我把大黄也送到了办公室。每天三人一猫,渐渐的状态好多了。

他救

发小,宇宇。一天,问我工作顺利否,我跟他讲焦虑了~_~

接下来的几天,每晚跟我“煲电话粥”,直到有天他需要出差,着实没时间了。那几天,最期待的就是晚上闲聊,有人跟我说说话,很开心。

老铁,拭心。年后本意是想着离开一线城市,找个非一线定居的。但行情的差劲,使我迷茫、焦虑了。一天晚上找他聊关于定居的问题,一方面是取经、一方面是缓解焦虑。

当然,还有其他人呢,智慧小君君呀超哥等。一向不太喜欢闲聊的我,这半个月似乎将一年的唠嗑给唠完了。

由衷感谢他们,陪我度过这段阴暗时光。


",18),E=e("p",null,"辗辗转转,终究是离开了深圳",-1),R=e("p",null,"这次离开,若再要回去,会是何日,哪般场景呢?",-1),B=e("hr",null,null,-1),D=p(`
  1. 常被问到如何看待自己的这段创业经历。

很幸运,人生中遇到李总、鑫哥、凯哥,他们是有想法、有活力、敢想敢做的可爱的人啊。一段宝贵的友情。

至于其它的,可以留待五年、十年后再回首,应当是另一番风景。

  1. 机会与意外哪个会先来呢?

我不知道呢,我所能做的就是,做好力所能及的事,强大自身。若是机会,则顺风而起;若是意外,也多几分防御的能力。

  1. 此去欲何
> 大圣,此去欲何?
+> 踏南天,碎凌霄。
+> 若一去不回?
+> 便一去不回。
`,7);function $(w,y,H,J,O,U){const s=_("center");return d(),a("div",null,[i,r,u,h,g,f,o(s,null,{default:n(()=>[t(" 一月 ")]),_:1}),T,m,S,C,P,o(s,null,{default:n(()=>[t("二月")]),_:1}),V,A,v,N,b,k,o(s,null,{default:n(()=>[t("三月")]),_:1}),x,o(s,null,{default:n(()=>[t("四月")]),_:1}),I,o(s,null,{default:n(()=>[t("五月")]),_:1}),E,R,B,o(s,null,{default:n(()=>[t("结束语")]),_:1}),D])}const z=l(c,[["render",$]]);export{q as __pageData,z as default}; diff --git "a/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.lean.js" "b/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.lean.js" new file mode 100644 index 0000000..02b7812 --- /dev/null +++ "b/docs/assets/date_202305_\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.md.joXesQ8r.lean.js" @@ -0,0 +1 @@ +import{_ as l,E as _,c as a,J as o,w as n,m as e,a as t,a2 as p,o as d}from"./chunks/framework.aTtkxbT6.js";const q=JSON.parse('{"title":"此去欲何-2023 年中结","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202305/提前的半年总结.md","filePath":"date/202305/提前的半年总结.md","lastUpdated":null}'),c={name:"date/202305/提前的半年总结.md"},i=e("h1",{id:"此去欲何-2023-年中结",tabindex:"-1"},[t("此去欲何-2023 年中结 "),e("a",{class:"header-anchor",href:"#此去欲何-2023-年中结","aria-label":'Permalink to "此去欲何-2023 年中结"'},"​")],-1),r=e("p",null,"一天下午,leader 走进办公室,对我们说,资金维持不下去了,仅能支撑到这个月了。",-1),u=e("p",null,"那一刻,leader 眼睛低迷、脸色暗淡,身形略微有点弯曲。办公室的光线有点暗,那一刻,似乎更暗了。",-1),h=e("p",null,"那一刻,似乎卸下了一个担子,但另一个更重的担子迎面而来。对于 leader、对于我们,都是如此。",-1),g=e("p",null,"我,一位前端攻城师,失业了。哦,创业失败,公司也没了。",-1),f=e("hr",null,null,-1),T=e("p",null,"一月九号,公司算是正式结束运营。",-1),m=e("p",null,"十号那天兄弟们依然来到办公室,继续工作。继续做着原计划中的任务,继续打磨着我们呵护了数年的产品。十号、十一号、十二号...",-1),S=e("p",null,"唯一的变化,是我们离开办公室的时间。以前都是九点钟离开办公室,现在是六点。",-1),C=e("p",null,"除了下班的时间外,其它的似乎一切没变。正常的通勤、正常的与邻居唠嗑、正常的吃肠粉、正常的...",-1),P=e("hr",null,null,-1),V=e("p",null,"印象中大概有十多年了,未在家中陪家人一起过元宵节了。",-1),A=e("p",null,"小小的元宵,大大的团圆。",-1),v=e("p",null,"老妈也曾怀疑,为何今年走这么晚,难得在家过了十五才离开。我一直谎称公司不忙,远程办公也是一样的,不碍事。",-1),N=e("p",null,"试探性地问老妈,以后想起哪里定居呢?老妈念家,想回老家了。",-1),b=e("p",null,"二月下旬,回了深圳。看书、爬山、与朋友喝茶,默默准备着告别。",-1),k=e("hr",null,null,-1),x=p("",12),I=p("",18),E=e("p",null,"辗辗转转,终究是离开了深圳",-1),R=e("p",null,"这次离开,若再要回去,会是何日,哪般场景呢?",-1),B=e("hr",null,null,-1),D=p("",7);function $(w,y,H,J,O,U){const s=_("center");return d(),a("div",null,[i,r,u,h,g,f,o(s,null,{default:n(()=>[t(" 一月 ")]),_:1}),T,m,S,C,P,o(s,null,{default:n(()=>[t("二月")]),_:1}),V,A,v,N,b,k,o(s,null,{default:n(()=>[t("三月")]),_:1}),x,o(s,null,{default:n(()=>[t("四月")]),_:1}),I,o(s,null,{default:n(()=>[t("五月")]),_:1}),E,R,B,o(s,null,{default:n(()=>[t("结束语")]),_:1}),D])}const z=l(c,[["render",$]]);export{q as __pageData,z as default}; diff --git a/docs/assets/date_202306_note.md.CwstFWDo.js b/docs/assets/date_202306_note.md.CwstFWDo.js new file mode 100644 index 0000000..6081f00 --- /dev/null +++ b/docs/assets/date_202306_note.md.CwstFWDo.js @@ -0,0 +1 @@ +import{_ as t,c as n,o as a,m as e}from"./chunks/framework.aTtkxbT6.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"date/202306/note.md","filePath":"date/202306/note.md","lastUpdated":null}'),r={name:"date/202306/note.md"},l=e("ul",null,[e("li",null,[e("p",null,[e("a",{href:"https://mp.weixin.qq.com/s/H0uDj7VnpldW33d2n7p2-w",target:"_blank",rel:"noreferrer"},"一个人开始废掉的表现")])]),e("li",null,[e("p",null,[e("a",{href:"https://mp.weixin.qq.com/s/l6dNUFE1b2xKzncpt4CL_A",target:"_blank",rel:"noreferrer"},"debugger")])])],-1),o=[l];function s(d,c,p,i,_,m){return a(),n("div",null,o)}const h=t(r,[["render",s]]);export{f as __pageData,h as default}; diff --git a/docs/assets/date_202306_note.md.CwstFWDo.lean.js b/docs/assets/date_202306_note.md.CwstFWDo.lean.js new file mode 100644 index 0000000..6081f00 --- /dev/null +++ b/docs/assets/date_202306_note.md.CwstFWDo.lean.js @@ -0,0 +1 @@ +import{_ as t,c as n,o as a,m as e}from"./chunks/framework.aTtkxbT6.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"date/202306/note.md","filePath":"date/202306/note.md","lastUpdated":null}'),r={name:"date/202306/note.md"},l=e("ul",null,[e("li",null,[e("p",null,[e("a",{href:"https://mp.weixin.qq.com/s/H0uDj7VnpldW33d2n7p2-w",target:"_blank",rel:"noreferrer"},"一个人开始废掉的表现")])]),e("li",null,[e("p",null,[e("a",{href:"https://mp.weixin.qq.com/s/l6dNUFE1b2xKzncpt4CL_A",target:"_blank",rel:"noreferrer"},"debugger")])])],-1),o=[l];function s(d,c,p,i,_,m){return a(),n("div",null,o)}const h=t(r,[["render",s]]);export{f as __pageData,h as default}; diff --git "a/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.js" "b/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.js" new file mode 100644 index 0000000..1e789bc --- /dev/null +++ "b/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.js" @@ -0,0 +1 @@ +import{_ as t,c as a,o as r,m as e,a as n}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"参考","description":"","frontmatter":{},"headers":[],"relativePath":"date/202306/web中的撤销与重做.md","filePath":"date/202306/web中的撤销与重做.md","lastUpdated":null}'),l={name:"date/202306/web中的撤销与重做.md"},o=e("h1",{id:"参考",tabindex:"-1"},[n("参考 "),e("a",{class:"header-anchor",href:"#参考","aria-label":'Permalink to "参考"'},"​")],-1),s=e("ul",null,[e("li",null,[e("a",{href:"https://zhuanlan.zhihu.com/p/43743782",target:"_blank",rel:"noreferrer"},"Web 应用中的撤销与重做")]),e("li",null,[e("a",{href:"https://blog.csdn.net/wang15061955806/article/details/72652066",target:"_blank",rel:"noreferrer"},"三种 undo/Redo 的实现")])],-1),d=[o,s];function _(c,i,h,p,f,u){return r(),a("div",null,d)}const g=t(l,[["render",_]]);export{b as __pageData,g as default}; diff --git "a/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.lean.js" "b/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.lean.js" new file mode 100644 index 0000000..1e789bc --- /dev/null +++ "b/docs/assets/date_202306_web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.md.ClmhEdwh.lean.js" @@ -0,0 +1 @@ +import{_ as t,c as a,o as r,m as e,a as n}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"参考","description":"","frontmatter":{},"headers":[],"relativePath":"date/202306/web中的撤销与重做.md","filePath":"date/202306/web中的撤销与重做.md","lastUpdated":null}'),l={name:"date/202306/web中的撤销与重做.md"},o=e("h1",{id:"参考",tabindex:"-1"},[n("参考 "),e("a",{class:"header-anchor",href:"#参考","aria-label":'Permalink to "参考"'},"​")],-1),s=e("ul",null,[e("li",null,[e("a",{href:"https://zhuanlan.zhihu.com/p/43743782",target:"_blank",rel:"noreferrer"},"Web 应用中的撤销与重做")]),e("li",null,[e("a",{href:"https://blog.csdn.net/wang15061955806/article/details/72652066",target:"_blank",rel:"noreferrer"},"三种 undo/Redo 的实现")])],-1),d=[o,s];function _(c,i,h,p,f,u){return r(),a("div",null,d)}const g=t(l,[["render",_]]);export{b as __pageData,g as default}; diff --git "a/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.js" "b/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.js" new file mode 100644 index 0000000..201a5b7 --- /dev/null +++ "b/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.js" @@ -0,0 +1 @@ +import{_ as e,c as l,o as a,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"五六月那点事儿","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202307/五六月那点儿事儿.md","filePath":"date/202307/五六月那点儿事儿.md","lastUpdated":null}'),o={name:"date/202307/五六月那点儿事儿.md"},t=i('

五六月那点事儿

导读:

  1. 工作
  2. 生活
  3. 发展

成都

成都啊,曾三去成都。

第一次,是大学临开学前,去姐姐家玩。当时的最深的印象是街道两旁好多好多的常青树,枝繁叶茂,一颗胜过一颗,生机盎然。

第二次,是与同学到成都听讲座。演讲的内容早已忘记,但人还依然记得。

第三次,还是与朋友一起闲逛成都,宽窄巷子、锦里、春熙路、电子科大...

工作

又一次来到了成都,

生活

发展

设计模式中的里氏替换原则,阐述了通过继承、多态对业务进行解耦,但站在个人发展的角度,更推崇聚敛,强调不可替代性。

一位初级工程师可以随时被替代,但要替换一位架构师,是需要花费很大代价的,现实中是不会随意替换架构师的。

前端的现状

技术方面,前端已过了百花齐放的阶段,技术及其周边基本上稳定了下来了。

  • 框架
    • 虚拟DOM系列: React Vue
    • 无虚拟DOM系列: Svelet SolidJS
    • WebComponent: Lit
  • 构建
    • webpack
    • vite
    • rollup
    • esbuild
  • 规范化
    • babel
    • eslint
    • prettier
  • CICD

前端的价值

曾面试某利控股,与面试官聊天时,他的观点是前端会点就行,最主要的还是后端,要更懂后端才行。他拿尤大举例子,说除非前端做到尤大的地步,否则都无所谓。

技术是手段,业务才是价值。通过技术辅助业务实现价值,才能体现出技术的价值。

当前的社会大环境下,大家都提倡将本增效,前端能做些哪些事情体现更大的商业价值呢?

  1. 工具类
  • 低代码平台
  1. 插件类
  • VSCode 插件
  • 浏览器插件
',25),d=[t];function r(c,n,h,p,s,u){return a(),l("div",null,d)}const m=e(o,[["render",r]]);export{b as __pageData,m as default}; diff --git "a/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.lean.js" "b/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.lean.js" new file mode 100644 index 0000000..51b3803 --- /dev/null +++ "b/docs/assets/date_202307_\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.md.yy_Cq3s5.lean.js" @@ -0,0 +1 @@ +import{_ as e,c as l,o as a,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"五六月那点事儿","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202307/五六月那点儿事儿.md","filePath":"date/202307/五六月那点儿事儿.md","lastUpdated":null}'),o={name:"date/202307/五六月那点儿事儿.md"},t=i("",25),d=[t];function r(c,n,h,p,s,u){return a(),l("div",null,d)}const m=e(o,[["render",r]]);export{b as __pageData,m as default}; diff --git a/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.js b/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.js new file mode 100644 index 0000000..4215a28 --- /dev/null +++ b/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.js @@ -0,0 +1 @@ +import{_ as a,c as e,o,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"Chrome Devtools 之 Memory","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202308/Chrome-Memory.md","filePath":"date/202308/Chrome-Memory.md","lastUpdated":null}'),t={name:"date/202308/Chrome-Memory.md"},r=i('

Chrome Devtools 之 Memory

前言

Chrome 开发者工具的“内存”面板提供了有关网页如何使用内存的信息。如果您注意到您的网站变慢了,则应将内存泄漏视为可能的原因。Chrome Memory 标签页旨在解决内存问题,包括调试 JavaScript 内存泄漏。

Memory 面板

Memory 面板用于查找内存问题,例如内存泄漏、膨胀和垃圾回收,这些问题都会影响页面性能。通过录制快照,可以详细的查看当前页面使用情况。

支持快照类型:

  • heap snapshot 堆快照
  • Allocation instrumentation on timeline 时间表上的分配工具
  • Allocation sampling 分配抽样

Heap Snapshot

录制快照

路径:Chrome DevTools --> Memory --> Heap Snapshot --> Take Snapshot

通过上述的步骤可以录制一份当前的内存快照,开发者工具支持将已录制的快照数据存储到本地文件,同时也支持将数据导入到开发者工具。

小技巧:通过导出、导入功能,分析不同时刻下当前站点的内存使用状态,辅助内存使用分析。

面板内容

加载快照后,可以进一步检查 JavaScript 对象和 DOM 节点的内存分布(在拍摄快照时)。

分析数据可以从多个视图查看:

概要视图(Summary View)

可以看到一个表,其中包含从它们派生的构造函数和对象(按大小、距离和保留的对象数分组)。表字段解释:

  • Constructor:用于构造对象的 JavaScript 函数。
  • Distance:与根的距离。距离越远,物体加载和处理所需的时间就越长。
  • Shallow Size:通过特定构造函数创建的每个对象的阴影大小。
  • Retained Size:一组对象中最大的保留大小

包含视图(Containment View)

可以看到一张表,从对象(JavaScript 对象或 DOM 节点)的维度查看堆信息,表字段解释:

  • Object:特定的 JavaScript 对象或 DOM 节点。
  • Distance:一组节点中距离根节点最短的路径
  • Shallow Size:通过特定构造函数创建的每个对象的 Shallow Size 之和
  • Retained Size:一组对象的最大保留大小

统计视图(Statistics View)

环形图,显示存在的每种类型的对象总体占用的内存量。

Allocation instrumentation on timeline

录制操作期间新分配的内容

Allocation sampling

Record memory allocation using sampling method. this profile type has minimal performance overhead and can be used for long running operations. it provide good approximation of allocations broken down by javascript execution stack.

使用采样方法记录内存分配。这种配置文件类型的性能开销最小,可以用于长时间运行的操作。它提供了 javascript 执行堆栈分解的分配的良好近似。

表字段解释:

  • Self Size: 函数本身使用的内存。
  • Total Size: 函数所属集合使用的内存。
  • Function: 在操作中被记录的函数。

何时会出现内存泄漏

  • 意外的全局变量
  • Detached DOM Nodes 分离的 DOM 节点
  • 闭包

案例

总结

',35),l=[r];function n(h,s,m,c,p,d){return o(),e("div",null,l)}const f=a(t,[["render",n]]);export{b as __pageData,f as default}; diff --git a/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.lean.js b/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.lean.js new file mode 100644 index 0000000..010ffb2 --- /dev/null +++ b/docs/assets/date_202308_Chrome-Memory.md.B5Felhk4.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o,a2 as i}from"./chunks/framework.aTtkxbT6.js";const b=JSON.parse('{"title":"Chrome Devtools 之 Memory","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202308/Chrome-Memory.md","filePath":"date/202308/Chrome-Memory.md","lastUpdated":null}'),t={name:"date/202308/Chrome-Memory.md"},r=i("",35),l=[r];function n(h,s,m,c,p,d){return o(),e("div",null,l)}const f=a(t,[["render",n]]);export{b as __pageData,f as default}; diff --git "a/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.js" "b/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.js" new file mode 100644 index 0000000..95399aa --- /dev/null +++ "b/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.js" @@ -0,0 +1,38 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"vue 中的组件销毁","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202308/vue之$destroy.md","filePath":"date/202308/vue之$destroy.md","lastUpdated":null}'),e={name:"date/202308/vue之$destroy.md"},l=n(`

vue 中的组件销毁

通常会在 vue 的生命周期 beforeDestroy 和 destroyed 中做些性能方面的处理,比如注销事件、清楚内存占用等。

vue2 中提供了instance.$destroy接口可以去销毁一个组件,那么$destroy中都做了什么呢

vue2 的 $destroy

js
Vue.prototype.$destroy = function () {
+  const vm: Component = this;
+  if (vm._isBeingDestroyed) {
+    return;
+  }
+  callHook(vm, "beforeDestroy");
+  vm._isBeingDestroyed = true;
+  // remove self from parent
+  const parent = vm.$parent;
+  if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
+    remove(parent.$children, vm);
+  }
+  // teardown scope. this includes both the render watcher and other
+  // watchers created
+  vm._scope.stop();
+  // remove reference from data ob
+  // frozen object may not have observer.
+  if (vm._data.__ob__) {
+    vm._data.__ob__.vmCount--;
+  }
+  // call the last hook...
+  vm._isDestroyed = true;
+  // invoke destroy hooks on current rendered tree
+  vm.__patch__(vm._vnode, null);
+  // fire destroyed hook
+  callHook(vm, "destroyed");
+  // turn off all instance listeners.
+  vm.$off();
+  // remove __vue__ reference
+  if (vm.$el) {
+    vm.$el.__vue__ = null;
+  }
+  // release circular reference (#6759)
+  // https://github.com/vuejs/vue/issues/6759
+  if (vm.$vnode) {
+    vm.$vnode.parent = null;
+  }
+};

从源码中可以看到$destroy主要做了这么几件事:

  1. 调用生命周期钩子beforeDestroy
  2. 从父 VNode 中清楚自身
  3. 清除自身实例上的所有 watcher
  4. 触发后代组件的 destroy 钩子
  5. 调用当前实例的所有监听事件($on 事件)
  6. 移除$el上的__vue__属性
  7. 将组件实例标记为_isDestroyed

从源码实现的话,可以看到整个流程中,操作的是 VueComponent 实例的数据,

`,8),t=[l];function h(p,k,r,d,E,o){return a(),i("div",null,t)}const g=s(e,[["render",h]]);export{c as __pageData,g as default}; diff --git "a/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.lean.js" "b/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.lean.js" new file mode 100644 index 0000000..25411e0 --- /dev/null +++ "b/docs/assets/date_202308_vue\344\271\213_destroy.md.DAAqhEDM.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"vue 中的组件销毁","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202308/vue之$destroy.md","filePath":"date/202308/vue之$destroy.md","lastUpdated":null}'),e={name:"date/202308/vue之$destroy.md"},l=n("",8),t=[l];function h(p,k,r,d,E,o){return a(),i("div",null,t)}const g=s(e,[["render",h]]);export{c as __pageData,g as default}; diff --git a/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.js b/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.js new file mode 100644 index 0000000..3e3d462 --- /dev/null +++ b/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.js @@ -0,0 +1 @@ +import{_ as i,E as o,c as l,b as E,w as a,a3 as n,a2 as t,o as e,J as p,a as s}from"./chunks/framework.aTtkxbT6.js";const h="/assets/minimap.6uz90g-k.png",q=JSON.parse('{"title":"编辑器的缩略图实现原理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202309/minimap/readme.md","filePath":"date/202309/minimap/readme.md","lastUpdated":null}'),B={name:"date/202309/minimap/readme.md"},c=t('

编辑器的缩略图实现原理

一、背景

部分 Web 版的 IDE 编辑器未曾实现缩略图功能,探寻一下缩略图的实现逻辑。以 VSCode 为例。

VSCode 的编辑器是monaco实现的,编辑器的编辑区都是采用的虚拟渲染,即仅渲染可视区的代码,可视区之外的动态去除 DOM 节点。

打开 VScode > Help > Toggle Developer Tools,观察 DOM 节点的状态变化,可以看到是在动态变化。

二、功能特性

参照 VSCode 的缩略图的能力,功能包括:

  1. 滚动。缩略图与编辑器的滚动同步
  2. 拖拽。缩略图中的滑块拖拽功能
  3. 点击。缩略图的非滑块区域,通过点击操作定位到对应的代码位置

其它的特性:

  1. 代码量多的场景下,缩略图中展示的是全量代码中的部分
  2. 代码量多的场景下,滚动时,缩略图中的代码与滑块是同时在滚动的

三、方案设计

假设:

  • 编辑器的屏高为 1,缩略图中展示的最大代码量为 N 屏的代码,代码总量为 M。
  • 能够拿到编辑器的全量代码

整体设计:

',15),d=t('

(一) 滚动同步问题

主要处理两个场景:

  • 编辑器滚动事件
  • 缩略图滚动事件

1.1 编辑器滚动事件

当编辑器滚动时,变更缩略图中代码块偏移位置,以及滑块位置。

具体的,缩略图中的代码块、滑块偏移距离,使用编辑器的滚动百分比进行计算。

核心思路:缩略图中滑块移动的百分比 = 缩略图中代码移动的百分比 = Ace Editor 垂直滚动条移动的百分比

1.2 缩略图滚动事件

为缩略图注册wheel事件,当触发事件时,动态变更编辑器的滚动位置即可

(二)缩略图点击事件

当在缩略图中触发点击事件时,假设鼠标点击位置到滑块左上角的垂直距离 为 Dy

$$ Dy = 滑块的相对偏移高度 + \\frac{滑块的相对偏移高度}{滑块可偏移高度} \\times 缩略图中代码块可偏移高度 $$

从上述的公式中,可以计算出滑块的相对偏移高度,然后即可得出滚动的百分比。

因为,编辑器的滚动百分比 = 缩略图滑块偏移百分比 = 缩略图代码块偏移百分比,此时设置编辑器的滚动高度即可。

四、方案优化

此时缩略中的实现是基于全量代码,渲染所有的代码,通过移动缩略图中的代码实现。

可以将代码块这部分修改为动态渲染,知道了滚动百分比,即可计算出需要渲染的开始行。在知道行高的情况下,计算出结束行。进而实现动态渲染。

五、引用

',19);function A(m,_,u,b,f,g){const r=o("Mermaid");return e(),l("div",null,[c,(e(),E(n,null,{default:a(()=>[p(r,{id:"mermaid-77",class:"mermaid my-class",graph:"graph%20TB%0A%20%20a(%E7%BC%A9%E7%95%A5%E5%9B%BE%E6%BB%9A%E5%8A%A8%E4%BA%8B%E4%BB%B6)%20--%3E%20b%5B%E5%8F%98%E6%9B%B4%E7%BC%96%E8%BE%91%E5%99%A8%E7%9A%84%E5%9E%82%E7%9B%B4%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%20scrollTop%5D%0A%20%20c(%E7%BC%A9%E7%95%A5%E5%9B%BE%E6%8B%96%E6%8B%BD%E4%BA%8B%E4%BB%B6)%20--%3E%20b%0A%20%20d(%E7%BC%A9%E7%95%A5%E5%9B%BE%E7%82%B9%E5%87%BB%E4%BA%8B%E4%BB%B6)%20--%3E%20b%0A%20%20b%20--%3E%20e(%E8%A7%A6%E5%8F%91%E7%BC%96%E8%BE%91%E5%99%A8%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%E6%BB%9A%E5%8A%A8%E4%BA%8B%E4%BB%B6)%0A%20%20e%20--%3E%20f(%E4%BF%AE%E6%94%B9%E7%BC%A9%E7%95%A5%E5%9B%BE%E4%B8%AD%E6%BB%91%E5%9D%97%E7%9A%84%E5%AE%9A%E4%BD%8D)%0A%20%20e%20--%3E%20h(%E4%BF%AE%E6%94%B9%E7%BC%A9%E7%95%A5%E5%9B%BE%E4%B8%AD%E4%BB%A3%E7%A0%81%E5%9D%97%E7%9A%84%E5%AE%9A%E4%BD%8D)%0A%20%20i(%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E4%BB%A3%E7%A0%81%E5%8F%98%E5%8C%96%E4%BA%8B%E4%BB%B6)%20--%3E%20f%0A%20%20i%20--%3E%20h%0A"})]),fallback:a(()=>[s(" Loading... ")]),_:1})),d])}const D=i(B,[["render",A]]);export{q as __pageData,D as default}; diff --git a/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.lean.js b/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.lean.js new file mode 100644 index 0000000..d0b29ff --- /dev/null +++ b/docs/assets/date_202309_minimap_readme.md.CXEDUx_f.lean.js @@ -0,0 +1 @@ +import{_ as i,E as o,c as l,b as E,w as a,a3 as n,a2 as t,o as e,J as p,a as s}from"./chunks/framework.aTtkxbT6.js";const h="/assets/minimap.6uz90g-k.png",q=JSON.parse('{"title":"编辑器的缩略图实现原理","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202309/minimap/readme.md","filePath":"date/202309/minimap/readme.md","lastUpdated":null}'),B={name:"date/202309/minimap/readme.md"},c=t("",15),d=t("",19);function A(m,_,u,b,f,g){const r=o("Mermaid");return e(),l("div",null,[c,(e(),E(n,null,{default:a(()=>[p(r,{id:"mermaid-77",class:"mermaid my-class",graph:"graph%20TB%0A%20%20a(%E7%BC%A9%E7%95%A5%E5%9B%BE%E6%BB%9A%E5%8A%A8%E4%BA%8B%E4%BB%B6)%20--%3E%20b%5B%E5%8F%98%E6%9B%B4%E7%BC%96%E8%BE%91%E5%99%A8%E7%9A%84%E5%9E%82%E7%9B%B4%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%20scrollTop%5D%0A%20%20c(%E7%BC%A9%E7%95%A5%E5%9B%BE%E6%8B%96%E6%8B%BD%E4%BA%8B%E4%BB%B6)%20--%3E%20b%0A%20%20d(%E7%BC%A9%E7%95%A5%E5%9B%BE%E7%82%B9%E5%87%BB%E4%BA%8B%E4%BB%B6)%20--%3E%20b%0A%20%20b%20--%3E%20e(%E8%A7%A6%E5%8F%91%E7%BC%96%E8%BE%91%E5%99%A8%E6%BB%9A%E5%8A%A8%E6%9D%A1%E7%9A%84%E6%BB%9A%E5%8A%A8%E4%BA%8B%E4%BB%B6)%0A%20%20e%20--%3E%20f(%E4%BF%AE%E6%94%B9%E7%BC%A9%E7%95%A5%E5%9B%BE%E4%B8%AD%E6%BB%91%E5%9D%97%E7%9A%84%E5%AE%9A%E4%BD%8D)%0A%20%20e%20--%3E%20h(%E4%BF%AE%E6%94%B9%E7%BC%A9%E7%95%A5%E5%9B%BE%E4%B8%AD%E4%BB%A3%E7%A0%81%E5%9D%97%E7%9A%84%E5%AE%9A%E4%BD%8D)%0A%20%20i(%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E4%BB%A3%E7%A0%81%E5%8F%98%E5%8C%96%E4%BA%8B%E4%BB%B6)%20--%3E%20f%0A%20%20i%20--%3E%20h%0A"})]),fallback:a(()=>[s(" Loading... ")]),_:1})),d])}const D=i(B,[["render",A]]);export{q as __pageData,D as default}; diff --git a/docs/assets/date_202309_width_readme.md.CSNCcfVB.js b/docs/assets/date_202309_width_readme.md.CSNCcfVB.js new file mode 100644 index 0000000..8d094bf --- /dev/null +++ b/docs/assets/date_202309_width_readme.md.CSNCcfVB.js @@ -0,0 +1,11 @@ +import{_ as s,c as i,o as t,a2 as a}from"./chunks/framework.aTtkxbT6.js";const h="/assets/image.BD1WsCVI.png",d="/assets/image-1.BgAY4F9_.png",m=JSON.parse('{"title":"宽度问题","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202309/width/readme.md","filePath":"date/202309/width/readme.md","lastUpdated":null}'),n={name:"date/202309/width/readme.md"},l=a(`

宽度问题

一、魔法

为 DOM 设置宽度有哪些方式呢?最常用的是配置width属性,width属性在配置时,也有多种方式:

  • width
  • min-width
  • max-width

通常当配置了 width 时,不会再配置min-width max-width,如果将这三者混合使用,会有什么魔法效果呢?

测试代码:

html
<style>
+  .box {
+    display: inline-block;
+    border: 1px solid #e8e8e8;
+    min-width: 200px;
+    width: 100px;
+    max-width: 300px;
+  }
+</style>
+
+<div class="box">sdsd</div>
min-widthwidthmax-width盒子最终宽度
200px最小宽度 200px
100px定宽 100px
300px最大宽度 300px
200px100px定宽 Max(min-width, width)
100px300px定宽 Min(width, max-width)
200px100px300px定宽 Max(min-width, width)

二、应用

Alt text

ElementUI 的组件 Select,当可选项的文本较长时,弹框也会跟着扩增宽度,因为它只设置了min-width属性。

提出需求,当可选项的文本过长时,以省略号展示,不运行弹框宽度增加。

此时可以应用上述的规则,为弹框添加一个width: 0px即可

Alt text

',14),p=[l];function e(k,r,E,o,c,g){return t(),i("div",null,p)}const F=s(n,[["render",e]]);export{m as __pageData,F as default}; diff --git a/docs/assets/date_202309_width_readme.md.CSNCcfVB.lean.js b/docs/assets/date_202309_width_readme.md.CSNCcfVB.lean.js new file mode 100644 index 0000000..5ebe1d0 --- /dev/null +++ b/docs/assets/date_202309_width_readme.md.CSNCcfVB.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as t,a2 as a}from"./chunks/framework.aTtkxbT6.js";const h="/assets/image.BD1WsCVI.png",d="/assets/image-1.BgAY4F9_.png",m=JSON.parse('{"title":"宽度问题","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202309/width/readme.md","filePath":"date/202309/width/readme.md","lastUpdated":null}'),n={name:"date/202309/width/readme.md"},l=a("",14),p=[l];function e(k,r,E,o,c,g){return t(),i("div",null,p)}const F=s(n,[["render",e]]);export{m as __pageData,F as default}; diff --git "a/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.js" "b/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.js" new file mode 100644 index 0000000..d583295 --- /dev/null +++ "b/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.js" @@ -0,0 +1,21 @@ +import{_ as s,c as i,o as a,a2 as l}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"概述","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202310/Web性能.md","filePath":"date/202310/Web性能.md","lastUpdated":null}'),t={name:"date/202310/Web性能.md"},p=l(`

概述

CSS

  • css 简写,减少字节数
  • css 浅选择器,大幅减少样式表的大小
  • uncss 移除多余的属性
  • 避免@import。会造成延迟渲染
  • 过渡
  • will-change
  • 关键 css 及其解决的问题
    • 关键 css。用户立即看到的内容
    • 非关键 css
  • loadcss 库,使用 perload 语法加载首屏以外的内容
  • cssrelpreload
  • mydevice.io 枚举各种设备的分辨率
html
<link
+  rel="preload"
+  href="css/styles.min.css"
+  as="style"
+  onload="this.rel='stylesheet'"
+/>

图片

html
<picture>
+  <source
+    srcset="/media/cc0-images/surfer-240-200.jpg"
+    media="(orientation: portrait)"
+  />
+  <img src="/media/cc0-images/painted-hand-298-332.jpg" alt="" />
+</picture>

主流图像类型:

  1. 光栅(位图)。JPEG、PNG、GIF
    • 有损。JPEG、WebP(有损)
    • 无损。GIF、PNG、WebP(无损)
  2. SVG。矢量图,任意缩放不会任何视觉效果

自适应图片

html
<img
+  src="image-small.jpg"
+  srcset="image-medium.jpg 640w, image-large.jpg 1280w"
+/>
+
+<img
+  src="image-small.jpg"
+  srcset="image-medium.jpg 640w, image-large.jpg 1280w"
+  sizes="(min-width: 704px) 50vw, 100vw"
+/>

图像的进一步处理

  • 雪碧图
  • 压缩图片
  • webp
  • 延迟加载

雪碧图

  • npm i -g svg-sprite

图片优化

  • imagemin
  • svgo

第 9 章 使用 Service Worker 提升性能

第 10 章 微调资源传输

第 11 章 http2

http1

  • 问题:
    • 对首阻塞。通常一次最大处理六个请求
    • 未压缩的头部
    • 缺少 HTTPS 的授权

http2

  • 提供成本更低的请求
    • 一套新的传输体系。连接->流->消息->帧
    • http2,一个连接,处理多个请求
  • 头部压缩。
    • 采用索引的思路,对相同的 header 值只用引用
  • 服务器推送

关于 Http1 的思考:

Q1:http1,性能优化时,通常都会去竭力去减少请求数量,根本原因是什么?

A1:因为队首阻塞的原因,同一批次的 6 个请求若是未完成,则后续的请求会一直处于等待状态。

Q2:域名分片,可用,但麻烦,不值得

A2:通过不用的域名,绕过最大的并发请求限制。

Q3:为何要压缩头部

A4:1. 现代请求通常在 headers 添加很多信息,如跨域、Token、Cookie 等,头部越来越大。在传输时,压缩头部是还很有必要的。

Q4:服务器压缩了什么?

A4:服务器仅仅压缩传输的 Body,不压缩 headers

Q5:内联资源的优劣势

A5:劣势:不能使用缓存;加快页面的渲染速度,因为内联资源不会单独开发起请求获取数据。

关于 Http2 的思考:

Q1:服务器的压力增加了?

A2:从测试来看,当大批量请求发起时。http1 时,请求的瓶颈压力在前端,使用瀑布图查看时,请求的排队时间过长;http2 时,请求的响应时间过长。所以,从请求发起到请求结束,孰优孰劣?这是个问题。

资源压缩

HTTP2 服务器推送

服务器推送静态资源,在相应头中添加 header:

link: <./css/index.css>; rel=preload; as=style

服务器推送,不会考虑缓存问题,无论用户代理是否存在缓存,都会推送全量数据

HTTP 1 / HTTP 2 优化时的差异点:

  1. HTTP 1 优化时更多的考虑资源捆绑,如雪碧图,减少请求数量
  2. HTTP 2 优化时,更多考虑的是颗粒度。因为连接的代价更低,优先利用 HTTP 缓存的特性进行优化

gulp

gulp 是一个流式构建系统。流从磁盘上的源读取数据,并进行处理和转换,然后将结果写回磁盘。常见的任务能力:

  • 缩小 HTML
  • JS 处理。丑化 JS
  • CSS 处理。编译 less、scss 等
  • 图片处理。压缩图片、转 WebP 等

生态很好

思考:

  • gulp 与 webpack 之间的区别,优劣势

插件:

  1. 提供网格条线
`,52),e=[p];function h(n,k,r,d,o,E){return a(),i("div",null,e)}const u=s(t,[["render",h]]);export{c as __pageData,u as default}; diff --git "a/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.lean.js" "b/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.lean.js" new file mode 100644 index 0000000..9cf0a9d --- /dev/null +++ "b/docs/assets/date_202310_Web\346\200\247\350\203\275.md.DfUyJegJ.lean.js" @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as l}from"./chunks/framework.aTtkxbT6.js";const c=JSON.parse('{"title":"概述","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202310/Web性能.md","filePath":"date/202310/Web性能.md","lastUpdated":null}'),t={name:"date/202310/Web性能.md"},p=l("",52),e=[p];function h(n,k,r,d,o,E){return a(),i("div",null,e)}const u=s(t,[["render",h]]);export{c as __pageData,u as default}; diff --git "a/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.js" "b/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.js" new file mode 100644 index 0000000..b79ed13 --- /dev/null +++ "b/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.js" @@ -0,0 +1,43 @@ +import{_ as a,E as t,c as h,J as l,w as n,a2 as s,o as e,a as p}from"./chunks/framework.aTtkxbT6.js";const q=JSON.parse('{"title":"性能优化总纲","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202310/性能优化总纲.md","filePath":"date/202310/性能优化总纲.md","lastUpdated":null}'),k={name:"date/202310/性能优化总纲.md"},r=s(`

性能优化总纲

本文仅论述优化的手段,不涉及执行这些操作的根因,后续空闲时在整理“为什么”。

一、性能指标

指标有很多,比如 lighthouse 中使用的指标有 FCP、LCP、TBT、CLS、Speed Index,这些是最终的性能评估指标。

性能优化方案落地时,主要参看的指标:

指标名词解释描述
DCL [DOMContentLoaded]DOM 解析结束时间HTML 文档被解析成 DOM 树并且所有的标签都已经可用,但是外部资源(如图像、样式表等)可能还没有加载完成。
FP [First Pain]首次绘制浏览器首次将像素渲染到屏幕上的时间点,即页面第一次有可见的内容呈现给用户。
FCP [First Content Pain]首次内容绘制浏览器首次将第一个有意义的内容(如文本、图像、SVG 等)呈现到屏幕上的时间点。
LOAD加载结束时间在整个页面及其所有资源(包括图像、样式表、脚本等)加载完成后触发。

(1)指标对应的值的获取

通过 Chrome 的 Performance 面板,可以看到大部分的值,这里说下如何通过 API 获取值。

1.1 DCL

js
console.time("DCL");
+document.addEventListener("DOMContentLoaded", function (event) {
+  console.timeEnd("DCL");
+});

1.2 FP 与 FCP

js
const [fp, fcp] = performance.getEntriesByType("paint");
+
+const fpDuration = fp.startTime;
+const fcpDuration = fcp.startTime;

1.3 Load

js
const entry = performance.getEntries()[0];
+const loadDuration = entry.duration;

二、资源模块

针对静态资源保持一个大体的优化思路,即在当前优先处理与当前页面相关的资源。

(1)HTML 资源

下载过程中没有相关的处理

(2)CSS 资源

2.1 减少字节

  • CSS 简写。属性能够简写的,不要分开写
  • CSS 浅选择器。去除非必要的、详细的选择器,这是一个累活。

2.2 移除未使用的 CSS

一个复杂项目中可能会加载很多的 css 样式表,有些样式表不一定会被使用到,可以将这部分的样式去除。相关工具:

  • uncss

2.3 启用 GPU 渲染

针对变换、动画等场景,可以启用 GPU 渲染。方式:

  • will-change

2.4 @import 问题

避免@import,其弊端:

  • 阻塞页面加载。当使用@import 导入外部样式表时,浏览器会在解析到@import 规则时暂停页面渲染,并立即请求导入的样式表
  • 顺序依赖性。@import 导入的样式表必须在主样式表中等待导入样式表加载完毕后才能应用。
  • 额外的 HTTP 请求。每次使用@import 导入样式表时,浏览器都需要发起额外的 HTTP 请求来获取该样式表
  • 无法并行加载。由于@import 导入的样式表必须在主样式表中等待加载完毕后才能继续渲染,因此无法与主样式表并行加载。

(3)JS 资源

3.1 资源处理

压缩

压缩资源,将多余的换行符、多余的打印等去除;

丑化

丑化资源,将代码中变量名、函数名等替换为简短的、难以阅读的代码。

分包

当个 JS 文件交大时,尝试执行分包处理。主流的构建工具都包含对应的处理方式:

  • webpack
    • dll。将第三方库按照一个的规则抽成一个或多个文件。
    • optimization
      • externals。第三方库,以 umd 的方式引入工程。打包时不参与打包
      • splitChunks。按照一定的规则将包模块进行拆分。
  • rollup
    • manualChunks。按照一定的规则将包模块进行拆分。

3.2 资源下载

  • async。异步加载资源,下载完成后立即执行脚本
  • defer。异步加载资源,在 load 事件时执行脚本
  • preload。提前加载资源
  • prefetch。空闲时加载下一个页面需要使用的资源

(4)图片资源

4.1 图标

有段时间,雪碧图是一个很流行的图标整合方式。到了现在这个阶段,字体图标是一个更好的方案。比如:阿里字体图

4.2 格式选择

常用的图片格式有 png、jpg、svg、webp。图片可以按照多个维度进行划分,如下:

  • 无损图和有损图
  • 光栅图和矢量图

WebP有 google 开发,旨在提供更高的压缩率和更高的图像质量,以替代传统的 JPEG、PNG 和 GIF 格式。WebP格式的特性:

  • 支持有损压缩和无损压缩
  • 支持透明色
  • 支持动态图
  • 压缩率更高

推荐使用WebP格式,主流浏览器厂商都已支持。

4.3 回退写法

为了保险起见,可以采用<picture>标签的回退语法确保正常显示。

html
<picture>
+  <source srcset="image.webp" type="image/webp" />
+  <source srcset="image.jpg" type="image/jpeg" />
+  <img src="image.jpg" alt="图像" />
+</picture>

三、预加载

预加载分为几种类型,如:

(1)网络处理

dns-prefetch

浏览器在用户浏览页面时,在后台运行 DNS 的解析

html
<link rel="dns-prefetch" href="//fonts.googleapis.com" />

preconnect

允许浏览器在一个 HTTP 请求正式发给服务器前预先执行一些操作,这包括 DNS 解析,TLS 协商,TCP 握手,这消除了往返延迟并为用户节省了时间。

html
<link href="https://cdn.domain.com" rel="preconnect" crossorigin />

(2)资源预加载

在浏览器空闲时,加载站点将来可能用到的资源。

html
<!-- 图片 -->
+<link rel="prefetch" href="/uploads/images/pic.png" />
+<!-- 样式表 -->
+<link rel="preload" href="styles.css" as="style" />
+<!-- 脚本 -->
+<link rel="preload" href="jQuery.js" as="javascript" />

四、懒加载

(1)图片懒加载

当资源出现在可视区时,再加载资源。实现方式,基于IntersectionObserve + src 替换的思路实现。

(2)路由懒加载

现代工程,大多是 SPA 工程,路由是有前端控制,当路由变化时再加载对应的资源很有必要。

2.1 Vue 工程

js
const Home = () => import("./components/Home.vue");
+const About = () => import("./components/About.vue");
+
+const routes = [
+  { path: "/", component: Home },
+  { path: "/about", component: About },
+];
+
+const router = new VueRouter({
+  routes,
+});

2.2 React 工程

js
const Home = React.lazy(() => import("./components/Home"));
+const About = React.lazy(() => import("./components/About"));
+
+function App() {
+  return (
+    <Router>
+      <Suspense fallback={<div>Loading...</div>}>
+        <Switch>
+          <Route exact path="/" component={Home} />
+          <Route path="/about" component={About} />
+        </Switch>
+      </Suspense>
+    </Router>
+  );
+}
+
+export default App;

五、网络模块

(1)CDN

启用 CDN 网络,减少资源的加载时长。比如:腾讯桶

(2)压缩

请求传输的压缩算法,常用的有:

  • GZIP。一种常用的压缩算法,它基于 DEFLATE 算法
  • Brotli。由谷歌开发,与 GZIP 和 Deflate 相比,Brotli 具有更高的压缩率。
`,80),d=s('

存在无损的 PNG 资源时,不要启用 GZIP。否则会起到反效果,导致压缩后的文件更大

(3)HTTP

升级为 HTTP/2,好处:

  • 提供成本更低的请求
    • 一套新的传输体系。连接->流->消息->帧
    • HTTP/2,一个连接,处理多个请求
  • 头部压缩。
    • 采用索引的思路,对相同的 header 值只用引用
  • 服务器推送

六、总结

性能优化,名词高大上,真正落地时会发现都是些基本功。

方法很简单,重要的是要知道为什么要这么做,空闲时再聊这块。

',7);function E(o,g,c,y,u,F){const i=t("font");return e(),h("div",null,[r,l(i,{color:"red"},{default:n(()=>[p("备注:")]),_:1}),d])}const b=a(k,[["render",E]]);export{q as __pageData,b as default}; diff --git "a/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.lean.js" "b/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.lean.js" new file mode 100644 index 0000000..138ec92 --- /dev/null +++ "b/docs/assets/date_202310_\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.md.DJ_UNkqB.lean.js" @@ -0,0 +1 @@ +import{_ as a,E as t,c as h,J as l,w as n,a2 as s,o as e,a as p}from"./chunks/framework.aTtkxbT6.js";const q=JSON.parse('{"title":"性能优化总纲","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202310/性能优化总纲.md","filePath":"date/202310/性能优化总纲.md","lastUpdated":null}'),k={name:"date/202310/性能优化总纲.md"},r=s("",80),d=s("",7);function E(o,g,c,y,u,F){const i=t("font");return e(),h("div",null,[r,l(i,{color:"red"},{default:n(()=>[p("备注:")]),_:1}),d])}const b=a(k,[["render",E]]);export{q as __pageData,b as default}; diff --git "a/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.js" "b/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.js" new file mode 100644 index 0000000..4ea8f0c --- /dev/null +++ "b/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o,a2 as t}from"./chunks/framework.aTtkxbT6.js";const c="/assets/gantt.BB9rQpxZ.png",f=JSON.parse('{"title":"一次特殊的开发过程","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202312/一次特殊的项目开发过程.md","filePath":"date/202312/一次特殊的项目开发过程.md","lastUpdated":null}'),d={name:"date/202312/一次特殊的项目开发过程.md"},p=t('

一次特殊的开发过程

当一个项目,备受领导重视,要啥给啥时,你是否很高兴呢?

当一个项目,开发、测试、上线周期仅有一个月的时间时,你是否高兴呢?

当一个项目,主开发人员均为临时支援人员的时候,你是否有点慌呢?

当一个项目,仅有一两位知道大部分产品设计时,你是否确实慌了呢?

当一个项目的参与人员达到八十人时,你是否压力倍增呢?

当上面的假设均为真,汇聚在一个项目中时,做我负责人的你,是否心底颤抖呢?反正我是挺慌的,甚至觉的这是一个注定要黄的项目。

当一个项目的资源、进度、质量,复杂一个量级时,如何规划任务、进度、质量呢?

一、灰度上线了

如上面所述,有幸参与到一次特殊的项目开发过程,上文的所有属性均已满足,领导重视一个月上线临时支援人员模糊的产品八十人...

老实说,接到任务时,我是挺慌的,甚至一度认为,哪怕多给一倍的开发周期,也必定是完不成的。

但结果是好的,仅比预期的上线周期晚了一周,暂时达到了灰度上线的目标。

二、畸形的项目

整个项目的参与人员分为数个工种:项目、产品、UI/UE、前端、后台、测试

整个项目的参与人员一度达到了八十人左右,为什么说是一度?因为人员是一批一批的加入的,并不是在项目开工之出就一次性投入的。

此次项目的特殊点:

  • 此次项目没有启动大会,准确的说,没有针对涉及所有人员的启动大会。
  • 此次项目没有需求,准确的说,开发人员不知道需求。
  • 此次项目没有范围,准确的说,开发人员不知道功能范围边界在哪里。

所以问题来了,如何保证项目质量的?

答案是,测试人员。在此次项目中,测试人员可以被看做是需求提出者功能验收者的集合体。从测试人员介入测试开始,到第一次灰度上线,这之间,产生了三千多的 BUG 单,恐怖如斯~_~

三、人员流动

gantt

从 gantt 图中可以看到,其中一位很重要的角色,产品

',22),r=[p];function _(l,i,n,s,h,u){return o(),a("div",null,r)}const b=e(d,[["render",_]]);export{f as __pageData,b as default}; diff --git "a/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.lean.js" "b/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.lean.js" new file mode 100644 index 0000000..31c0036 --- /dev/null +++ "b/docs/assets/date_202312_\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.md.BvO4ibrI.lean.js" @@ -0,0 +1 @@ +import{_ as e,c as a,o,a2 as t}from"./chunks/framework.aTtkxbT6.js";const c="/assets/gantt.BB9rQpxZ.png",f=JSON.parse('{"title":"一次特殊的开发过程","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"date/202312/一次特殊的项目开发过程.md","filePath":"date/202312/一次特殊的项目开发过程.md","lastUpdated":null}'),d={name:"date/202312/一次特殊的项目开发过程.md"},p=t("",22),r=[p];function _(l,i,n,s,h,u){return o(),a("div",null,r)}const b=e(d,[["render",_]]);export{f as __pageData,b as default}; diff --git a/docs/assets/dom-to-image.D7OdatTm.webp b/docs/assets/dom-to-image.D7OdatTm.webp new file mode 100644 index 0000000..9721ef4 Binary files /dev/null and b/docs/assets/dom-to-image.D7OdatTm.webp differ diff --git a/docs/assets/esno.CN4cTvIV.webp b/docs/assets/esno.CN4cTvIV.webp new file mode 100644 index 0000000..fa32506 Binary files /dev/null and b/docs/assets/esno.CN4cTvIV.webp differ diff --git a/docs/assets/flowchart_js.DJ63wmX2.webp b/docs/assets/flowchart_js.DJ63wmX2.webp new file mode 100644 index 0000000..838715e Binary files /dev/null and b/docs/assets/flowchart_js.DJ63wmX2.webp differ diff --git a/docs/assets/gantt.BB9rQpxZ.png b/docs/assets/gantt.BB9rQpxZ.png new file mode 100644 index 0000000..0c3ed44 Binary files /dev/null and b/docs/assets/gantt.BB9rQpxZ.png differ diff --git a/docs/assets/heatmapjs.kIvqv1rY.webp b/docs/assets/heatmapjs.kIvqv1rY.webp new file mode 100644 index 0000000..7e2e698 Binary files /dev/null and b/docs/assets/heatmapjs.kIvqv1rY.webp differ diff --git a/docs/assets/image-1.BgAY4F9_.png b/docs/assets/image-1.BgAY4F9_.png new file mode 100644 index 0000000..ef1a491 Binary files /dev/null and b/docs/assets/image-1.BgAY4F9_.png differ diff --git a/docs/assets/image.BD1WsCVI.png b/docs/assets/image.BD1WsCVI.png new file mode 100644 index 0000000..e303f6a Binary files /dev/null and b/docs/assets/image.BD1WsCVI.png differ diff --git a/docs/assets/index.md.CJT3269x.js b/docs/assets/index.md.CJT3269x.js new file mode 100644 index 0000000..a4bbbed --- /dev/null +++ b/docs/assets/index.md.CJT3269x.js @@ -0,0 +1 @@ +import{V as s}from"./chunks/theme.DI3JhXoF.js";import{c as l,J as a,p as n,m as t,o}from"./chunks/framework.aTtkxbT6.js";const i="/assets/wechat_article.Cvy5-M3E.jpg",c=t("hr",null,null,-1),r=t("div",{class:"tip custom-block"},[t("p",{class:"custom-block-title"},"埃隆·马斯克"),t("p",null,"对于所有曾被我冒犯的人,我只想对你们说,我重新发明了电动车,我要用火箭飞船把人类送上火星。"),t("p",null,"可我要是个冷静、随和的普通人,你们觉得我还能做到这些吗?")],-1),m=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"史蒂夫·乔布斯"),t("p",null,"只有疯狂到认为自己可以改变世界的人才能改变世界。")],-1),d=t("hr",null,null,-1),p=t("hr",null,null,-1),u=t("footer",{style:{"text-align":"center"}},[t("img",{style:{display:"inline-block"},src:i,alt:""}),t("p",null,"微信公众号")],-1),g=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"author","content":"swlws"}],["meta",{"name":"keywords","content":"swlws 双周回顾"}]],"hero":{"text":"安安静静的小世界","tagline":"输出、分享、推广","actions":[{"theme":"brand","text":"Markdown Examples","link":"/markdown-examples"},{"theme":"alt","text":"API Examples","link":"/api-examples"}]},"features":[{"title":"每日","details":"每日随意记录,开发过程中的踩坑记录、经验总结"},{"title":"周","details":"固定双周回顾(不出意外的话),回顾经历、总结成长、展望未来"},{"title":"工具","details":"小工具"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),_={name:"index.md"},f=Object.assign(_,{setup(h){const e=[{avatar:"https://www.github.com/swlws.png",name:"swlws",title:"Creator",links:[{icon:"github",link:"https://github.com/swlws"}]}];return(w,k)=>(o(),l("div",null,[c,r,m,d,a(n(s),{size:"small",members:e}),p,u]))}});export{g as __pageData,f as default}; diff --git a/docs/assets/index.md.CJT3269x.lean.js b/docs/assets/index.md.CJT3269x.lean.js new file mode 100644 index 0000000..a4bbbed --- /dev/null +++ b/docs/assets/index.md.CJT3269x.lean.js @@ -0,0 +1 @@ +import{V as s}from"./chunks/theme.DI3JhXoF.js";import{c as l,J as a,p as n,m as t,o}from"./chunks/framework.aTtkxbT6.js";const i="/assets/wechat_article.Cvy5-M3E.jpg",c=t("hr",null,null,-1),r=t("div",{class:"tip custom-block"},[t("p",{class:"custom-block-title"},"埃隆·马斯克"),t("p",null,"对于所有曾被我冒犯的人,我只想对你们说,我重新发明了电动车,我要用火箭飞船把人类送上火星。"),t("p",null,"可我要是个冷静、随和的普通人,你们觉得我还能做到这些吗?")],-1),m=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"史蒂夫·乔布斯"),t("p",null,"只有疯狂到认为自己可以改变世界的人才能改变世界。")],-1),d=t("hr",null,null,-1),p=t("hr",null,null,-1),u=t("footer",{style:{"text-align":"center"}},[t("img",{style:{display:"inline-block"},src:i,alt:""}),t("p",null,"微信公众号")],-1),g=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","head":[["meta",{"name":"author","content":"swlws"}],["meta",{"name":"keywords","content":"swlws 双周回顾"}]],"hero":{"text":"安安静静的小世界","tagline":"输出、分享、推广","actions":[{"theme":"brand","text":"Markdown Examples","link":"/markdown-examples"},{"theme":"alt","text":"API Examples","link":"/api-examples"}]},"features":[{"title":"每日","details":"每日随意记录,开发过程中的踩坑记录、经验总结"},{"title":"周","details":"固定双周回顾(不出意外的话),回顾经历、总结成长、展望未来"},{"title":"工具","details":"小工具"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),_={name:"index.md"},f=Object.assign(_,{setup(h){const e=[{avatar:"https://www.github.com/swlws.png",name:"swlws",title:"Creator",links:[{icon:"github",link:"https://github.com/swlws"}]}];return(w,k)=>(o(),l("div",null,[c,r,m,d,a(n(s),{size:"small",members:e}),p,u]))}});export{g as __pageData,f as default}; diff --git a/docs/assets/inter-italic-cyrillic-ext.5XJwZIOp.woff2 b/docs/assets/inter-italic-cyrillic-ext.5XJwZIOp.woff2 new file mode 100644 index 0000000..2a68729 Binary files /dev/null and b/docs/assets/inter-italic-cyrillic-ext.5XJwZIOp.woff2 differ diff --git a/docs/assets/inter-italic-cyrillic.D6csxwjC.woff2 b/docs/assets/inter-italic-cyrillic.D6csxwjC.woff2 new file mode 100644 index 0000000..f640351 Binary files /dev/null and b/docs/assets/inter-italic-cyrillic.D6csxwjC.woff2 differ diff --git a/docs/assets/inter-italic-greek-ext.CHOfFY1k.woff2 b/docs/assets/inter-italic-greek-ext.CHOfFY1k.woff2 new file mode 100644 index 0000000..0021896 Binary files /dev/null and b/docs/assets/inter-italic-greek-ext.CHOfFY1k.woff2 differ diff --git a/docs/assets/inter-italic-greek.9J96vYpw.woff2 b/docs/assets/inter-italic-greek.9J96vYpw.woff2 new file mode 100644 index 0000000..71c265f Binary files /dev/null and b/docs/assets/inter-italic-greek.9J96vYpw.woff2 differ diff --git a/docs/assets/inter-italic-latin-ext.BGcWXLrn.woff2 b/docs/assets/inter-italic-latin-ext.BGcWXLrn.woff2 new file mode 100644 index 0000000..9c1b944 Binary files /dev/null and b/docs/assets/inter-italic-latin-ext.BGcWXLrn.woff2 differ diff --git a/docs/assets/inter-italic-latin.DbsTr1gm.woff2 b/docs/assets/inter-italic-latin.DbsTr1gm.woff2 new file mode 100644 index 0000000..01fcf20 Binary files /dev/null and b/docs/assets/inter-italic-latin.DbsTr1gm.woff2 differ diff --git a/docs/assets/inter-italic-vietnamese.DHNAd7Wr.woff2 b/docs/assets/inter-italic-vietnamese.DHNAd7Wr.woff2 new file mode 100644 index 0000000..e4f788e Binary files /dev/null and b/docs/assets/inter-italic-vietnamese.DHNAd7Wr.woff2 differ diff --git a/docs/assets/inter-roman-cyrillic-ext.DxP3Awbn.woff2 b/docs/assets/inter-roman-cyrillic-ext.DxP3Awbn.woff2 new file mode 100644 index 0000000..28593cc Binary files /dev/null and b/docs/assets/inter-roman-cyrillic-ext.DxP3Awbn.woff2 differ diff --git a/docs/assets/inter-roman-cyrillic.CMhn1ESj.woff2 b/docs/assets/inter-roman-cyrillic.CMhn1ESj.woff2 new file mode 100644 index 0000000..a20adc1 Binary files /dev/null and b/docs/assets/inter-roman-cyrillic.CMhn1ESj.woff2 differ diff --git a/docs/assets/inter-roman-greek-ext.D0mI3NpI.woff2 b/docs/assets/inter-roman-greek-ext.D0mI3NpI.woff2 new file mode 100644 index 0000000..e3b0be7 Binary files /dev/null and b/docs/assets/inter-roman-greek-ext.D0mI3NpI.woff2 differ diff --git a/docs/assets/inter-roman-greek.JvnBZ4YD.woff2 b/docs/assets/inter-roman-greek.JvnBZ4YD.woff2 new file mode 100644 index 0000000..f790e04 Binary files /dev/null and b/docs/assets/inter-roman-greek.JvnBZ4YD.woff2 differ diff --git a/docs/assets/inter-roman-latin-ext.ZlYT4o7i.woff2 b/docs/assets/inter-roman-latin-ext.ZlYT4o7i.woff2 new file mode 100644 index 0000000..715bd90 Binary files /dev/null and b/docs/assets/inter-roman-latin-ext.ZlYT4o7i.woff2 differ diff --git a/docs/assets/inter-roman-latin.Bu8hRsVA.woff2 b/docs/assets/inter-roman-latin.Bu8hRsVA.woff2 new file mode 100644 index 0000000..a540b7a Binary files /dev/null and b/docs/assets/inter-roman-latin.Bu8hRsVA.woff2 differ diff --git a/docs/assets/inter-roman-vietnamese.ClpjcLMQ.woff2 b/docs/assets/inter-roman-vietnamese.ClpjcLMQ.woff2 new file mode 100644 index 0000000..5a9f9cb Binary files /dev/null and b/docs/assets/inter-roman-vietnamese.ClpjcLMQ.woff2 differ diff --git a/docs/assets/iradesign.-BdYxQiC.png b/docs/assets/iradesign.-BdYxQiC.png new file mode 100644 index 0000000..4b02a78 Binary files /dev/null and b/docs/assets/iradesign.-BdYxQiC.png differ diff --git a/docs/assets/js-sequence-diagrams.CIvhC3O4.webp b/docs/assets/js-sequence-diagrams.CIvhC3O4.webp new file mode 100644 index 0000000..9b0f7b9 Binary files /dev/null and b/docs/assets/js-sequence-diagrams.CIvhC3O4.webp differ diff --git a/docs/assets/jsdoc.BUrWOlqY.webp b/docs/assets/jsdoc.BUrWOlqY.webp new file mode 100644 index 0000000..d768a00 Binary files /dev/null and b/docs/assets/jsdoc.BUrWOlqY.webp differ diff --git a/docs/assets/markdoc.4IYRYQ7O.png b/docs/assets/markdoc.4IYRYQ7O.png new file mode 100644 index 0000000..8e967f3 Binary files /dev/null and b/docs/assets/markdoc.4IYRYQ7O.png differ diff --git a/docs/assets/minimap.6uz90g-k.png b/docs/assets/minimap.6uz90g-k.png new file mode 100644 index 0000000..64927a9 Binary files /dev/null and b/docs/assets/minimap.6uz90g-k.png differ diff --git a/docs/assets/modern-screenshot.Bhcj-uQQ.webp b/docs/assets/modern-screenshot.Bhcj-uQQ.webp new file mode 100644 index 0000000..c54eb9d Binary files /dev/null and b/docs/assets/modern-screenshot.Bhcj-uQQ.webp differ diff --git a/docs/assets/nue-js.1emRvQ86.webp b/docs/assets/nue-js.1emRvQ86.webp new file mode 100644 index 0000000..ada478f Binary files /dev/null and b/docs/assets/nue-js.1emRvQ86.webp differ diff --git a/docs/assets/pjchender.CiuMGb2Z.png b/docs/assets/pjchender.CiuMGb2Z.png new file mode 100644 index 0000000..e9eb4bb Binary files /dev/null and b/docs/assets/pjchender.CiuMGb2Z.png differ diff --git a/docs/assets/pkg-size.CBJn0NLf.png b/docs/assets/pkg-size.CBJn0NLf.png new file mode 100644 index 0000000..a30520a Binary files /dev/null and b/docs/assets/pkg-size.CBJn0NLf.png differ diff --git a/docs/assets/pmp.Clme-lZi.jpg b/docs/assets/pmp.Clme-lZi.jpg new file mode 100644 index 0000000..1e2d98d Binary files /dev/null and b/docs/assets/pmp.Clme-lZi.jpg differ diff --git a/docs/assets/png-gzip.pS8gDHuF.webp b/docs/assets/png-gzip.pS8gDHuF.webp new file mode 100644 index 0000000..fdb7df0 Binary files /dev/null and b/docs/assets/png-gzip.pS8gDHuF.webp differ diff --git a/docs/assets/read.D5PWbxP9.png b/docs/assets/read.D5PWbxP9.png new file mode 100644 index 0000000..e889871 Binary files /dev/null and b/docs/assets/read.D5PWbxP9.png differ diff --git a/docs/assets/spread-js.DkrmGFDp.webp b/docs/assets/spread-js.DkrmGFDp.webp new file mode 100644 index 0000000..ed4981a Binary files /dev/null and b/docs/assets/spread-js.DkrmGFDp.webp differ diff --git a/docs/assets/struct.Br_Nri3S.png b/docs/assets/struct.Br_Nri3S.png new file mode 100644 index 0000000..957d413 Binary files /dev/null and b/docs/assets/struct.Br_Nri3S.png differ diff --git a/docs/assets/style.DHtfMz5m.css b/docs/assets/style.DHtfMz5m.css new file mode 100644 index 0000000..4bc91f7 --- /dev/null +++ b/docs/assets/style.DHtfMz5m.css @@ -0,0 +1 @@ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.CMhn1ESj.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.DxP3Awbn.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.JvnBZ4YD.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.D0mI3NpI.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.Bu8hRsVA.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.ZlYT4o7i.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.ClpjcLMQ.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.D6csxwjC.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.5XJwZIOp.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.9J96vYpw.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.CHOfFY1k.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.DbsTr1gm.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.BGcWXLrn.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.DHNAd7Wr.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{display:inline-block;margin:auto 2px -2px}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c139a416]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c139a416],.VPBackdrop.fade-leave-to[data-v-c139a416]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c139a416]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c139a416]{display:none}}.NotFound[data-v-247423a4]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-247423a4]{padding:96px 32px 168px}}.code[data-v-247423a4]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-247423a4]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-247423a4]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-247423a4]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-247423a4]{padding-top:20px}.link[data-v-247423a4]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-247423a4]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-81402b3e]{position:relative;z-index:1}.nested[data-v-81402b3e]{padding-right:16px;padding-left:16px}.outline-link[data-v-81402b3e]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-81402b3e]:hover,.outline-link.active[data-v-81402b3e]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-81402b3e]{padding-left:13px}.VPDocAsideOutline[data-v-5ff0401b]{display:none}.VPDocAsideOutline.has-outline[data-v-5ff0401b]{display:block}.content[data-v-5ff0401b]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-5ff0401b]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-5ff0401b]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-0d7c0cd0]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-0d7c0cd0]{flex-grow:1}.VPDocAside[data-v-0d7c0cd0] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-0d7c0cd0] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-0d7c0cd0] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-b58b6712]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-b58b6712]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-db0d4041]{margin-top:64px}.edit-info[data-v-db0d4041]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-db0d4041]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-db0d4041]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-db0d4041]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-db0d4041]{margin-right:8px}.prev-next[data-v-db0d4041]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-db0d4041]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-db0d4041]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-db0d4041]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-db0d4041]{margin-left:auto;text-align:right}.desc[data-v-db0d4041]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-db0d4041]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-dd3e4fdc]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-dd3e4fdc]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-dd3e4fdc]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-dd3e4fdc]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-dd3e4fdc]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-dd3e4fdc]{display:flex;justify-content:center}.VPDoc .aside[data-v-dd3e4fdc]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-dd3e4fdc]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-dd3e4fdc]{max-width:1104px}}.container[data-v-dd3e4fdc]{margin:0 auto;width:100%}.aside[data-v-dd3e4fdc]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-dd3e4fdc]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-dd3e4fdc]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-dd3e4fdc]::-webkit-scrollbar{display:none}.aside-curtain[data-v-dd3e4fdc]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-dd3e4fdc]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-dd3e4fdc]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-dd3e4fdc]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-dd3e4fdc]{order:1;margin:0;min-width:640px}}.content-container[data-v-dd3e4fdc]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-dd3e4fdc]{max-width:688px}.VPButton[data-v-e91f229d]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-e91f229d]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-e91f229d]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-e91f229d]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-e91f229d]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-e91f229d]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-e91f229d]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-e91f229d]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-e91f229d]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-e91f229d]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-e91f229d]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-e91f229d]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-e91f229d]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-3fe7ce4a]{display:none}.dark .VPImage.light[data-v-3fe7ce4a]{display:none}.VPHero[data-v-2e1d2e76]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-2e1d2e76]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-2e1d2e76]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-2e1d2e76]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-2e1d2e76]{flex-direction:row}}.main[data-v-2e1d2e76]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-2e1d2e76]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-2e1d2e76]{text-align:left}}@media (min-width: 960px){.main[data-v-2e1d2e76]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-2e1d2e76]{max-width:592px}}.name[data-v-2e1d2e76],.text[data-v-2e1d2e76]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-2e1d2e76],.VPHero.has-image .text[data-v-2e1d2e76]{margin:0 auto}.name[data-v-2e1d2e76]{color:var(--vp-home-hero-name-color)}.clip[data-v-2e1d2e76]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-2e1d2e76],.text[data-v-2e1d2e76]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-2e1d2e76],.text[data-v-2e1d2e76]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-2e1d2e76],.VPHero.has-image .text[data-v-2e1d2e76]{margin:0}}.tagline[data-v-2e1d2e76]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-2e1d2e76]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-2e1d2e76]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-2e1d2e76]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-2e1d2e76]{margin:0}}.actions[data-v-2e1d2e76]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-2e1d2e76]{justify-content:center}@media (min-width: 640px){.actions[data-v-2e1d2e76]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-2e1d2e76]{justify-content:flex-start}}.action[data-v-2e1d2e76]{flex-shrink:0;padding:6px}.image[data-v-2e1d2e76]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-2e1d2e76]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-2e1d2e76]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-2e1d2e76]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-2e1d2e76]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-2e1d2e76]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-2e1d2e76]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-2e1d2e76]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-2e1d2e76]{width:320px;height:320px}}[data-v-2e1d2e76] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-2e1d2e76] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-2e1d2e76] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-4efa949b]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-4efa949b]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-4efa949b]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-4efa949b]>.VPImage{margin-bottom:20px}.icon[data-v-4efa949b]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-4efa949b]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-4efa949b]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-4efa949b]{padding-top:8px}.link-text-value[data-v-4efa949b]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-4efa949b]{margin-left:6px}.VPFeatures[data-v-25991bec]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-25991bec]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-25991bec]{padding:0 64px}}.container[data-v-25991bec]{margin:0 auto;max-width:1152px}.items[data-v-25991bec]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-25991bec]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-25991bec],.item.grid-4[data-v-25991bec],.item.grid-6[data-v-25991bec]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-25991bec],.item.grid-4[data-v-25991bec]{width:50%}.item.grid-3[data-v-25991bec],.item.grid-6[data-v-25991bec]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-25991bec]{width:25%}}.container[data-v-cd48fa37]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-cd48fa37]{padding:0 48px}}@media (min-width: 960px){.container[data-v-cd48fa37]{width:100%;padding:0 64px}}.vp-doc[data-v-cd48fa37] .VPHomeSponsors,.vp-doc[data-v-cd48fa37] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-cd48fa37] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-cd48fa37] .VPHomeSponsors a,.vp-doc[data-v-cd48fa37] .VPTeamPage a{text-decoration:none}.VPHome[data-v-052fccb0]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-052fccb0]{margin-bottom:128px}}.VPContent[data-v-1cbf3d26]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-1cbf3d26]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-1cbf3d26]{margin:0}@media (min-width: 960px){.VPContent[data-v-1cbf3d26]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-1cbf3d26]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-1cbf3d26]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-90e82465]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-90e82465]{display:none}.VPFooter[data-v-90e82465] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-90e82465] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-90e82465]{padding:32px}}.container[data-v-90e82465]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-90e82465],.copyright[data-v-90e82465]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-00858feb]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-00858feb]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-00858feb]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-00858feb]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-00858feb]{color:var(--vp-c-text-1)}.icon[data-v-00858feb]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-00858feb]{font-size:14px}.icon[data-v-00858feb]{font-size:16px}}.open>.icon[data-v-00858feb]{transform:rotate(90deg)}.items[data-v-00858feb]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-00858feb]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-00858feb]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-00858feb]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-00858feb]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-00858feb]{transition:all .2s ease-out}.flyout-leave-active[data-v-00858feb]{transition:all .15s ease-in}.flyout-enter-from[data-v-00858feb],.flyout-leave-to[data-v-00858feb]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-1122fb5b]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-1122fb5b]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-1122fb5b]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-1122fb5b]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-1122fb5b]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-1122fb5b]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-1122fb5b]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-1122fb5b]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-1122fb5b]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-1122fb5b]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-1122fb5b]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-1122fb5b]{display:none}}.menu-icon[data-v-1122fb5b]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-1122fb5b]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-1122fb5b]{padding:12px 32px 11px}}.VPSwitch[data-v-8480d003]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-8480d003]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-8480d003]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-8480d003]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-8480d003] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-8480d003] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-dcc069ee]{opacity:1}.moon[data-v-dcc069ee],.dark .sun[data-v-dcc069ee]{opacity:0}.dark .moon[data-v-dcc069ee]{opacity:1}.dark .VPSwitchAppearance[data-v-dcc069ee] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-53fc394a]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-53fc394a]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-612f05ac]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-612f05ac]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-612f05ac]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-612f05ac]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-15e3e412]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-15e3e412]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-15e3e412]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-15e3e412]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-9a9c385b]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-9a9c385b] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-9a9c385b] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-9a9c385b] .group:last-child{padding-bottom:0}.VPMenu[data-v-9a9c385b] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-9a9c385b] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-9a9c385b] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-9a9c385b] .action{padding-left:24px}.VPFlyout[data-v-6ed45802]{position:relative}.VPFlyout[data-v-6ed45802]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-6ed45802]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-6ed45802]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-6ed45802]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-6ed45802]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-6ed45802],.button[aria-expanded=true]+.menu[data-v-6ed45802]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-6ed45802]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-6ed45802]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-6ed45802]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-6ed45802]{margin-right:0;font-size:16px}.text-icon[data-v-6ed45802]{margin-left:4px;font-size:14px}.icon[data-v-6ed45802]{font-size:20px;transition:fill .25s}.menu[data-v-6ed45802]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-4f3b8892]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-4f3b8892]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-4f3b8892]>svg,.VPSocialLink[data-v-4f3b8892]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-da0d6b18]{display:flex;justify-content:center}.VPNavBarExtra[data-v-37f510c2]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-37f510c2]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-37f510c2]{display:none}}.trans-title[data-v-37f510c2]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-37f510c2],.item.social-links[data-v-37f510c2]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-37f510c2]{min-width:176px}.appearance-action[data-v-37f510c2]{margin-right:-2px}.social-links-list[data-v-37f510c2]{margin:-4px -8px}.VPNavBarHamburger[data-v-7cfc33c7]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-7cfc33c7]{display:none}}.container[data-v-7cfc33c7]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-7cfc33c7]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-7cfc33c7]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-7cfc33c7]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-7cfc33c7]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-7cfc33c7]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-7cfc33c7]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-7cfc33c7],.VPNavBarHamburger.active:hover .middle[data-v-7cfc33c7],.VPNavBarHamburger.active:hover .bottom[data-v-7cfc33c7]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-7cfc33c7],.middle[data-v-7cfc33c7],.bottom[data-v-7cfc33c7]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-7cfc33c7]{top:0;left:0;transform:translate(0)}.middle[data-v-7cfc33c7]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-7cfc33c7]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-155b54f8]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-155b54f8],.VPNavBarMenuLink[data-v-155b54f8]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-967fa819]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-967fa819]{display:flex}}/*! @docsearch/css 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-d5f2fed7]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-d5f2fed7]{display:flex;align-items:center}}.title[data-v-bad16710]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-bad16710]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-bad16710]{border-bottom-color:var(--vp-c-divider)}}[data-v-bad16710] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-08938979]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-08938979]{display:flex;align-items:center}}.title[data-v-08938979]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-b3572b97]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar.has-local-nav[data-v-b3572b97]{background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar.has-local-nav[data-v-b3572b97]{background-color:transparent}.VPNavBar[data-v-b3572b97]:not(.has-sidebar):not(.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-b3572b97]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-b3572b97]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-b3572b97]{padding:0}}.container[data-v-b3572b97]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-b3572b97],.container>.content[data-v-b3572b97]{pointer-events:none}.container[data-v-b3572b97] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-b3572b97]{max-width:100%}}.title[data-v-b3572b97]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-b3572b97]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-b3572b97]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-b3572b97]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-b3572b97]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-b3572b97]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-b3572b97]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-b3572b97]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.top) .content-body[data-v-b3572b97]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-b3572b97]{column-gap:.5rem}}.menu+.translations[data-v-b3572b97]:before,.menu+.appearance[data-v-b3572b97]:before,.menu+.social-links[data-v-b3572b97]:before,.translations+.appearance[data-v-b3572b97]:before,.appearance+.social-links[data-v-b3572b97]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-b3572b97]:before,.translations+.appearance[data-v-b3572b97]:before{margin-right:16px}.appearance+.social-links[data-v-b3572b97]:before{margin-left:16px}.social-links[data-v-b3572b97]{margin-right:-8px}.divider[data-v-b3572b97]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-b3572b97]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-b3572b97]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-b3572b97]{width:100%;height:1px;transition:background-color .5s}.VPNavBar.has-local-nav .divider-line[data-v-b3572b97]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.top) .divider-line[data-v-b3572b97]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.top) .divider[data-v-b3572b97]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-2d20d584]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d20d584]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-56d75e0e]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-56d75e0e]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-f5b09cb8]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-f5b09cb8]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-a04a84d8]{display:block}.title[data-v-a04a84d8]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-f47b9234]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-f47b9234]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-f47b9234]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-f47b9234]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-f47b9234]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-f47b9234]{transform:rotate(45deg)}.button[data-v-f47b9234]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-f47b9234]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-f47b9234]{transition:transform .25s}.group[data-v-f47b9234]:first-child{padding-top:0}.group+.group[data-v-f47b9234],.group+.item[data-v-f47b9234]{padding-top:4px}.VPNavScreenTranslations[data-v-bca8813f]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-bca8813f]{height:auto}.title[data-v-bca8813f]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-bca8813f]{font-size:16px}.icon.lang[data-v-bca8813f]{margin-right:8px}.icon.chevron[data-v-bca8813f]{margin-left:4px}.list[data-v-bca8813f]{padding:4px 0 0 24px}.link[data-v-bca8813f]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-6e19f0fd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-6e19f0fd],.VPNavScreen.fade-leave-active[data-v-6e19f0fd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-6e19f0fd],.VPNavScreen.fade-leave-active .container[data-v-6e19f0fd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-6e19f0fd],.VPNavScreen.fade-leave-to[data-v-6e19f0fd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-6e19f0fd],.VPNavScreen.fade-leave-to .container[data-v-6e19f0fd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-6e19f0fd]{display:none}}.container[data-v-6e19f0fd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-6e19f0fd],.menu+.appearance[data-v-6e19f0fd],.translations+.appearance[data-v-6e19f0fd]{margin-top:24px}.menu+.social-links[data-v-6e19f0fd]{margin-top:16px}.appearance+.social-links[data-v-6e19f0fd]{margin-top:16px}.VPNav[data-v-982e548f]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-982e548f]{position:fixed}}.VPSidebarItem.level-0[data-v-2d5c92a1]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-2d5c92a1]{padding-bottom:10px}.item[data-v-2d5c92a1]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-2d5c92a1]{cursor:pointer}.indicator[data-v-2d5c92a1]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-2d5c92a1],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-2d5c92a1],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-2d5c92a1],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-2d5c92a1]{background-color:var(--vp-c-brand-1)}.link[data-v-2d5c92a1]{display:flex;align-items:center;flex-grow:1}.text[data-v-2d5c92a1]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-2d5c92a1]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-2d5c92a1],.VPSidebarItem.level-2 .text[data-v-2d5c92a1],.VPSidebarItem.level-3 .text[data-v-2d5c92a1],.VPSidebarItem.level-4 .text[data-v-2d5c92a1],.VPSidebarItem.level-5 .text[data-v-2d5c92a1]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-2d5c92a1],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-2d5c92a1],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-2d5c92a1],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-2d5c92a1],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-2d5c92a1],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-2d5c92a1]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-1.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-2.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-3.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-4.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-5.has-active>.item>.text[data-v-2d5c92a1],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-2d5c92a1],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-2d5c92a1],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-2d5c92a1],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-2d5c92a1],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-2d5c92a1],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-2d5c92a1]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-2d5c92a1],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-2d5c92a1],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-2d5c92a1],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-2d5c92a1],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-2d5c92a1],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-2d5c92a1]{color:var(--vp-c-brand-1)}.caret[data-v-2d5c92a1]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-2d5c92a1]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-2d5c92a1]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-2d5c92a1]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-2d5c92a1]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-2d5c92a1],.VPSidebarItem.level-2 .items[data-v-2d5c92a1],.VPSidebarItem.level-3 .items[data-v-2d5c92a1],.VPSidebarItem.level-4 .items[data-v-2d5c92a1],.VPSidebarItem.level-5 .items[data-v-2d5c92a1]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-2d5c92a1]{display:none}.VPSidebar[data-v-b5b61e9d]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-b5b61e9d]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-b5b61e9d]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-b5b61e9d]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-b5b61e9d]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-b5b61e9d]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-b5b61e9d]{outline:0}.group+.group[data-v-b5b61e9d]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-b5b61e9d]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-51bcb88e]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-51bcb88e]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-51bcb88e]{top:14px;left:16px}}.Layout[data-v-bee2e1c1]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-0377a2ad]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-0377a2ad]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-0377a2ad]{margin:128px 0}}.VPHomeSponsors[data-v-0377a2ad]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-0377a2ad]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-0377a2ad]{padding:0 64px}}.container[data-v-0377a2ad]{margin:0 auto;max-width:1152px}.love[data-v-0377a2ad]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-0377a2ad]{display:inline-block}.message[data-v-0377a2ad]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-0377a2ad]{padding-top:32px}.action[data-v-0377a2ad]{padding-top:40px;text-align:center}.VPTeamPage[data-v-9b8eec9e]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-9b8eec9e]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-9b8eec9e-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-9b8eec9e-s],.VPTeamMembers+.VPTeamPageSection[data-v-9b8eec9e-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-9b8eec9e-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-9b8eec9e-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-9b8eec9e-s],.VPTeamMembers+.VPTeamPageSection[data-v-9b8eec9e-s]{margin-top:96px}}.VPTeamMembers[data-v-9b8eec9e-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-9b8eec9e-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-9b8eec9e-s]{padding:0 64px}}.VPTeamPageTitle[data-v-b6a7e934]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-b6a7e934]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-b6a7e934]{padding:80px 64px 48px}}.title[data-v-b6a7e934]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-b6a7e934]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-b6a7e934]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-b6a7e934]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-1b8cfbdd]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-1b8cfbdd]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-1b8cfbdd]{padding:0 64px}}.title[data-v-1b8cfbdd]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-1b8cfbdd]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-1b8cfbdd]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-1b8cfbdd]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-1b8cfbdd]{padding-top:40px}.VPTeamMembersItem[data-v-2adf131b]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-2adf131b]{padding:32px}.VPTeamMembersItem.small .data[data-v-2adf131b]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-2adf131b]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-2adf131b]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-2adf131b]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-2adf131b]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-2adf131b]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-2adf131b]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-2adf131b]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-2adf131b]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-2adf131b]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-2adf131b]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-2adf131b]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-2adf131b]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-2adf131b]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-2adf131b]{text-align:center}.avatar[data-v-2adf131b]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-2adf131b]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-2adf131b]{margin:0;font-weight:600}.affiliation[data-v-2adf131b]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-2adf131b]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-2adf131b]:hover{color:var(--vp-c-brand-1)}.desc[data-v-2adf131b]{margin:0 auto}.desc[data-v-2adf131b] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-2adf131b]{display:flex;justify-content:center;height:56px}.sp-link[data-v-2adf131b]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-2adf131b]:hover,.sp .sp-link.link[data-v-2adf131b]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-2adf131b]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-81dab0e9]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-81dab0e9]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-81dab0e9]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-81dab0e9]{max-width:876px}.VPTeamMembers.medium .container[data-v-81dab0e9]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-81dab0e9]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-81dab0e9]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-81dab0e9]{max-width:760px}.container[data-v-81dab0e9]{display:grid;gap:24px;margin:0 auto;max-width:1152px} diff --git a/docs/assets/turbopack.pq5xLQcV.png b/docs/assets/turbopack.pq5xLQcV.png new file mode 100644 index 0000000..1bea36b Binary files /dev/null and b/docs/assets/turbopack.pq5xLQcV.png differ diff --git a/docs/assets/viz-js.Bg03g6kn.png b/docs/assets/viz-js.Bg03g6kn.png new file mode 100644 index 0000000..b95931a Binary files /dev/null and b/docs/assets/viz-js.Bg03g6kn.png differ diff --git a/docs/assets/webcontainers.BQDqtMM0.png b/docs/assets/webcontainers.BQDqtMM0.png new file mode 100644 index 0000000..c71f39a Binary files /dev/null and b/docs/assets/webcontainers.BQDqtMM0.png differ diff --git a/docs/assets/wechat_article.Cvy5-M3E.jpg b/docs/assets/wechat_article.Cvy5-M3E.jpg new file mode 100644 index 0000000..318ddd0 Binary files /dev/null and b/docs/assets/wechat_article.Cvy5-M3E.jpg differ diff --git a/docs/assets/week_001_readme.md.BMdtcQk2.js b/docs/assets/week_001_readme.md.BMdtcQk2.js new file mode 100644 index 0000000..1e316a3 --- /dev/null +++ b/docs/assets/week_001_readme.md.BMdtcQk2.js @@ -0,0 +1 @@ +import{_ as e,c as r,o as t,a2 as a}from"./chunks/framework.aTtkxbT6.js";const s="/assets/cloud.D_oAYMVs.jpg",p="/assets/pjchender.CiuMGb2Z.png",o="/assets/chrome-memory.CaqQ1C8W.png",n="/assets/markdoc.4IYRYQ7O.png",i="/assets/viz-js.Bg03g6kn.png",l="/assets/pkg-size.CBJn0NLf.png",c="/assets/webcontainers.BQDqtMM0.png",h="/assets/turbopack.pq5xLQcV.png",d="/assets/iradesign.-BdYxQiC.png",m="/assets/cleanpng.OTAb6wML.png",x=JSON.parse('{"title":"双周回顾#001 - 火烧云","description":"","frontmatter":{"title":"双周回顾#001 - 火烧云","date":"2023/10/06","desc":"第一周"},"headers":[],"relativePath":"week/001/readme.md","filePath":"week/001/readme.md","lastUpdated":null}'),g={name:"week/001/readme.md"},_=a('

cloud

工作以来,许久未曾见过如此壮观的火烧云景观了。

文章

1、穿透的 DIV (pointer-events)1

pointer-events 是一个蛮有趣的 CSS3 属性,虽然主要是针对 SVG ,但其中几个属性应用在 div 上也是颇有意思。

顾名思义,这是一个针对滑鼠事件的属性,预设值为 auto,若值为 none,则可以穿越该元素,点击到下方的元素。

除了 auto 和 none,这是完整的属性列表:pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit,除了 auto 与 none,其他都是控制 SVG 的属性,若採用预设值,则 SVG 就是以 visiblePainted 来表现。

2、pjchender.dev2

pjchender

个人博客站点,包含前后端的知识点。

3、Chrome Memory Tab: Learn to Find JavaScript Memory Leaks3

chrome memory

浏览器端同样存在内存泄露的场景,这是性能稳定性相关的内容,需要去了解:

  • 如何发现内存泄露
  • 如何定位内存泄露
  • 如何解决内存泄露

工具

1、Markdoc4

mark doc

一个强大、灵活、基于 Markdown 的创作框架。

Markdoc 是一个基于 Markdown 的语法和工具链,用于创建自定义文档网站和体验。

我们设计 Markdoc 是为了支持 Stripe 的公共文档,这是我们最大、最复杂的内容网站。

2、viz-js5

viz-js

适用于各种框架的 JavaScript 库,将图形图渲染为 SVG 元素,以在网页中显示它。

3、pkg-size.dev6

pkg-size

无需本地安装,在线检测 npm 包的大小。

4、webcontainers.io7

web containers

通过将 Node.js 直接集成到您的 web 应用程序中,创造无与伦比的用户体验。

这项技术在 StackBlitz 中的在线 IDE 中可以体验到,其性能可以碾压同类的 web IDE。优势:

  1. 比你的本地环境更快。构建完成的速度比 yarn/npm 快 20%,软件包安装完成的速度比 yarn/npm 快 5 倍以上。
  2. 浏览器中的 Node.js 调试。与 Chrome DevTools 的无缝集成实现了本地后端调试,不需要安装或扩展。
  3. 默认情况下是安全的。所有代码的执行都发生在浏览器的安全沙盒内,而不是在远程虚拟机或本地二进制文件上。

5、Why Turbopack?8

turbopack

turbopack 是使用 rust 编写的构建工具,这篇文档将其与 vite、webpack 进行对比。

图片

1、iradesign.io9

iradesign

商业风格的图标站点,支持下载 PNG、SVG 类型。

2、cleanpng.com10

clean png

提供透明背景的图标。

References

',43),b=[_];function u(k,f,w,v,y,S){return t(),r("div",null,b)}const z=e(g,[["render",u]]);export{x as __pageData,z as default}; diff --git a/docs/assets/week_001_readme.md.BMdtcQk2.lean.js b/docs/assets/week_001_readme.md.BMdtcQk2.lean.js new file mode 100644 index 0000000..7a185ce --- /dev/null +++ b/docs/assets/week_001_readme.md.BMdtcQk2.lean.js @@ -0,0 +1 @@ +import{_ as e,c as r,o as t,a2 as a}from"./chunks/framework.aTtkxbT6.js";const s="/assets/cloud.D_oAYMVs.jpg",p="/assets/pjchender.CiuMGb2Z.png",o="/assets/chrome-memory.CaqQ1C8W.png",n="/assets/markdoc.4IYRYQ7O.png",i="/assets/viz-js.Bg03g6kn.png",l="/assets/pkg-size.CBJn0NLf.png",c="/assets/webcontainers.BQDqtMM0.png",h="/assets/turbopack.pq5xLQcV.png",d="/assets/iradesign.-BdYxQiC.png",m="/assets/cleanpng.OTAb6wML.png",x=JSON.parse('{"title":"双周回顾#001 - 火烧云","description":"","frontmatter":{"title":"双周回顾#001 - 火烧云","date":"2023/10/06","desc":"第一周"},"headers":[],"relativePath":"week/001/readme.md","filePath":"week/001/readme.md","lastUpdated":null}'),g={name:"week/001/readme.md"},_=a("",43),b=[_];function u(k,f,w,v,y,S){return t(),r("div",null,b)}const z=e(g,[["render",u]]);export{x as __pageData,z as default}; diff --git a/docs/assets/week_002_readme.md.15T0KzAq.js b/docs/assets/week_002_readme.md.15T0KzAq.js new file mode 100644 index 0000000..5903f76 --- /dev/null +++ b/docs/assets/week_002_readme.md.15T0KzAq.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as r,a2 as a}from"./chunks/framework.aTtkxbT6.js";const s="/assets/001.CLNyUD4h.webp",o="/assets/png-gzip.pS8gDHuF.webp",l="/assets/esno.CN4cTvIV.webp",p="/assets/nue-js.1emRvQ86.webp",c="/assets/flowchart_js.DJ63wmX2.webp",n="/assets/js-sequence-diagrams.CIvhC3O4.webp",i="/assets/heatmapjs.kIvqv1rY.webp",h="/assets/cwebp.CSR3lZeR.webp",m="/assets/jsdoc.BUrWOlqY.webp",d="/assets/apidoc.D9HNq3Fw.webp",u="data:image/webp;base64,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",b="/assets/spread-js.DkrmGFDp.webp",g="/assets/modern-screenshot.Bhcj-uQQ.webp",f="/assets/dom-to-image.D7OdatTm.webp",L=JSON.parse('{"title":"双周回顾#002 - 红树林","description":"","frontmatter":{"title":"双周回顾#002 - 红树林","date":"2023/10/15","desc":"第二周"},"headers":[],"relativePath":"week/002/readme.md","filePath":"week/002/readme.md","lastUpdated":null}'),w={name:"week/002/readme.md"},k=a('

红树林

红树林公园,一棵单独生长在海岸边的树,下面一根根树立的幼苗,是从它的根茎上生长出来的。傍晚落潮后,会有一只只小螃蟹在这里浪荡。当然,也会有海鸟在这里进食。

文档

  1. 深入了解 Commonjs 和 Es Module1

Web 开发中,引用模块时有时使用require、有时使用import,这是基于两种不同的模块规范。本文深入讲解了CommonJSESM之间共性与差异性。

  1. 图片要启用 gzip 压缩吗?绝对不要!2

png-gzip

通常在做 Web 性能优化时,会启用 GZIP 压缩。当使用了无损压缩的 PNG 图时,压缩后的体积会比原图体积更大,做了反优化。本文讲解了为什么为发生这种现象。

  1. esno 与 tsx3

esno

一直以为 esno 与 tsx 是两个东西,还有谁像我一样认知的呢?

  1. Nue JS4

nue-js

随着生态的发展,三大主流 Web 框架的功能特性越来越多,源码体积也越来越大。但是有时新建一个小工程时,你并不需要那么复杂的生态,可以尝试下NueJS(2.3 kb)。

NueJS 是一个非常小(2.3kb minzipped)的 JavaScript 库,用于构建用户界面。它是 Nue 工具集的核心。它就像 Vue.js、React.js 或 Svelte,但没有钩子、效果、道具、门户、观察者、注入、暂停或其他不寻常的抽象。学习 HTML、CSS 和 JavaScript 的基础知识,就可以开始了。

工具

  1. 流程图5

flowchart_js

绘制流程图时,通常会使用阿里的 G6 等图标库,大且繁琐。当需求简单时,可以考虑换一个轻量级的库了。flowchart.js 压缩文件仅 70KB ,支持常规的流程图功能。

  1. 时序图6

时序图

一个简单的 javascript 库,用于将文本转换为矢量 UML 序列图。使用Jison来解析文本,使用 Snap.svg 来绘制图像。

  1. 热力图 - heatmap.js7

heatmapjs

一个有趣的 JavaScript 库,在你的站点上生产一个透明背景的热力图,展示用户在站点的操作痕迹。

  1. 图片转 webp8

cwebp

在线的图片转webp的工具,质量参差不齐,何不尝试在 Chrome 推荐的本地工具呢。支持 Windows 版、Linux (aarch64)、Linux (x86-64)、macOS (arm64)、macOS (x86-64)

  1. JSDoc9

jsdoc

JSDoc 3 是一个用于 JavaScript 的 API 文档生成器,类似于 Javadoc 或 phpDocumentor。可以将文档注释直接添加到源代码中。JSDoc 工具将扫描您的源代码并为您生成一个 HTML 文档网站。

  1. apidoc10

apidoc

  1. 表格-Luckysheet11

luckysheet

Luckysheet ,一款纯前端类似 excel 的在线表格,功能强大、配置简单、完全开源。支持格式设置、单元格配置、行和列操作、图标、公式和函数等。

  1. 表格-SpreadJS12

spread-js

商用的表格,业务场景比较复杂时,可以考虑下这家的表格组件。

  1. Web 页面截图13

Web 页面截图之 modern-screenshot

使用 HTML5 或者 SVG 快速将页面 DOM 节点转化为图片.

  1. Web 页面截图之 dom-to-image14

dom-to-image

dom-to-image 是一个库,可以将任意 dom 节点转换为用 JavaScript 编写的矢量(SVG)或光栅(PNG 或 JPEG)图像。

References

往期回顾

',49),S=[k];function A(j,y,z,x,D,H){return r(),t("div",null,S)}const P=e(w,[["render",A]]);export{L as __pageData,P as default}; diff --git a/docs/assets/week_002_readme.md.15T0KzAq.lean.js b/docs/assets/week_002_readme.md.15T0KzAq.lean.js new file mode 100644 index 0000000..1b8bc16 --- /dev/null +++ b/docs/assets/week_002_readme.md.15T0KzAq.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as r,a2 as a}from"./chunks/framework.aTtkxbT6.js";const s="/assets/001.CLNyUD4h.webp",o="/assets/png-gzip.pS8gDHuF.webp",l="/assets/esno.CN4cTvIV.webp",p="/assets/nue-js.1emRvQ86.webp",c="/assets/flowchart_js.DJ63wmX2.webp",n="/assets/js-sequence-diagrams.CIvhC3O4.webp",i="/assets/heatmapjs.kIvqv1rY.webp",h="/assets/cwebp.CSR3lZeR.webp",m="/assets/jsdoc.BUrWOlqY.webp",d="/assets/apidoc.D9HNq3Fw.webp",u="data:image/webp;base64,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",b="/assets/spread-js.DkrmGFDp.webp",g="/assets/modern-screenshot.Bhcj-uQQ.webp",f="/assets/dom-to-image.D7OdatTm.webp",L=JSON.parse('{"title":"双周回顾#002 - 红树林","description":"","frontmatter":{"title":"双周回顾#002 - 红树林","date":"2023/10/15","desc":"第二周"},"headers":[],"relativePath":"week/002/readme.md","filePath":"week/002/readme.md","lastUpdated":null}'),w={name:"week/002/readme.md"},k=a("",49),S=[k];function A(j,y,z,x,D,H){return r(),t("div",null,S)}const P=e(w,[["render",A]]);export{L as __pageData,P as default}; diff --git a/docs/assets/week_003_readme.md.CjyreBNM.js b/docs/assets/week_003_readme.md.CjyreBNM.js new file mode 100644 index 0000000..6530032 --- /dev/null +++ b/docs/assets/week_003_readme.md.CjyreBNM.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a2 as l}from"./chunks/framework.aTtkxbT6.js";const r="/assets/baby.v9q6ln7t.jpg",i="/assets/pmp.Clme-lZi.jpg",p="/assets/read.D5PWbxP9.png",s="/assets/welink.BtAEMnNt.png",f=JSON.parse('{"title":"双周回顾#003 - 新生儿","description":"","frontmatter":{"title":"双周回顾#003 - 新生儿","date":"2023/10/15","desc":"第三周"},"headers":[],"relativePath":"week/003/readme.md","filePath":"week/003/readme.md","lastUpdated":null}'),o={name:"week/003/readme.md"},n=l('

新生-baby

10 月 9 日,一个小生命悄悄来到世间,老家的朋友做了爸爸妈妈。

看着昔日的朋友们结婚生子,顿感不知不觉间自己也在慢慢变老。

一、价值

(1)通过 PMP 认证考试

本周一个好消息,通过了 PMP 认证考试。

pmp

PMP 的得分为三个方面,过程、人、商业环境,个人得分分别为 BAA。

也就说在过程这一方面的得分低于及格线,过程模块得分低:

  • 主观因素:刷题量不达标,导致得分低;
  • 客观因素:个人成长环境影响吧,早期在小公司,对于过程的实践不是太看重,主要看重快速迭代的敏捷流程,结果导向。

目前供职的公司,主打一个流程正确。

常听的一句话,“不要私下搞事情,等产品建需求”,有了需求才能统计工作量,否则白做功。

虽然过程繁琐,但确保了整个过程中每个节点可追溯,避免因个人素导致线上故障。

思考:

  • 影响。更熟悉项目管理流程,在标准化流程下做事,减少不规范操作导致的异常。
  • 收益。短期来看这个证书没啥用处,长期收益目前也不确定

(2)三十人的公司内部分享

大数据平台首页性能优化,上周正式上线。回顾总结了整个处理过程,然后在本周的大周会上进行了分享。

第一次在如此多人前做分享,紧张是难免的。所以,文档一直改了又改,唯恐有所差错。

在真正分享的过程中时,中间无人打断,于是慢慢地忘记了紧张,按照自己的思路讲解,最终的舞台表现力感觉还不错,哈哈哈哈~~

思考:

  • 演讲时,语速放慢,不要着急,越急越容易吐字不清晰。
  • 知其然,知其所以然。性能优化手段最终都会落地到最基本的技能上,网络请求、文件大小、加载、渲染...在做优化操作时需要知道性能指标及其含义,以及对应的优化手段。理论与技巧相结合,更加得心应手。
  • 有时,并不要优化。不要盲目优化,当性能指标在合理范围时,不必做任何优化。防止镀金行为,此时可以去做更有价值的事情。

(3)纵向与横向思维

分享会后,与一位架构师闲聊。他提到此次的分享在纵向的深度上很深入,他也学习到了。美中不足的是,横向的对比有所不足,比如涉及到打包的分享中,dll 、 webpack splitChunks、webpackChunkName 之间的差异及优先级问题并未说明了。

思考:

  • 同一类的东西,了解一些横向的指标,比如:通性、差异、优先级等。强化横向意识

(4)更高的视野/个人喜好

需求评审时,就待办列表中的一项待办。

技术负责人看后觉得没有价值,可以不做。

组员也觉得没价值,可以放弃。

产品提出,这个待办是 XX 总提出的。

技术负责人、组员沉默一会后,嗯,要做。

思考:

  • Leader 可能存在更高的视角,看到了更多的东西。
  • Leader 的个人喜好被下属的盲目跟随。

(5)读书

读书明智,知其然,知其所以然。

前段时间在看一本书,书不厚实,断断续续的偶尔看一点,未能持续看完。

上周末,与朋友闲聊,兴之所至,搞了个【读书打卡】,算是互相监督,每日持续读上一两页书。

book

不想看书,看到朋友在读书。麻溜地爬起看书、打卡,一气呵成。害,这该死的胜负欲,哈哈哈哈哈

思考:

  • 不盲目读书,应该读什么书?或者说,有价值的书?

二、晋升

之前未曾在大厂工作过,脑海中也不曾有过晋升的概念,关于在前端之道的晋升也没有清晰的认知。

身边有着一位优秀的 GDE 朋友,每次看他的文章都是对自己的一次激励。重新阅读了下他发表的《经过半年的努力,我终于成为了谷歌开发者专家(GDE)》文章,小有体会。

分享、输出、推广

  • 分享。分享源自有所分享,关注所在领域的技术,深度有所得、广度有所获,然后分享他人
  • 输出。体系化地整理知识,有自己的思考,在已有的知识上产出新的事物。
  • 推广。以自身所思所想影响他人,与同道之人共同探索。

前段时间为 Ace Editor 编写了一个插架,为其补充了缩略图的功能。技术侧的 leader 曾给建议让我提交 PR 到开源仓库,提升个人开源影响力。一直捣鼓其它事情,没整这事儿。害,没领会真意。

抛出问题:

前端目前是一个细分状态。业务上可以分为内容管理、工具、图形等;技术上分为 Web 端、移动端、跨端、跨平台。

  1. 前端的深度在哪里?或者说个人在前端上的深度在哪里?
  2. 前端的广度在哪里?跨度如此之大,如何选择扩展的方向?

翻了下 GDG 近两年在社区说的分享,仅两场 Web 的分享,大部分是关于 flutter 的分享,亲.真.儿子!!!所以,横向扩展 flutter?

可能当想明白这些问题后,晋升就是水到渠成了吧。

文档

1. “根本不需要 TypeScript,JS + JSDoc 够了”,大佬说我想多了1

今年以来很多框架开发者都在放弃使用 TypeScript,为什么会出现这种状态呢?此文对此做出一些推论。

工具

2. WeLink2

WeLink

一个在线的标签管理工具,数据仅在本地存储。

References

往期回顾

',63),h=[n];function c(u,d,b,_,m,k){return t(),a("div",null,h)}const q=e(o,[["render",c]]);export{f as __pageData,q as default}; diff --git a/docs/assets/week_003_readme.md.CjyreBNM.lean.js b/docs/assets/week_003_readme.md.CjyreBNM.lean.js new file mode 100644 index 0000000..7227506 --- /dev/null +++ b/docs/assets/week_003_readme.md.CjyreBNM.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a2 as l}from"./chunks/framework.aTtkxbT6.js";const r="/assets/baby.v9q6ln7t.jpg",i="/assets/pmp.Clme-lZi.jpg",p="/assets/read.D5PWbxP9.png",s="/assets/welink.BtAEMnNt.png",f=JSON.parse('{"title":"双周回顾#003 - 新生儿","description":"","frontmatter":{"title":"双周回顾#003 - 新生儿","date":"2023/10/15","desc":"第三周"},"headers":[],"relativePath":"week/003/readme.md","filePath":"week/003/readme.md","lastUpdated":null}'),o={name:"week/003/readme.md"},n=l("",63),h=[n];function c(u,d,b,_,m,k){return t(),a("div",null,h)}const q=e(o,[["render",c]]);export{f as __pageData,q as default}; diff --git a/docs/assets/week_004_readme.md.Zk7YSqDD.js b/docs/assets/week_004_readme.md.Zk7YSqDD.js new file mode 100644 index 0000000..7f6d2cc --- /dev/null +++ b/docs/assets/week_004_readme.md.Zk7YSqDD.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a2 as r}from"./chunks/framework.aTtkxbT6.js";const u=JSON.parse('{"title":"双周回顾#004 - 满眼欢喜","description":"","frontmatter":{},"headers":[],"relativePath":"week/004/readme.md","filePath":"week/004/readme.md","lastUpdated":null}'),o={name:"week/004/readme.md"},p=r('

双周回顾#004 - 满眼欢喜

对顺子的第一印象应该是在 2013/10 月,当时在绵阳科技馆,依旧记得那张青涩、腼腆的笑容,双手托着一个 MINI 机器人。那算是顺子和我的第一次相识吧。

顺子

一晃十年了,今天是他的婚礼。

有个词叫满心欢喜,但是看到他们时,我想称作满眼欢喜。满眼欢喜,一生相伴。

顺子

因为做伴郎的缘故,提前来到成都。顺子带我们伴郎团排舞,期间尬舞不断。但他的动作最欢快、最自信,眉眼间的笑容从不消减。

有句诗句叫,士为知己者死,女为悦己者容。想比,此时此刻他的心中充满了他的新娘吧。

价值

// 今天喝了点酒,随便聊聊吧

1024 活动

我是一个不爱出风头的人,我喜欢默默做事,讨厌讲 PPT。但若想向往上走,PPT 能力是很重要的能力,所以,开始假装外向的性格。

公司举办 1024 活动,活动上划分 N 个小组,主动承担小组长的角色,协调团队氛围,使团队氛围迅速活跃,并在活动中曾一度拿的小组积分第一名。可惜的是,在最后的小组对赌环节,运气不佳,输光了积分~~

读书

自律,是一项很难得能力。当自己一个人无法做到自律时,可以找个一个朋友,互相监督。最近读过的书:

Web 性能实践 重构,改善既有设计 CSS 新世界

晋升

查看公司关于晋升相关的要求,其中分享占了很大一部分评分。所以有意识的,在公司的内部知识系统中,开辟了一个 vue3 踩坑专栏,期待后效

互联网

最近双十一,公司为应对双十一活动,重构下单业务。临时调过去支援【配置下单】业务,第一次体会到真正面对互联网业务客户业务的紧迫感,加班是家常便饭,十点、十一点下班那是常态~~

除了加班这个痛点外,团队配置倒是挺全的,项目经理、架构经理、UI 设计师、前端人员、后台人员,倒不失为一种全新的体验

文档

啊,休息休息!!!

',23),h=[p];function i(d,l,n,s,c,_){return t(),e("div",null,h)}const f=a(o,[["render",i]]);export{u as __pageData,f as default}; diff --git a/docs/assets/week_004_readme.md.Zk7YSqDD.lean.js b/docs/assets/week_004_readme.md.Zk7YSqDD.lean.js new file mode 100644 index 0000000..d8f0aed --- /dev/null +++ b/docs/assets/week_004_readme.md.Zk7YSqDD.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a2 as r}from"./chunks/framework.aTtkxbT6.js";const u=JSON.parse('{"title":"双周回顾#004 - 满眼欢喜","description":"","frontmatter":{},"headers":[],"relativePath":"week/004/readme.md","filePath":"week/004/readme.md","lastUpdated":null}'),o={name:"week/004/readme.md"},p=r("",23),h=[p];function i(d,l,n,s,c,_){return t(),e("div",null,h)}const f=a(o,[["render",i]]);export{u as __pageData,f as default}; diff --git a/docs/assets/week_005_readme.md.NhGnOKGq.js b/docs/assets/week_005_readme.md.NhGnOKGq.js new file mode 100644 index 0000000..263e0b3 --- /dev/null +++ b/docs/assets/week_005_readme.md.NhGnOKGq.js @@ -0,0 +1 @@ +import{_ as A,c as a,o as e,a2 as o}from"./chunks/framework.aTtkxbT6.js";const i="data:image/png;base64,R0lGODlhkAGOAcQQAH9/f0BAQL+/v+/v7xAQEJ+fnzAwMM/Pz2BgYCAgIN/f31BQUI+Pj3BwcK+vrwAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABAALAAAAACQAY4BAAX/ICSOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2F8ICwPZ3jkIDw8JAt/mM+Hi4gDn7S3p6uIGCu71JvDx4gQF9v34+eq49Wv3D6A6cgO/FTQYj13CawsZxpv3kFpEifH2VYx2EWM+gRuZdfSYD2HIZCNJ/wJ0eLJYSpUAKbYU9hImQAIHvNncybOnz59Agwod2hNnNqJIkypdyrRp0W7XnEqdSrWqVYYIsF3dyrWr1530rH0dS7bs1XJizapdyxZo2Gpt48qdm6+BVrp4844lwCAbgL+AAwseTLiw4cOIEysmHIBngMWQI0ueDLkA1JlvAPBkidmZ5p2cOzP7bDO0aGWkYZo+jSy1ytWsjbkmCTs2sdkea9sWhhuj7t3Aekv8DdyXcIbEi/M6bjC58iQKAFxexHzlcyoDCDwwMD1R9XzOrxchHd7P94bio2Q/2Oi8uvLpgRTI54CR+3Xxn7jOSn1zfieuJWCff/8xMVtOitz3AP98hxzAzyuzMZiHghISMkACDwTw1iqzBdAfaJcsgB4ruH1YmiUMxIRWKriteAiFlRwgUQPdkdKAQX15R6AkF2JEQH2nNAYQf4jAOImIJC2woShC5uOhjiBKkiJMfJXSZDwCQnliJDLyZACCoWBoUII7OtKjT9KFIhGZUT6C5E8meSJRAHTWaeedeOap55589unnn4AGIKZNCQRq6KGIJqpongYQBdImAugl6aSUUqURpJVmqummQGmoiYKchiqqpBUWcuOoqKYaqgEuTnKlqrDGmheNlWgn6624xiVTJAPk6uuvZRkVSaRzLmrsscgGOihMhSbr7LPQ7tloU8I+chz/m1tKUpNP1Tby5phaqjaJApYuqYitDGErrrZVGeBIl2uG+xqP6E71oInpykubJKDC2ci08RZZpiP1UsUIuR6pOy8k812VpSJTSvTwiwMzsuxU3SICMENPCtxmIw1TFQADNRoC75wK7/vIqz8FsMBfDAggs8zmKpJSxxR/vAixPy3AAJiYIOwRkTlny8i3hFrmyXel1mHkwT0lcG8nQueWstWNbItfKEhLBKTHRpMxQKs+VE0SAWRzwjNJaQ/ytNiNNs2Ce7t+sh5MNXNRQMY/vC3GAAA/ysPdJHE3StcYjRFyjkH4DQbg+XzpQ8QeGS7KqTC5G0bI4iBQsg6OewH5/01T53AxQ5aHwrlKOHexujx54xA6F6MzZJcOrxuUOiiUr+tF7vp8zcPsWtQ+5+cxnB4T8pkMoLU6wm8B/IjDV7yF8T4CPcPaqDOPyQEbg/U7TILLbn0W2JNUegwsR+79Jf3qMz6h2ttAvBXpq+T5DCfr/n4lA0CcTRbguqKsjwb3w074dlI3F3Rkd53I304Yl4XpkeR2N0igFCRoE7TBwGzuCwUHbVK/KlhQJRCUgQahMEKdqeAiKeTE8wwysSuckEolfMEKndBCnpTvBIQLYSgcQBSiWeGGE6xBAgsQLUQpTyiSU0FvYsiJJ/IkeiagjBYJg7mk7E+F5xtB/CR1Kf8UFEwe/7MEEklSwxPkqoEtSOAYyfi53FGREwtEEwt8lYA0ijGMIpijpIw4gtPdcRMg/Mn7fgUfOQKLACfg3nb8qMYituBXkISBI4F1AtcckhOCfAABYkcCTmoSkBAIZV4ImMWJUPISM7TOJX2VSR2iUpV0CUDJSKNLVLSPgS/41QGliEomNvGYhgJADiGgADoNUxQCxGEwb5UABJASBTssUCeD8kx9YU2bMujdTrrpTd+Ac3s/IWc5h3POGZzRIx6kRDbb+UebwBES86QnBHq4NUvkU58ttGYm/qnPVJ5uZNfEJyoLmoKxyWyZ/lwoQzkk0YmyqKJySKhFkUBQNsz/R27/OYCnhtBRNYTshxsVwQG0E8/GYdQNq0sARAu60nhQ0AclPUPuypjSmn7klbZ0YR0siEGL+jQmM0XgS01aOKAq56gG+RFOl4qGNfINnFCdUQ9yKoY1quOm2swqRnoJOqqWwavx+GJY34kRmeogmsixA1ojp1HbiBUm6mTBDEFawKBINT93tQkhYRBLvkoPKYa1R2AZWNcSdFGoHlUKSmOzWJ601AVzjQcrdbjFzm7xsURxay0OMLPSmva0qE2talfLWgewFShgTUFm8zHYFABrJzyNxS9v+1MWzHZI0+QtTJLqS+EWbgW/NUhtTWBcmLTuFbttrjiemVyszFK6/x5pLCmiK902qvS1QyOicveIXY+0bRXcle4JKosR/gCPrCgor4+cCor0NtcE7JUI0UCLRtvKN6pYdIV9hRua/Fq3BBGhIjIXjEyS1WLAwDJA9Aw83hPkUZTETSkKSMvaDnv4wyAOcYdrROGYNPTCl9UwJUpMW+YFMR95VTEiWJzWFiw2sTK+A43VsVz8vrbHOS5EcoGMX4x8MsiAGPIMLChaJBtCyTSwYG6dnGSgEBm5Hikqlf0A5RucEL5b3kMsp7uDEzY5zHgY8wNi/IITThnNclAzm2FwQ7XCGQ4DgHA+UsyDG0bxzm7gZ1QzXIMbvhnQZlDAhdlIaBsgcbKIDv/DjvtrBCTGKdJjmPQkk7BGHGP6CF1OgoH//GkuiNMmWhY1eKlX6izIGQoUHmmrqxDAn/yVhYves6dnfQNB36TRRPA1qXnNBE0feQlaSxOxl+Dan9i5CvyV2HmXLR+gpPqIPqQvtWPw6i4IYNV7ju22dZBnWwP7CQewIuqmPW7+qdvI2m6CrwOi3XanoNk+eTYYZkgAZdt7BqeGibjBMNtD/7uhY+YzGb7tk0sfPAWK/sk9yzDveASA3f9meL7j7WqgKOnhJgi4SubcVXDrt96YrnXDz/0E5zUafEER6L9h7hMwdwFyBgeimjuH8jDv7Se7DvbGrq2Cn8e850iO9tn/MI6/Bdp8BTQPygKYTuWI15zjS5DgVRuq9J0EIMBoxndPgi50j5Bc7EGRGqK73laq0zrXPKZkuYnSb6SD0+o9gXTx4D6RejPA5DBBgNvbifYODvx6fN/z4Jmp58IpTcVsl8iwv1Dx94RzKQRAAMufmniDEP3mnWeI3tfbeBQ+np5/59biFTiUybMg9ZgX/DlVnnesyzv08CQ5452SAADYPSQat+z6FCDi4ht/tbhXyeeLDnifGOD0yok8x2qGy1E9nQXOo8oCoM+aqON24NUfVR+3925HcX8mIveIrLf537oosflSP/9Dmsmtwwey/QDRtgLguhQDMOD30QB7jqFR/+GHKqtXAgJQfkqRAA1wgM9Ae98XVPinDptXAgJ4FQSwfQBoDIXnXNpVgKLyXDUwANLXFAzoALbnCxDYQboHgpvSe2XDf1RhAADggL/QgSoxeihAfMfXgz74g6hVgS0gAKXHFI+Bgsywgsxig6TgAApoFQbQAAWwga9wgaWRgqJQAE+IgS8jAFhYCvTXEwEghKpghWyRAF34hZ5ghmeje7EwAAAAf15RKADgAGTICd4nWGqYCnAoh2QRAAhQg1TII/3CKsrQh5xiAC9TAF44CglYFPZHDFoYKr23h4Owfz5BK9EwiZWidqLAhup3h77gAEXIFVUiCgKQfOMAdtIgAP87NxU6aAnZZ1lk5wsK0AB+KBW3BgpGtxP69g0DwIllcWyVkIpiKIrNIAAyKBVXBkAz5HDzBwBbiBTLhwmgKDFuaA5MdBXZ2AiPiFv+doPISAPRMY1jBwphCBqWSAordYpO4ACveGARVIJpNYiqUDuxOATBqIoos4ZyKHPE8A8KtwTlKBQEsI594IQDeAzAU42i1gDmqA5MaAhE6BgTGQuL5XpO4Irw55CPoADPc3HJ0ELuSAUOAJFshJB4QIIWuQw1kY9KcAAoyRCs+AiIaBMiuQxoNZBScAAMED4iGAm9yDoXOVp+6JEtVwALoB1F2QfCqD/jOAuVJw9RKQRNuQf/3xh4v+dZXNmVXvmVYAkAyygRJZmMEJZ5GziBxgWTvlCRVBKONqCWxsWTweCWKiE1XyiXzdWNsmCXJBEAfOlfeklgxOCXHjF1QTCYzVWTt2CYZNkA9hhfiilc3oULjskQCeBgRDCZxtULl2kQX4cEDPYs5tgso3madxKR+ZILpKgSaFk0vrMGqoSUq/CU2KiSZ8BVVxBKtXgJ6aY/VxkHumkFY0QAkIkLN1SJjjCcVQAqj1GVnSBJtMWYhsCcVGCdIsRWmYmbcICdUuCdnyBJ1RScegCeUGCenuAAf8GI3Ok0ZrUF6Plp8dkE8xlp9bkE9wlo+ZkE+wln/XkE/xlm/wE6Hu/5bwNKBAfqZAkqBAsaZA0KBA8qYxE6VZAFcikwoVtVoPaGodVToRbKfmGTBhy6USNaVh76oSVQojmgogzFohmkoe3movYDo+Mmo0pEo9tmo0p1oihaTyGKBjp6TkEKRjzao6mEo82JpMs2pDHApAXipBIYm0aKTUo6BVCaH1caR1XKa1k6N1s6a126AmF6HWN6oV/aamVKpUXao2kKolI6pa20pmDQpsBBpyl6pqVmpySgp7HBp/cnpx/qp0cKqBYqqIIqGoaKp/KpqE1Aj/0Ep266MGzQeL1pn4yadecIqWr6o2YAKpWKaHz6YpKqqXdKqHunR6Qap5wqBv9Zeamg6qpWKQAAwI/Qk6qq+qYMmotUQZ5gCqsiEI9O0Z531p94UZmk2p+6ShXNyKa+CgGaNhXUOaX/SYIBkKxMIazD2qwlMDYFAAABQKtDsazMaqpBQFoAgADVahW8yqXaGgPcOpNLEZS2yqSfCRTryq7k2gTp5xi2aqb52gTVFQ/QuaTtmgOlyGr9WqqrmgX90xOak7CRqjJhoJr6EJkxWrDgABQDm6MYaz4+EZiB2rEv2hMgG7L/CiAkC7FeerJNIJ0YUbIo2qUNS5Yba6AiewMKyJYJG6ZmFq0q66O46gUJBrOQqiCRqAWuWCdSaLFweh/i+rNy4B5PC7XCiVd6VCsI+ypK93q1rKp+2Mq1XPBanwq2cwqaTEu2Z/AtiIm2JiMzX8u2cBu3cju3dFu3dnu3eJu3eru3fNu3fvu3gBu4gju4hFu4hnu4iJu4iru4jNu4jvu4kBu5kju5lFu5lnu5mJu5mru5nNu5nvu5oBu6oju6pOsOIQAAOw==",u=JSON.parse('{"title":"双周回顾#005 - 零","description":"","frontmatter":{},"headers":[],"relativePath":"week/005/readme.md","filePath":"week/005/readme.md","lastUpdated":null}'),p={name:"week/005/readme.md"},t=o('

双周回顾#005 - 零

zero

一件悲伤的事实,这两周,成长值为零~~

从大数据部门临时抽调到互联网部门,支援重构的“配置下单”项目。

一个变种的低代码架构设计,唯一比较有意思的是它的业务组件的设计与校验设计,算是学习到点东西吧,其余的时间都是赶工中度过~~

一、价值

(一)架构

有幸与公司的前端技术高经聊天,向大佬请教架构师之路,大佬给的建议。

  1. 技术是为业务服务的。API 学习是基础,但不是重要的,重要的是要懂这个新技术解决了哪个业务场景。
  2. 深耕业务。深度熟悉某一类业务是架构师的必走之路,比如活动秒杀设计、低代码设计
  3. 前瞻性。拥抱变化,做设计时需要考虑后期的扩展,更友好的支持。比如:服务人数从 1K 扩展到 1W、新加功能特性

这些是建设性的建议,真正落地还是有一段路要走:

了解技术背景

一个新技术的出现,必定伴随着特定的业务场景,在这个独特的业务场景,持续完善这个技术,最终才会有面向世人的技术.

反思:通常看到一个技术时,会首先一股脑的去学习 API,反而忽略了最本质的东西。

透过技术学习架构

一个好的技术,必定伴随着一套稳固的架构设计。空谈架构有点虚,可以从一门技术的设计,慢慢去学习它内在的架构。学习它、模仿它、使用它。

很好的例子,Vue 中存在双向绑定,React 中为何一直没有双向绑定呢?

打破限制

每一个小的业务做到极致都是一项很庞大的版图,像数据、日志、队列、资产等。架构的本质是为业务服务,打破技术人的边界思维,敢想敢做,是否可以更进一步、再进一步呢?

(二)互联网

不曾真正在互联网网络做过事儿,这两周支援互联网部门,明显体会到不同的气氛。

怎么说呢,互联网部门与内部系统部门,最直观的感受,就是互联网部门更有朝气,使用最新的技术、说着最潮的行话、下最晚的班

互联网部门是善变的。作为直接对接用户的部门,一个需求、一周变化个两三次都是有可能的。不要担心,会有一堆小伙伴陪着你加班,UI、UE、产品、开发...

互联网部门是自由的。完全基于敏捷思想,快速迭代,以最终产品说话。

(三)外包

不得不说的一件事儿,要远永避开外包、避开外包、避开外包...

需要支援的项目,工期紧张、任务繁重。所以,一件很悲伤的事儿,就是没人关心支援的人是否了解项目,也不需要支援的人了解架构、业务,按照人家已设计好的架构填空就行。

外包的滋味十足,基本上天天在赶工,整个人都在透支中...

二、反思

连续两周未有效读书了,一直给自己找借口。觉得加班忙,所以可以谅解。啊哈哈哈哈哈

时间总会有的,懒而已

',30),g=[t];function q(r,s,n,I,h,B){return e(),a("div",null,g)}const Q=A(p,[["render",q]]);export{u as __pageData,Q as default}; diff --git a/docs/assets/week_005_readme.md.NhGnOKGq.lean.js b/docs/assets/week_005_readme.md.NhGnOKGq.lean.js new file mode 100644 index 0000000..11caa2e --- /dev/null +++ b/docs/assets/week_005_readme.md.NhGnOKGq.lean.js @@ -0,0 +1 @@ +import{_ as A,c as a,o as e,a2 as o}from"./chunks/framework.aTtkxbT6.js";const i="data:image/png;base64,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",u=JSON.parse('{"title":"双周回顾#005 - 零","description":"","frontmatter":{},"headers":[],"relativePath":"week/005/readme.md","filePath":"week/005/readme.md","lastUpdated":null}'),p={name:"week/005/readme.md"},t=o("",30),g=[t];function q(r,s,n,I,h,B){return e(),a("div",null,g)}const Q=A(p,[["render",q]]);export{u as __pageData,Q as default}; diff --git a/docs/assets/week_006_readme.md.DPiOF40T.js b/docs/assets/week_006_readme.md.DPiOF40T.js new file mode 100644 index 0000000..305d2bc --- /dev/null +++ b/docs/assets/week_006_readme.md.DPiOF40T.js @@ -0,0 +1 @@ +import{_ as r,E as B,c as s,b as d,w as a,a3 as o,a2 as i,m as t,a as e,o as E,J as A}from"./chunks/framework.aTtkxbT6.js";const P=JSON.parse('{"title":"双周回顾#006 - 这三个月","description":"双周回顾","frontmatter":{"outline":"deep","head":[["meta",{"name":"author","content":"swlws"}],["meta",{"name":"description","content":"双周回顾"}],["meta",{"name":"keywords","content":"swlws 双周回顾"}]]},"headers":[],"relativePath":"week/006/readme.md","filePath":"week/006/readme.md","lastUpdated":null}'),n={name:"week/006/readme.md"},c=i('

双周回顾#006 - 这三个月

断更啦~~

上次更新时间 2023/11/23, 断更近三个月的时间。

先狡辩下,因为忙、着实忙。因为忙,心安理得给断更找了个借口,批评下自己~~

这三个月在做啥?跨部门援助,支援公司互联网的 ToC 项目,一言难尽。

先说下考勤,基本上每天晚上十一点后下班。正常的双休没了,变成单休,甚至上十三天休一天。

月份调休时长
2023/1176
2023/1260
2024/0146

所以,确实是有点忙~~

一次不指望开发人员懂业务的项目开发经历

此次支援的项目属于公司重点高项,团队阵容堪称豪华,所有资源优先投入此次项目。

此次项目的最大特点就是要在两个月内出成果,时效卡的死死的

但是,问题来了,大部分人是从外部门支援来的,整个团队懂业务的就那么几个人。所以遭遇了工作以来,堪称魔幻的一次开发经历。

正常的项目迭代流程:

',13),p=t("p",null,[e("这次就牛逼了,主打一个"),t("code",null,"开发不需要懂业务"),e(",按图索骥就行,妥妥的牛马。")],-1),h=t("p",null,[e("所以,效果也很显著,整个开发周期内,前后端的 BUG 数量,高达"),t("code",null,"6000+"),e("。身上不带百八十个 BUG,午饭都不好意思加个鸡腿~~")],-1),_=i('

但是,咱就说但是。但是,项目结果也是喜人的,经过牛马们没日没夜的辛勤劳作、经过测试人员的N轮测试,项目成功落地。

项目开发

项目启动会议后,迅速再拉了一次 30+人的工程架构解读会议,大伙看了两天代码,立马投入开发阶段。

早期介入开发时,大家集体懵逼。时间紧、任务重,根本没有时间给开发人员讲解业务需求、甚至需求文档都没有。

项目启动后的前两周,大伙一脸懵逼的做功能。遇到不懂得业务时,最常听到是,“先等测试提 BUG 就行,他们懂业务”。这也造就了,测试介入后,提了6000+的 BUG

项目测试

通常情况下,当开发做完完整的功能后,经历自测、提测、冒烟测试后,测试人员才会正式介入测试。

',7),m=t("p",null,"这次流程就稍稍变化了下,整个项目管控,变成了比敏捷还敏捷。边开发、边构建、边测试,而且不限次数的测试,直到问题处理结束。",-1),u=i('

最大的变化是,测试这里提出的不再是单纯的 BUG,也会包含着需求在里面。也就是说,要做什么、不做什么,基本上是通过测试人员来传达的。

另外很重要的一点,就是测试人员介入的时间点,在开发人员开始开发后的第三周。 测试的步步紧跟是这次项目成功的重要因素。

项目的底气

拉了一群新人,在新人完全不懂业务的情况下,为什么敢玩的这么刺激?不怕翻车吗?它的底气是什么:

  1. 属于旧项目重构。业务上并不是新需求,有产品人员全程跟随,不怕业务需求跑偏。
  2. 庞大的测试团体。70+人的项目组,测试人员占了一半。
  3. 工程架构。可插拔的构架设计,保证了业务层的模块可以随时替换,单个模块不会影响其它模块。

项目开始后,开发人员一直在发牢骚,感觉项目负责人就是在瞎搞,妥妥的即将翻车。

令人惊讶的是,虽然一直在修修补补,但这辆车成功抵达了终点。

不过这一过程中,有一说一,技术债肯定是留下了,很多场景下,为了尽快修复问题,代码都是特写的,后期 CodeReview 时,必定要修改的。

价值

三个月忙忙碌碌,丢了一些东西,也捡起一些东西。

  • GUI 专利
    • 采集用户行为,以热力图的方式可视化展示,辅助产品运营人员做决策。同事提出的想法,我加以实现,抱同事大腿,蹭个署名,哈哈哈哈哈
  • 业务串讲以及 CodeReview
    • 主持数次串讲以及 CodeReview
  • 性能分析
    • 首屏性能问题
    • 表格卡顿问题。其中比较有趣的一点,组件降级处理,确实是个不错的方案
  • 抉择
    • 得支援部门领导得欣赏,期望我平调到支援部门;原部门期望留下,会有新项目主持。被人欣赏的感觉,还是不错的哒

同事离职

同一天入职的同事离职了,时间定格在 2024/2/2,遥祝一帆风顺,前程似锦。

',13);function F(C,b,f,k,D,T){const l=B("Mermaid");return E(),s("div",null,[c,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-74",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E9%9C%80%E6%B1%82%E8%AF%84%E5%AE%A1)%20---%3E%20B(%E5%8E%9F%E5%9E%8B%2FUI%E8%AE%BE%E8%AE%A1)%20--%3E%20C(%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98)--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%20--%E4%BF%AE%E5%A4%8D%E5%90%8E--%3E%20%20E(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20----%3E%20F(%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E3%80%81%E4%BA%A7%E5%93%81%E3%80%81UI)%0A%20%20%20%20A%20--%3E%20C%0A%20%20%20%20A%20--%3E%20F%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20C%0A%20%20%20%20F--%3ED%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),p,h,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-81",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E9%9C%80%E6%B1%82%E8%AF%84%E5%AE%A1)%20---%3E%20B(%E5%8E%9F%E5%9E%8B%2FUI%E8%AE%BE%E8%AE%A1)%20--%3E%20C(%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98)--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%20--%E4%BF%AE%E5%A4%8D%E5%90%8E--%3E%20%20E(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20----%3E%20F(%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E3%80%81%E4%BA%A7%E5%93%81%E3%80%81UI)%0A%20%20%20%20A%20--%3E%20F%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20C%0A%20%20%20%20F--%3ED%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),_,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-103",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91)%20----%3E%20B(%E6%8F%90%E6%B5%8B)%20--%E5%86%92%E7%83%9F%E6%B5%8B%E8%AF%95--%3E%20C(%E6%AD%A3%E5%BC%8F%E6%B5%8B%E8%AF%95%EF%BC%88%E6%9C%80%E5%A4%9A%E4%B8%89%E8%BD%AE%EF%BC%89)%0A%20%20%20%20A%20--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20A%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),m,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-107",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E5%BC%80%E5%8F%91)%20---%3E%20B(%E4%BB%A3%E7%A0%81%E6%8F%90%E4%BA%A4)%20--%E6%9E%84%E5%BB%BA%E5%8F%91%E5%B8%83--%3E%20C(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20---%3E%20D(%E6%B5%8B%E8%AF%95)%20--%E7%BC%BA%E9%99%B7%2F%E9%9C%80%E6%B1%82--%3E%20A%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),u])}const U=r(n,[["render",F]]);export{P as __pageData,U as default}; diff --git a/docs/assets/week_006_readme.md.DPiOF40T.lean.js b/docs/assets/week_006_readme.md.DPiOF40T.lean.js new file mode 100644 index 0000000..c992fe6 --- /dev/null +++ b/docs/assets/week_006_readme.md.DPiOF40T.lean.js @@ -0,0 +1 @@ +import{_ as r,E as B,c as s,b as d,w as a,a3 as o,a2 as i,m as t,a as e,o as E,J as A}from"./chunks/framework.aTtkxbT6.js";const P=JSON.parse('{"title":"双周回顾#006 - 这三个月","description":"双周回顾","frontmatter":{"outline":"deep","head":[["meta",{"name":"author","content":"swlws"}],["meta",{"name":"description","content":"双周回顾"}],["meta",{"name":"keywords","content":"swlws 双周回顾"}]]},"headers":[],"relativePath":"week/006/readme.md","filePath":"week/006/readme.md","lastUpdated":null}'),n={name:"week/006/readme.md"},c=i("",13),p=t("p",null,[e("这次就牛逼了,主打一个"),t("code",null,"开发不需要懂业务"),e(",按图索骥就行,妥妥的牛马。")],-1),h=t("p",null,[e("所以,效果也很显著,整个开发周期内,前后端的 BUG 数量,高达"),t("code",null,"6000+"),e("。身上不带百八十个 BUG,午饭都不好意思加个鸡腿~~")],-1),_=i("",7),m=t("p",null,"这次流程就稍稍变化了下,整个项目管控,变成了比敏捷还敏捷。边开发、边构建、边测试,而且不限次数的测试,直到问题处理结束。",-1),u=i("",13);function F(C,b,f,k,D,T){const l=B("Mermaid");return E(),s("div",null,[c,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-74",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E9%9C%80%E6%B1%82%E8%AF%84%E5%AE%A1)%20---%3E%20B(%E5%8E%9F%E5%9E%8B%2FUI%E8%AE%BE%E8%AE%A1)%20--%3E%20C(%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98)--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%20--%E4%BF%AE%E5%A4%8D%E5%90%8E--%3E%20%20E(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20----%3E%20F(%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E3%80%81%E4%BA%A7%E5%93%81%E3%80%81UI)%0A%20%20%20%20A%20--%3E%20C%0A%20%20%20%20A%20--%3E%20F%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20C%0A%20%20%20%20F--%3ED%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),p,h,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-81",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E9%9C%80%E6%B1%82%E8%AF%84%E5%AE%A1)%20---%3E%20B(%E5%8E%9F%E5%9E%8B%2FUI%E8%AE%BE%E8%AE%A1)%20--%3E%20C(%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98)--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%20--%E4%BF%AE%E5%A4%8D%E5%90%8E--%3E%20%20E(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20----%3E%20F(%E6%B5%8B%E8%AF%95%E4%BA%BA%E5%91%98%E3%80%81%E4%BA%A7%E5%93%81%E3%80%81UI)%0A%20%20%20%20A%20--%3E%20F%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20C%0A%20%20%20%20F--%3ED%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),_,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-103",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E5%8A%9F%E8%83%BD%E5%BC%80%E5%8F%91)%20----%3E%20B(%E6%8F%90%E6%B5%8B)%20--%E5%86%92%E7%83%9F%E6%B5%8B%E8%AF%95--%3E%20C(%E6%AD%A3%E5%BC%8F%E6%B5%8B%E8%AF%95%EF%BC%88%E6%9C%80%E5%A4%9A%E4%B8%89%E8%BD%AE%EF%BC%89)%0A%20%20%20%20A%20--%E8%87%AA%E6%B5%8B--%3E%20D(BUG)%0A%20%20%20%20D%20--%E4%BF%AE%E5%A4%8D--%3E%20A%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),m,(E(),d(o,null,{default:a(()=>[A(l,{id:"mermaid-107",class:"mermaid my-class",graph:"graph%20LR%0A%20%20%20%20A(%E5%BC%80%E5%8F%91)%20---%3E%20B(%E4%BB%A3%E7%A0%81%E6%8F%90%E4%BA%A4)%20--%E6%9E%84%E5%BB%BA%E5%8F%91%E5%B8%83--%3E%20C(%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83)%20---%3E%20D(%E6%B5%8B%E8%AF%95)%20--%E7%BC%BA%E9%99%B7%2F%E9%9C%80%E6%B1%82--%3E%20A%0A"})]),fallback:a(()=>[e(" Loading... ")]),_:1})),u])}const U=r(n,[["render",F]]);export{P as __pageData,U as default}; diff --git a/docs/assets/welink.BtAEMnNt.png b/docs/assets/welink.BtAEMnNt.png new file mode 100644 index 0000000..3d38f8d Binary files /dev/null and b/docs/assets/welink.BtAEMnNt.png differ diff --git "a/docs/date/202210/Api\347\275\221\345\205\263.html" "b/docs/date/202210/Api\347\275\221\345\205\263.html" new file mode 100644 index 0000000..8364339 --- /dev/null +++ "b/docs/date/202210/Api\347\275\221\345\205\263.html" @@ -0,0 +1,48 @@ + + + + + + API 网关 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

API 网关

一、背景

微服务体系中,如果未部署网关,则客户端必须直接向前端服务发送请求。 但是,直接向客户端公开服务会造成一些潜在问题:

  • 可能需要编写复杂的客户端代码。 客户端必须跟踪多个终结点,并以弹性方式处理故障。
  • 会在客户端与后端之间造成耦合。 客户端需要知道如何分解各个服务。 因此,客户端维护和服务重构会变得更困难。
  • 单个操作可能需要调用多个服务。 这可能导致客户端和服务器之间的多次网络往返,从而显著增加了延迟时间。
  • 每个面向公众的服务必须处理身份验证、SSL 和客户端速率限制等问题。
  • 服务必须公开客户端友好的协议,例如 HTTP 或 WebSocket。 这就限制了通信协议的选择。
  • 包含公共终结点的服务是潜在的受攻击面,必须得到强化。

二、API 网关

位置:API 网关位于客户端与服务之间

作用:

  • 充当反向代理,将来自客户端的请求路由到服务。
  • 执行各种横切任务,例如身份验证、SSL 终止和速率限制

网关的功能,划分为三类:

  • 网关路由。使用网关作为反向代理,网关为客户端提供单一终结点,可帮助将客户端与服务分开。
  • 网关聚合。将多个单独请求聚合成一个请求。
  • 网关卸载。将单个服务的功能卸载到网关,尤其适合用于解决横切问题。
    • SSL 终止
    • 访问控制,IP 允许/阻止列表
    • 流量控制,客户端速率限制(限制)
    • 日志记录和监视
    • Authentication。登录凭证校验、API 资源调用权限校验
    • API 参数清洗
    • 响应缓存
    • Web 应用程序防火墙
    • GZIP 压缩
    • 为静态内容提供服务
  • 发布
    • 金丝雀
    • 灰度发布
  • 持续集成
    • 对接 swagger 文档

支持的应用层协议:

  • HTTP、HTTPS
  • WebSocket

三、功能

3.1 API 路由转发

使用反向代理服务器,一般使用 Nginx 和 HAProxy。

支持的协议:HTTP、HTTPS、WebSocket

3.2 API 路由聚合

BFF(Backend For Frontend),服务于前端的后端。为每一种客户端适配一个网关,组装、过滤客户端需要的数据(不关心业务)。

3.3 SSL 终止

客户端到网关层使用 HTTPS 协议,网关层到各个服务层使用 HTTP 协议。

3.4 流量控制

限制单位时间内 API 的被调用次数,保护后端服务。

3.5 访问控制

控制访问 API 的 IP 地址和帐户,设置 IP 地址或帐户的黑白名单来拒绝/允许某个 IP 地址或帐户访问 API。

3.6 流量监控

监控 API 的延迟、流入流量、流出流量、调用次数等。参考华为云 API 网关的指标

3.7 日志分析

分析的指标:

  • PV、UV
  • 客户端种类分布移动端、PC 端口;Chrome、Firefox
  • 访客 IP 分布

3.8 鉴权

鉴权对象方式
应用鉴权为应用设置 AppCode,请求中携带正确的 AppCode 时,鉴权通过。
用户鉴权云账号;基于 OAuth 2.0 协议的 OpenID;无认证
API 鉴权插件,拦截请求,配合具体业务具体实现

四、产品设计

一个 API 网关产品,通常会抽象出:

  • Upstream 上游
  • Router 路由
  • API Group(有的产品也叫服务)
  • Plugin 插件

Router

通过路由定义规则来匹配客户端请求,根据匹配结果加载并执行相应的插件,最后把请求转发给到指定的上游应用

Api Group

路由集合。可以通过 Group 统一配置 API 的转发、横切任务。

Upstream

上游的作用是按照配置规则对服务节点进行负载均衡,它的地址信息可以直接配置到路由或服务上。

Plugin

内置横切任务插件,比如 KeyAuth、日志审计等。

可以单独为路由配置插件,也可以为 Group 配置插件。

五、产品


参考

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202210/\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.html" "b/docs/date/202210/\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.html" new file mode 100644 index 0000000..f2a8bf3 --- /dev/null +++ "b/docs/date/202210/\344\270\244\345\271\264\345\210\233\344\270\232\347\232\204\345\276\227\344\270\216\345\244\261.html" @@ -0,0 +1,48 @@ + + + + + + 两年创业的得与失 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

两年创业的得与失

走走,停停,看看,想想。总有一点温暖,值得持续坚持下去。

一、回顾

1.1 零到一的相遇

毕业后一直供职于一家网络安全的公司,从事主机安全相关的工作。

二零年初发生一些变故,同时感觉职场没有上升的机会,所以果断离职了。最后到一家主营数据中心安全监控的公司供职,当时正好这边新开一个无代码平台的项目,个人成为 Web 组的小 leader。上下班时间规律的很,朝九晚五,准时上下班、零食不断。感觉一下子到了退休生活,自己为小组安排工作,按时交付输出就行。没人给我画大饼、咱也不会给组员画大饼,融洽的很。总结一个字,就是闲。

国庆节后,前公司 leader 突然联系,说是准备自己开公司,要不要来做合伙人。没考虑太久,就同意了,理由有一下几点:

  1. leader 待人和善,工作上总是能给予引导,是我职场上的带路人。
  2. leader 技术能力强,早年的清华硕士。同时,他是《深入浅出 MFC》的作者,专业能力没得说。
  3. 我自己当时的状态,的确闲。钱多事少,跟养老似的,时间久了,怕把自己整废了。

趁年轻,浪一次,拼搏一把,指不定成了呢。

1.2 深圳的十点钟

二零年大家信心充沛,干劲十足。当时正好公司这边在跟某省移动在接触,移动那边认可我们的产品设计,承诺年底前,产品版本发布后可以签订单合同。

公司的办公室在一栋公寓里,三十多平,窗口朝着地铁口,每天人来人往。不大的空间,正好够五、六个人的工位,再加上一些服务器,整个办公室满满当当的。

有三人是住在这栋公寓,另外的人离公司也很近。整个二零年下半年,基本上都是早九点上班、晚十点下班,周六再花一个上午做周总结、复盘等。很忙,但充实,大家知道自己在什么,知道可以得到什么。

回顾整个二零年,上半年闲的天天划水、下半年忙的没时间思考。

1.3 有个兄弟离场了

二一年年中时,有个兄弟决定离开了。

成立公司时,预期的能够很快拿到订单,公司会有持续的收入。但是,但是没有收入。因为一些场外原因(我们自己分析的),某省移动的合同一直没能签下来。

当然,二一年期间,我们也陆陆续续在跟一些潜在客户、合作商、销售联系、跟进,但是没有太大的进展。换句话说,账面上依然是赤字,只有投入,没有产出。

1.4 产品打磨

二二年,发生疫情后的第三年了。整体的大环境不好,国家政策上一直在强调网络安全,这是利好消息。但是企业客户在花钱上很谨慎了,想进军企业市场难度越来越大。可能的原因:

  1. 相似的产品,客户已经部署。如果只是某一点比别家的产品强,或者产品整体优势不明显,企业不乐意引入新产品。
  2. 有些公司自己就会做主机安全方面的产品,他们只是想借鉴我们的产品。
  3. 甚至有些公司直接想合并我们,但是又不想付出足够的代价。
  4. 没有人脉,划重点,没有牢靠的人脉关系。

外部环境不好,能够做的是打磨我们的产品,为客户提供更大的价值,增加对外销售的机会。

1.5 与女友闹掰了

这是一个悲伤的故事...

二、事业

2.1 公司

公司注册

能注册新公司就直接注册新公司,通过公司变更的方式成立新公司反而更麻烦,同时也会失去一些市政的优惠政策。

专利文件

专利文件要尽早的编写、提交申请,申请尽量走快审通道,不要省快审的钱。

专利可以选择不公开,在自己的产品完全成熟前,不暴露自己。小公司唯一的优势就是技术能力了,要近可能晚地暴露自己的产品。

软著

软件著作权,基本提交申请就能通过,从开发人员的角度看,可能没啥意义。但是很多投资方不懂技术,反而更在意软著,投资方期望从软著评估你的公司是不是真正的在做事。所以,有时间还是尽量去申请吧。

高新资质

尽量去申请吧,政府补贴还是很可观的。

2.2 管理思维

管理不只是下命令,需要识别需求、识别关键点、把控风险点、跟进进度、共享信息。

识别真正的需求,永远不要偏离最初的诉求,或者说不要忘记初衷,每一步结束时,都要回头看下是否偏离初衷。

自发的识别关键点。做规划时,能够意识到哪里时关键节点,针对关键问题,需要组织评审会议,不同的角色对关键点的认知是不同的,经过讨论是会碰撞出不同的思路的。

把控风险点。比如预研类的任务通常是一个风险点,不能明确具体耗时,这时就需要管理者即时跟进进度,判断是否继续、还是会议讨论换个思路。

共享信息。信息共享贯穿于整个生命周期内,需要传达信息到下层,也需要从下层获取信息。信息的共享是很有必要,同一个业务,不同角色(开发、产品等)会有不同的认知。他人会提出不同的观点,或许这正是你设计时未考虑到的点呢。通常开发人员会带有偏见,比如前端觉得没必要让后知道页面逻辑;后台觉得跟前端说业务是浪费时间~~

所有,一个合格的管理者,我觉得至少需要做到以下几点:

  • 委托任务。将正确的任务,在正确的时间节点,委托给正确的人。
  • 信息流动。尽可能的保证信息在流通过程中,不会发生变形,能够正确的传达。
  • 识别关键点。组织会议,对于关键点,明确输入、输出。
  • 把控风险,及时跟进进度。

2.3 Bottom 与 Top

看待问题时,可以从底层向高层推理,也可以从高层向下层设计。用锤子的例子来说明:

从 Bottom 到 Top 思考。

采矿时,发现这片矿场只有金、银、铜三种矿石,那可以逆推出,只能作出金锤子、银锤子、铜锤子。

从 Top 到 Bottom 思考

现在,想要一把金锤子。然后,去矿场挖矿,发现金、银、铜三种矿石。所以,金锤子的诉求能满足,顺便还能做银锤子、铜锤子。

例子可能不太恰当,意会吧,啊哈哈哈哈。

实际上,开发人员的思维通常是 Bottom 到 Top,而产品人员的思维是 Top 到 Bottom。

2.4 沟通是个技术活

内部沟通、外部沟通都是一个技术活啊,着实难!!!

a. 内部沟通

口头转达、书面记录,都是沟通的一种方式,沟通的目的,是为了让沟通方在信息上达成一致,即理解要相同,含义不会发生变形。

复述自己的理解

有时讲述者讲述完后,会让聆听者重复一遍。这是一个确认理解是否发生偏移的过程,这个过程并不是故意给某人使绊子,因为同样的一句话,不同的人的确会存在不同的理解。可以多想想 HTTP 三次握手的过程,不要闲麻烦、更不要带有负面情绪,心平气和地沟通。

不要着急说 NO

他人提出一种观点时,尽可能地多想想为什么会提出这种观点。通常情况下,可能的原因:

  1. 角色不同,看待问题的思维是不一样的。
  2. 信息的上下文不同,他人可能基于某个假设,提出了这个观点,而你并不知道这个假设。
执着于证明对错,不是一个好的习惯

工作中,没人关心你为什么错了,方向偏了,立马纠正回来,完成目标就行。下次遇见相同的问题,不要踩坑就行。

发散、聚拢

头脑风暴时,思维是天马行空的,尽可能的发散思维,不要纠结于对错、具体的实施可行性。先发散、最后再聚拢。

遇见问题时,可以向周围人求助,不同的视角,会有不同的建议。

要礼貌

最重要的,让他人把话说完,不要抢话。划重点,不要抢话!!!有疑问时,可以在他人发言的间歇时再提出。

b. 外部沟通

外部沟通时,会遇见形形色色的人,有可能是 CEO、CTO、售前、投资人、友商等,与不同角色的人沟通,沟通的侧重点是完全不同的。比如:

  • CEO 在意的是商业价值、战略部署、长期效益
  • CTO 在意的是技术架构是否优秀,技术难点的攻克方案
  • 售前在意的是产品优势,在同类产品中是否令人眼前一亮,激发购买欲
  • 投资人在意的收益,可能是短期收益、也可能是长期收益
  • 友商在意的是是否能合作共赢

所以呐,PPT 难写!!!需要专业的人去讲故事。

总的说呢,对外沟通,要:

  • 理解对方的行为。从对方的行为上,能够理解对方产生这个动作的潜在内因。这,很艰难,但的确需要去理解。比如:签合同,对方沟通很积极;签署后不再积极跟进,为啥嘞?
  • 获取信息。从对方那里尽可能多地获取信息,武装自己。比如:政策信息、市场信息、产品信息等等。
  • 保护自己。羽翼未丰之前,保护自己,比如专利、软著等。沟通交流时,不要泄漏核心技术。
  • 利益分配。不要轻易许诺股份,初创公司要将公司的主动权把握在自己手中。

三、个人

3.1 说点啥嘞

两年无社交,大黄(我的喵啊)伴我行。大黄呀,等我富贵了,带你吃香的喝辣的,啊哈哈哈哈哈。

另外,《如果有一天我变得很有钱》,然后故作谦虚的说金钱不是一切。

3.2 专业能力

业务

主机安全方面,在广度上,涉猎的面很广,比如:

  • 资产清点、合规检测
  • 漏洞检测、补丁修复
  • 入侵检测
  • 账号安全
  • Web 蜜罐
  • API 网关

当然都是在广度上,交流、聊天自信还是能忽悠不熟悉这行的人的,啊哈哈哈哈哈。深度上涉猎不多,比如设计到网络层的入侵检测、涉及内核层的进程等。

技术向善,安全人都是善良人,赞美下自己。

开发

再说老本行,前端,深度有点拉下了,还是得紧跟潮流,继续卷?卷卷卷!!!前端可以继续卷的方向:

  • 音频、视频
  • 图像图像处理
  • 可视化,2D、3D 动画

后台吧,没吃猪弱也见过猪跑。检索引擎、消息队列、容器这些哇,耳濡目染之下,多多少少了解些,暂时不考虑深度了,会用就行。等有需要了,再去详细学习吧。

内核层 API 操作,这个就先算了,短期不考虑、或许长期也不考虑...

管理

这两年也陆陆续续地主导项目,需求啊、WBS 啊、沟通啊、交付啊、复盘啊都有意、无意的实践这些,接下来有时间可以系统的看下 PMP,增加自己的底蕴。

四、总结

创业需要很大的勇气,努力是基本素质、失败是起步,不要盲目创业,创业需慎重。

打工时只需要考虑任务如何完成,创业后,需要自己找任务做。有事情做的日子很忙,没事儿做时很焦虑。

焦虑呢,无解,多走走、多看看,自己瞎溜达下吧,情绪呢就自我消化吧。

啊,都看到这里啦,打个广告噻。有兴趣了解我们正在做的事情的话,请访问 https://www.bitsnav.com/ 获取更多信息。


目前一个 loser,我随便写写,诸君随便看看就行。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202210/\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.html" "b/docs/date/202210/\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.html" new file mode 100644 index 0000000..c3d2cec --- /dev/null +++ "b/docs/date/202210/\345\267\267\345\255\220\351\207\214\347\232\204\351\205\222\351\246\231.html" @@ -0,0 +1,48 @@ + + + + + + 巷子里的酒香 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

巷子里的酒香

最近准备换个住所,一开始在发愁怎么找房源。可行的方案:

  1. 周六日沿着地铁线、公交线,自己去公寓、城中村、一手房东找房子。
  2. 朋友推荐
  3. 联系中介,靠中介推荐

方案一嘞,疫情管控,不敢瞎逛。卒。

方案二嘞,朋友住的公寓,不是自己喜欢的风格。卒

所以,选方案三了。联系中介了,但是找中介也是个技术活,没点技术,都不知道中介门朝哪里开。

中介

街边经常看到链家、乐友家等房产中介,一般也提供租房服务,但是嘞有限制:

  1. 需要我在街边一家一家找中介。
  2. 大部分房产中介,要收中介费。

所以嘞,一懒二穷的咱,立马放弃这个实施方案。啊哈哈哈哈哈哈。

自媒体

本着闲置物二次利用,到咸鱼挂闲置的家电。偶热间发现有人在挂转租房,麻溜地联系卖家,聊下后才发现竟然是租房中介。这叫啥,柳暗花明一村哇,正愁着怎么找中介嘞,这下子妥了。

然后就是中介大哥带着去现场看房,中介大哥挺善谈,交谈中了解到他们会在快手、抖音、视频号、小红书这些平台发布租房信息。关键字一敲,一堆的中介大哥为你介绍房源。当时那个心情哇,瞬间感觉自己老古董了~_~

抖音、快手天南海北的打广告,小红书安利各种美景美食,然,几乎没用过。一般都是过年时,帮亲朋好友点个链接啥的,对这些应用的认知一直停留在随手拍、分享日常生活等等,带有点偏见的意思。

巷子中的酒

跟随着五六位中介去看房子,这个过程中发现有些房源是重复的。房东会把房间委托给几家不同的中介,再由中介对外出租。走动过程中会发现这么一个现象,靠近远离公交站台、地铁口的房间的装修,普遍比靠近交通枢纽的更好,价格也更低一些。但是,藏在深巷中的房源被选中的概率远低于直接暴露在外面的房间。

人靠衣装马靠鞍,第一眼被曝光的总会比深藏不露的更会被选中。

当然,还有句话说,是金子总会发光的。想发光也得先遇见光,深埋万丈深渊,还是能发光嘞。说句不好听的,一块破抹布遮在金子上,只要不遇见贵人,永远发不了光。

在抬抬杠,也有句话说,内涵比外表重要。这话在理,但是嘞,在外表上就被人直接 PASS 了,谁给你机会去展露内涵呢。

以前的时代呐,想喝口好酒,人呐会一个一个巷子去找,一款一款的对比,所以嘞酒香不怕巷子深;现在呐,再好的酒商家不主动增加曝光度,百度一下没看见你,完犊子了。

产品

时代在变、市场在变,人们的生活方式也在变,产品需要适应人,不再是人适应产品了。好的产品也是需要主动地、积极地刷刷自己的存在感,增加曝光度。第一步迈出去了,才有机会让人了解优秀的内涵。

呐,说到这里。给公司打打广告,主营 ToB 业务。主要产品:

  • 主机安全
    • 安全运维能力
    • 漏洞检测与管理
    • 安全态势可视化
    • 数据采集和分析能力
    • 运行保护
    • 安全体系建设
  • CWPP 和容器安全
    • 安全运维能力
    • 漏洞与合规
    • 运行保护
  • 账号安全
    • 账号集中管理
    • 访问控制策略集中管理
    • 弱密码管理

更多详情请访问官网:https://www.bitsnav.com/

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202211/HTTP\345\217\221\345\261\225\345\217\262.html" "b/docs/date/202211/HTTP\345\217\221\345\261\225\345\217\262.html" new file mode 100644 index 0000000..eae9268 --- /dev/null +++ "b/docs/date/202211/HTTP\345\217\221\345\261\225\345\217\262.html" @@ -0,0 +1,48 @@ + + + + + + HTTP 发展史 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

HTTP 发展史

HTTP/0.9

HTTP/0.9,有时也叫做单行(one-line)协议。它是在现有的 TCP 和 IP 协议基础之上建立,协议由四个部分组成:

  • 一个用来表示超文本文档的文本格式,超文本标记语言(HTML)。
  • 一个用来交换超文本文档的简单协议,超文本传输协议(HTTP)。
  • 一个显示(以及编辑)超文本文档的客户端,即网络浏览器。第一个网络浏览器被称为 WorldWideWeb。
  • 一个服务器用于提供可访问的文档,即 httpd 的前身。

HTTP/0.9 极其简单:请求由单行指令构成,没有版本号。示例:

bash
GET /example.html

HTTP/1.0

HTTP/0.9的基础上进行扩展:

  • 每个请求中携带协议版本号(GET /example.html HTTP/1.0
  • 状态码会在响应开始时发送,使浏览器能了解请求执行成功或失败,并相应调整行为(如更新或使用本地缓存)。
  • 引入了HTTP headers的概念,无论是对于请求还是响应,允许传输元数据,使协议变得非常灵活,更具扩展性。
  • 在新HTTP headers的帮助下,具备了传输除纯文本 HTML 文件以外其他类型文档的能力(凭借 Content-Type 头)。

HTTP/1.1

HTTP/1.0 多种不同的实现方式在实际运用中显得有些混乱,HTTP/1.1 消除了大量歧义内容并引入了多项改进:

  • 连接可以复用,节省了多次打开 TCP 连接加载网页文档资源的时间。
  • 增加管线化技术,允许在第一个应答被完全发送之前就发送第二个请求,以降低通信延迟。
  • 支持响应分块。
  • 引入额外的缓存控制机制。
  • 引入内容协商机制,包括语言,编码,类型等,并允许客户端和服务器之间约定以最合适的内容进行交换。
  • 凭借 Host 头,能够使不同域名配置在同一个 IP 地址的服务器上。

HTTP/2

HTTP/2 在 HTTP/1.1 有几处基本的不同:

  • HTTP/2 是二进制协议而不是文本协议。不再可读,也不可无障碍的手动创建,改善的优化技术现在可被实施。
  • 这是一个复用协议。并行的请求能在同一个链接中处理,移除了 HTTP/1.x 中顺序和阻塞的约束。
  • 压缩了 headers。因为 headers 在一系列请求中常常是相似的,其移除了重复和传输重复数据的成本。
  • 其允许服务器在客户端缓存中填充数据,通过一个叫服务器推送的机制来提前请求。

HTTP3

HTTP3 本质不是对 HTTP 协议本身的改进,它主要是集中在如何提高传输效率。

  • HTTP3 使用 stream 进一步扩展了 HTTP2 的多路复用。在 HTTP3 模式下,一般传输多少个文件就会产生对应数量的 stream。当这些文件中的其中一个发生丢包时,你只需要重传丢包文件的对应 stream 即可。
  • HTTP3 不再是基于 TCP 建立的,而是通过 UDP 建立,在用户空间保证传输的可靠性,相比 TCP,UDP 之上的 QUIC 协议提高了连接建立的速度,降低了延迟。
  • 通过引入 Connection ID,使得 HTTP3 支持连接迁移以及 NAT 的重绑定。
  • HTTP3 含有一个包括验证、加密、数据及负载的 built-in 的 TLS 安全机制。
  • 拥塞控制。TCP 是在内核区实现的,而 HTTP3 将拥塞控制移出了内核,通过用户空间来实现。这样做的好处就是不再需要等待内核更新可以实现很方便的进行快速迭代。
  • 头部压缩。HTTP2 使用的 HPACK,HTTP3 更换成了兼容 HPACK 的 QPACK 压缩方案。QPACK 优化了对乱序发送的支持,也优化了压缩率。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202211/HTTP\346\211\213\345\206\214.html" "b/docs/date/202211/HTTP\346\211\213\345\206\214.html" new file mode 100644 index 0000000..7285b6c --- /dev/null +++ "b/docs/date/202211/HTTP\346\211\213\345\206\214.html" @@ -0,0 +1,90 @@ + + + + + + HTTP 速查手册 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

HTTP 速查手册

一、通用身份验证

bash
# 服务端返回401,并告知验证类型为Basic
+GET 401 Unauthorized
+WWW-Authenticate: Basic realm="description"
+
+# 浏览器输入验证信息后,请求头中携带验证信息
+Authorization: Basic xxxxxxxxxx

二、Cookie

bash
# 服务端返回set-cookie
+set-cookie: name=xxxxx
+set-cookie: age=xxxxx
+
+# 用户代理记录Cookie,并在下次请求时携带Cookie
+Cookie: name=xxxxx; age=xxxxx

三、永久重定向

bash
# 状态码配置为301
+
+GET 301
+Location: http://example.com

四、临时重定向

bash
# 状态码配置为302
+
+GET 302
+Location: http://example.com

五、HTML 重定向

html
<!-- 通过HTML标签实现重定向 -->
+
+<meta http-equiv="Refresh" content="0; URL=http://example.com/" />
js
// 通过JS实现重定向
+
+window.location = "http://example.com/";

六、访问控制策略

js
// headers配置
+
+// 允许所有来源
+Access-Control-Allow-Origin: *
+// 允许所有方法
+Access-Control-Allow-Methods: *
+// 允许所有Headers
+Access-Control-Allow-Headers: *
+// 响应的有效时间为 86400 秒,也就是 24 小时。在有效时间内,浏览器无须为同一请求再次发起预检请求。
+Access-Control-Max-Age: 86400

七、HTTP 缓存

混存的种类:

  • 私有缓存。eg:浏览器
  • 共享缓存
    • 代理缓存。eg:代理设备(Nginx 代理)
    • 托管缓存。eg:反向代理、CDN 和 service worker 与缓存 API 的组合。

7.1 Cache-Control

Response:

valuedescription
private数据可以被私有缓存存储(eg:浏览器)
public数据可以被共享缓存存储 (eg:代理缓存、托管缓存)
no-cache相应的数据可以被缓存,但之后的每次请求需要向源服务端做文件有效性校验
no-store任何种类的缓存(私有缓存、共享缓存)都不应缓存数据
max-age=0不直接使用本地缓存,需向目标服务端做新鲜度
must-revalidate缓存未过期时,可以直接使用;过期后,需要向源服务端做文件有效性校验
proxy-revalidate等价于must-revalidate ,但仅共享缓存有效

Request

valuedescription
no-cache要求缓存做新鲜度校验
no-store即使源服务端的响应,可以被缓存,也不应该缓存
max-age客户端告诉服务端,客户端允许的最大缓存时长(秒)

7.2 验证响应

基于文件最后更新时间

Last-Modified / If-Modified-Since

基于正文内容 Hash

ETag / If-None-Match

强制重新验证

方式一:

Cache-Control: no-cache

方式二:

Cache-Control: max-age=0, must-revalidate

八、范围请求

STEP 1:检测是否支持范围请求

bash
curl -I http://example.com
+
+# 若支持范围请求,则Headers中存在Accept-Ranges、Content-Length
+HTTP/1.1 200 OK
+...
+Accept-Ranges: bytes
+Content-Length: 146515

Accept-Ranges字段存在,且值非none,则支持范围请求。

STEP 2:发送范围请求

bash
curl http://exmaple.com/test.jpg -i -H "Range: bytes=0-1023"
+
+# 响应头
+HTTP/1.1 206 Partial Content
+Content-Range: bytes 0-1023/146515
+Content-Length: 1024
+...
+(binary content)

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202211/Observer.html b/docs/date/202211/Observer.html new file mode 100644 index 0000000..05f1529 --- /dev/null +++ b/docs/date/202211/Observer.html @@ -0,0 +1,93 @@ + + + + + + DOM Observer | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

DOM Observer

一些比较方便的 DOM 监测的 API。

一个 Observer 实例具备的实例方法:

  • observe。向监听的目标集合添加一个元素。
  • unobserve。停止对一个元素的观察。
  • disconnect。终止对所有目标元素的观察。
  • ...

一、IntersectionObserver

提供了一种异步检测目标元素与祖先元素或视口相交情况变化的方法。

示例,检测目标元素与浏览器视窗是否完全相交:

js
// 定义一个Observer
+let options = {
+  root: null, // document.querySelector("#parent")
+  rootMargin: "0px",
+  threshold: 1.0, // [0, 0.25, 0.5, 0.75, 1]
+};
+let observer = new IntersectionObserver(callback, options);
+
+// 使用用Observer监测目标元素
+let target = document.querySelector("#target");
+observer.observe(target);

ResizeObserver Constructor

new ResizeObserver(callback),构造器接收两个参数:

callback。回掉函数,当检测到相交时触发

options。配置相交规则

  • root。指定与目标元素进行比对的父元素
    • 当值为 null,则认为是浏览器视窗。
    • 值为 HTMLElement
  • rootMargin。外边距。
  • threshold。指定callback触发的时机
    • 值为数组,如 0.5,即可见程度为 50% 时触发一次回调。
    • 值为数组时,如[0, 0.25, 0.5, 0.75, 1],即可见程度每多 25% 就触发一次回调。

使用场景

  • 图片懒加载——当图片滚动到可见时才进行加载
  • 内容无限滚动——也就是用户滚动到接近内容底部时直接加载更多,而无需用户操作翻页,给用户一种网页可以无限滚动的错觉
  • 检测广告的曝光情况——为了计算广告收益,需要知道广告元素的曝光情况
  • 在用户看见某个区域时执行任务或播放动画

二、ResizeObserver

Resize Observer API 提供了一种高性能的机制,通过该机制,代码可以监视元素的大小更改,并且每次大小更改时都会向观察者传递通知。

示例,监控两个元素的大小变化:

html
<div id="box">
+  <div id="inner"></div>
+</div>
js
const box = document.querySelector("#box");
+const inner = document.querySelector("#inner");
+
+const observer = new ResizeObserver((entries, observer) => {
+  console.log(entries);
+  console.log(observer);
+});
+observer.observe(box);
+observer.observe(inner);

ResizeObserver Constructor

new ResizeObserver(callback),构造器接收的 callback 接收两个参数:

  • entries。一个ResizeObserverEntry对象数组,可以用于获取每个元素改变后的新尺寸。
  • observer。观察者对象自身

使用场景

  • 媒体适配优化
  • 自适应布局
  • 窗口变化监测
  • REM 重置

三、PerformanceObserver

用于监测性能度量事件,在浏览器的性能时间轴记录新的 performance entry 的时候将会被通知。

示例:

js
function perf_observer(list, observer) {
+  // Process the "measure" event
+  // 处理 "measure" 事件
+}
+var observer = new PerformanceObserver(perf_observer);
+observer.observe({ entryTypes: ["measure"] });

PerformanceObserver Constructor

new PerformanceObserver(callback),构造器接收的 callback 接收两个参数:

支持的性能观察列表

使用代码PerformanceObserver.supportedEntryTypes检测浏览器支持的类型。

js
// chrome中执行Code,查看输出结果
+
+PerformanceObserver.supportedEntryTypes;
+// ['back-forward-cache-restoration', 'element', 'event', 'first-input', 'largest-contentful-paint', 'layout-shift', 'longtask', 'mark', 'measure', 'navigation', 'paint', 'resource', 'visibility-state']

使用场景

LCP(Largest Contentful Paint),最大内容绘制

js
const observer = new PerformanceObserver((list) => {
+  let perfEntries = list.getEntries();
+  console.log(perfEntries);
+});
+observer.observe({
+  entryTypes: ["largest-contentful-paint", "longtask"],
+});

四、MutationObserver

MutationObserver 接口提供了监视对 DOM 树所做更改的能力。它被设计为旧的 Mutation Events 功能的替代品,该功能是 DOM3 Events 规范的一部分。

示例,检测目标元素的属性、子节点、所有后代节点的变化:

js
const observer = new MutationObserver(function (mutationsList, observer) {
+  for (let mutation of mutationsList) {
+    console.log(mutation.type, "changed");
+  }
+});
+
+const targetNode = document.getElementById("box");
+observer.observe(targetNode, {
+  attributes: true,
+  childList: true,
+  subtree: true,
+});

MutationObserver Constructor

new MutationObserver(callback),构造器接收的 callback 接收两个参数:

  • mutationsList。所有被触发改动的 MutationRecord 对象数组
  • observer。观察者对象自身

支持观测类型:

  • subtree。当为 true 时,将会监听以 target 为根节点的整个子树。包括子树中所有节点的属性,而不仅仅是针对 target。
  • childList。当为 true 时,监听 target 节点中发生的节点的新增与删除(同时,如果 subtree 为 true,会针对整个子树生效)。
  • attributes。当为 true 时观察所有监听的节点属性值的变化。
  • attributeFilter。一个用于声明哪些属性名会被监听的数组。如果不声明该属性,所有属性的变化都将触发通知。
  • attributeOldValue。当为 true 时,记录上一次被监听的节点的属性变化;
  • characterData。当为 true 时,监听声明的 target 节点上所有字符的变化。
  • characterDataOldValue。当为 true 时,记录前一个被监听的节点中发生的文本变化。

五、ReportingObserver

处于实验阶段的 API。用于收集、访问报告。

链接

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202211/Web\350\234\234\347\275\220.html" "b/docs/date/202211/Web\350\234\234\347\275\220.html" new file mode 100644 index 0000000..9de7604 --- /dev/null +++ "b/docs/date/202211/Web\350\234\234\347\275\220.html" @@ -0,0 +1,48 @@ + + + + + + Web 蜜罐 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

Web 蜜罐

一、蜜罐概述

1.1 蜜罐的定义

蜜罐是一个安全资源,它的价值在于被探测、攻击和损害。合格的蜜罐拥有这些功能:发现攻击、产生警告、强大的记录能力、欺骗、协助调查。

1.2 蜜罐的安全问题

对蜜罐的不当使用,可能会涉及一些法律问题。

  1. 设陷技术

设陷技术关系到设置这台蜜罐的管理员的技术,一台设置不周全或者隐蔽性不够的蜜罐会被入侵者轻易识破或者破坏,由此导致的后果将十分严重。

  1. 隐私问题

蜜罐属于记录设备,所以它有可能会牵涉到隐私权问题。

  1. 责任问题

若蜜罐被入侵者成功破坏了,且被当作肉鸡攻击互联网的设备,会存在法律责任问题。

也就是说,一般会给每个蜜罐打上这样的标语:“使用该系统的任何人同意自己的行为受到监控,并透露给其他人,包括执法人员。”

1.3 蜜罐的分类

一般可以按照交互类型蜜罐作用点对蜜罐的种类进行划分。

1.3.1 按照交互类型进行划分

低交互蜜罐,特点:

  • 低交互式蜜罐使用的资源较少,收集有关威胁的级别和类型以及威胁来源的基本信息。
  • 它们的设置简单快捷,通常只需模拟一些基本的 TCP 和 IP 协议以及网络服务。
  • 但是蜜罐中没有任何内容可以让攻击者长时间交互,您不会获得有关他们的习惯或复杂威胁的深入信息。

高交互蜜罐,特点:

  • 旨在使黑客在蜜罐内花费尽可能多的时间,从而提供有关他们的意图和目标以及他们正在利用的漏洞和所用作案手法的大量信息。
  • 可以将其视为添加了“胶水”的蜜罐 - 可以让攻击者花费更长时间交互的数据库、系统和进程。
  • 这使得研究人员能够跟踪攻击者在系统中的哪些位置查找敏感信息,他们使用哪些工具来提权,或者利用哪些漏洞来破坏系统。

纯蜜罐,特点:

纯蜜罐和真实业务系统功能上一致,但是会在其外部加入监测记录功能。

1.3.2 按照作用点划分

  • 应用层蜜罐
  • 网络蜜罐
  • 主机蜜罐
  • 设备蜜罐

1.4 优劣势

1.4.1 优势

误报少

正常情况下,一个真正的用户是不会主动访问蜜罐的。话句话说,所有被蜜罐抓取到 IP 地址,都是可疑 IP。这一点,与传统的入侵检测系统 (IDS) 形成鲜明对比。

资源消耗少

由于蜜罐处理的流量非常有限,它们也非常节省资源。

观察攻击模式

蜜罐可以提供有关威胁如何进化的可靠情报。

捕获内部威胁

威胁不一定仅来自互联网,也能是内部网络,可以捕获内部威胁。

1.4.2 劣势

指纹固定

一旦蜜罐被“采指纹”,攻击者便可以进行欺骗性攻击以转移注意力,而以真正的生产系统为目标进行攻击。

跳板

一个被攻陷的蜜罐可以用作进一步入侵的踏板。

二、Web 蜜罐

2.1 概念

Web 蜜罐按照作用点归类属于应用层蜜罐

在 Web 安全攻防对抗中,攻击模式一般分为两种:非定向 Web 攻击定向 Web 攻击

非定向 Web 攻击

  • 通常由自动化脚本发起攻击,人为参与低。
  • 应对这种攻击,低交互蜜罐足以应对。
  • 蜜罐部署上,蜜罐部署在公网。

定向 Web 攻击

  • 攻击多由攻击者亲身参与,攻击目标明确。
  • 应对这种攻击,使用高交互蜜罐,足够真实。
  • 蜜罐部署上,部署在组织的防火墙后面。

2.2 开源蜜罐

在 Web 应用开发领域有一种著名的架构模式叫做 MVC,它将 Web 应用系统分为模型层(Model)、控制器层(Controller)和视图层(View)。

2.2.1 视图层蜜罐

视图层蜜罐技术指的是诱骗或监测发生在视图层及以上的技术形态,主要表现为各类具有模拟功能的低交互 Web 蜜罐记录 HTTP 流量类型的纯蜜罐Web 中间件类型蜜罐反向代理类型蜜罐等。

  • Glastopf。低交互 Web 蜜罐,它通过各种 Web 漏洞类型模拟器模拟各类 Web 漏洞。
  • HFish 蜜罐平台。基于 Nginx 中间件开发的插件,可以实现将任意站点转化为蜜罐。

2.2.2 控制器层蜜罐技术

控制器层蜜罐技术的诱骗或监测发生在视图层之下、数据层之上,主要包括各类高交互 Web 蜜罐网站影子系统等。

  • HIHAT 可以将现有的 PHP 应用转化为一个高交互蜜罐。

2.2.3 数据层蜜罐技术

数据层蜜罐技术偏向于数据层面的诱骗和监测,主要包括数据库蜜罐数据蜜饵等。

  • NoSQLpot 是一个 NoSQL 蜜罐框架。

三、思考

开源的蜜罐,一般都意味着它的指纹是固定的、或可以被枚举的,很容易被攻击者识别。

若一个组织自己做一套仿真蜜罐,需要投入人员、开发资源、部署资源等,代价较大。

做好一个优秀的低交互 Web 蜜罐的难点:

  • 指纹问题。为应对非定向 Web 攻击,可否通过一种随机算法,动态生成一个低交互蜜罐。
  • 仿真问题。为应对定向 Web 攻击,蜜罐需要以假乱真,肉眼看起来像是一个真正的业务系统。
  • 部署问题。一个组织需要多套蜜罐系统,尽可能的部署简单、资源能耗少。

四、文献

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202211/\344\270\255\346\226\255HTTP\350\257\267\346\261\202.html" "b/docs/date/202211/\344\270\255\346\226\255HTTP\350\257\267\346\261\202.html" new file mode 100644 index 0000000..3c2e874 --- /dev/null +++ "b/docs/date/202211/\344\270\255\346\226\255HTTP\350\257\267\346\261\202.html" @@ -0,0 +1,113 @@ + + + + + + 中断请求 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

中断请求

XHR

js
const xhr = new XMLHttpRequest();
+addListeners(xhr);
+xhr.open("GET", url);
+xhr.send();
+
+// 中止请求
+xhr.abort();

fetch

中止 fetch 的请求

AbortController

使用AbortController创建一个信号,自主控制请求的中止。

js
const controller = new AbortController();
+const signal = controller.signal;
+
+fetch(url, { signal })
+  .then((response) => {
+    console.log("Download complete", response);
+  })
+  .catch((err) => {
+    console.error(`Download error: ${err.message}`);
+  });
+
+// 中止请求
+controller.abort();

AbortSignal

使用AbortSignal创建一个超时信号

js
try {
+  const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
+} catch (err) {
+  if (err.name === "TimeoutError") {
+    // ...
+  } else if (err.name === "AbortError") {
+    // ...
+  } else if (err.name === "TypeError") {
+    // AbortSignal.timeout() method is not supported
+  } else {
+    // A network error, or some other problem.
+    console.error(`Error: type: ${err.name}, message: ${err.message}`);
+  }
+}

Axios

AbortController

从 v0.22.0 开始,Axios 支持以 fetch API 方式—— AbortController 中止请求:

js
const controller = new AbortController();
+const signal = controller.signal;
+
+axios.get("/foo/bar", { signal }).then(function (response) {
+  //...
+});
+
+// 中止请求
+controller.abort();

CancelToken deprecated

您还可以使用 cancel token 取消一个请求。

  • Axios 的 cancel token API 是基于被撤销 cancelable promises proposal。
  • 此 API 从 v0.22.0 开始已被弃用,不应在新项目中使用。

可以使用 CancelToken.source 工厂方法创建一个 cancel token ,如下所示:

js
const CancelToken = axios.CancelToken;
+const source = CancelToken.source();
+
+axios
+  .get("/user/12345", {
+    cancelToken: source.token,
+  })
+  .catch(function (thrown) {
+    if (axios.isCancel(thrown)) {
+      console.log("Request canceled", thrown.message);
+    } else {
+      // 处理错误
+    }
+  });
+
+axios.post(
+  "/user/12345",
+  {
+    name: "new name",
+  },
+  {
+    cancelToken: source.token,
+  }
+);
+
+// 取消请求(message 参数是可选的)
+source.cancel("Operation canceled by the user.");

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202212/typescript concept.html b/docs/date/202212/typescript concept.html new file mode 100644 index 0000000..749db65 --- /dev/null +++ b/docs/date/202212/typescript concept.html @@ -0,0 +1,103 @@ + + + + + + TypeScript Concept | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

TypeScript Concept

一、类型系统

TypeScriptJavaScript的超集,支持JavaScript所有特性。

二、定义类型

ts
interface User {
+  name: string;
+  id: number;
+}

三、联合组合(union type)

ts
type MyBool = true | false;

范型(generic type)

ts
type StringArray = Array<string>;
+
+interface Backpack<Type> {
+  add: (obj: Type) => void;
+  get: () => Type;
+}

四、结构类型系统

TS 中检查两个类型是否相同,仅比对结构(shape)是否相同,示例:

ts
interface PointA {
+  x: number;
+  y: number;
+}
+
+interface PointB {
+  x: number;
+  y: number;
+}
+
+// PointA、PointB是完全相同的两个类型

五、typeinterface的差异

typeinterface非常相似,大多数情况下,可以任意使用。唯一的区别是,前者不能再添加新的属性,后者可以随意扩展。

5.1 继承

interface 的实现

ts
interface Animal {
+  name: string;
+}
+
+interface Bear extends Animal {
+  honey: boolean;
+}
+
+const bear = getBear();
+bear.name;
+bear.honey;

type 的实现

ts
type Animal = {
+  name: string;
+};
+
+type Bear = Animal & {
+  honey: boolean;
+};
+
+const bear = getBear();
+bear.name;
+bear.honey;

5.2 扩展新属性

interface 的实现

ts
interface Window {
+  title: string;
+}
+
+interface Window {
+  ts: TypeScriptAPI;
+}
+
+const src = 'const a = "Hello World"';
+window.ts.transpileModule(src, {});

type 不支持扩展

ts
type Window = {
+  title: string;
+};
+
+type Window = {
+  ts: TypeScriptAPI;
+};
+
+// Error: Duplicate identifier 'Window'.

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202212/\350\200\201\345\217\213\350\257\264.html" "b/docs/date/202212/\350\200\201\345\217\213\350\257\264.html" new file mode 100644 index 0000000..0fa398d --- /dev/null +++ "b/docs/date/202212/\350\200\201\345\217\213\350\257\264.html" @@ -0,0 +1,48 @@ + + + + + + 老友说《自我》 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

老友说《自我》

男人永不褪色的魅力,不是钱、不是家庭条件,是人品、是独立。

成熟的人要建立一套自己的评判实物的体系,不独立的人格是没有魅力的。

自己的世界一直是自己在主导,不要欺骗自己是受外物影响,承认自我、完善自我、实现精神跃迁。

自我决定上限,人与人的分水岭,不是物质,是精神。独立、自主地构思、泼墨自己的画卷。

试卷上的题目,解题、纠错、向前。走走、停停、看看、想想。

梧高凤必至,花香蝶自来。为自己画饼,自己是最好的哒。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202301/js\345\206\205\345\255\230/readme.html" "b/docs/date/202301/js\345\206\205\345\255\230/readme.html" new file mode 100644 index 0000000..ba92c5a --- /dev/null +++ "b/docs/date/202301/js\345\206\205\345\255\230/readme.html" @@ -0,0 +1,52 @@ + + + + + + JavaScript 的内存管理 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

JavaScript 的内存管理

JavaScript 是一个弱类型的、动态语言,在执行一段 JS 代码时,需要经历编译、执行、内存回收阶段。

一、编译阶段

JS 代码执行时,会首先创建全局执行上下文、以及函数执行上下文,上下文的执行顺序按照栈的方式进行调用,所以也叫做函数调用栈

创建上下文时,会执行编译阶段,这一阶段会确定作用域,作用域确定了上下文有权限、且按一定的顺序访问的变量、函数。

进入一个上下文时,会经历变量环境的创建、初始化、赋值,这就导致了常见的变量提升问题。若是ES6环境时,还会额外多出词法环境,用于存储ES6的声明。

二、栈、堆

执行上下文存储于栈,引用对象存储于堆。

当遇见引用对象时,栈中存储的是对象在堆中的地址。所以会有这么一个现象:当将对象复制给一个变量时,修改另一个对象时,原对象的值也会发生变化。示例:

js
var a = { name: "xxx" };
+var b = a;
+b.name = "yyy";
+
+console.info(a); // {name: 'yyy'}

三、内存

JS 的内存分配是动态,不需要事先申请,同时内存也是自动释放、不需要手动释放。

占用的内存会随着上下文的执行结束而释放,占用的内存使用另一套机制。

V8 将堆空间分为两个区域:

  • 新生代。存放生存时间短的对象;空间小,一般1~8M
  • 老生代。存放生存时间久的对象;空间大。

通用的垃圾回收流程:

  1. 标记活动对象和非活动对象
  2. 清理非活动对象占据的内存
  3. 内存整理

3.1 新生代垃圾回收策略

采用 Scavenge 算法,基本原理:

  • 将空间对半分为对象区域和空闲区域
  • 当对象区域快满时,执行一次清理过程
  • 为对象区域的垃圾做标记,将存活的对象有序地、复制到到空闲区域,然后清空对象区域
  • 对象区域、空闲区域角色反转,等待下一次清理流程

备注:当经过两次垃圾回收依然还存活的对象,会被移动到老生代区域,即对象晋升策略

3.2 老生代垃圾回收策略

A. 策略

依然采用标记清除策略,标记存活对象,清除垃圾。

与新生代回收策略不同的是,不会分两个区域(对象区域、空闲区域)。所以,当清理垃圾后,存储空间不是连续的,需要执行整理过程。

B. 影响

垃圾回收器的执行是占用主线程的,即会阻塞JavaScript的执行,当垃圾回收执行结束,再恢复脚本执行。这种行为叫做全停顿(stop-the-world)

C. 优化

为了降低老生代的垃圾回收而造成的卡顿,V8 将标记过程分为一个个的子标记过程,同时让垃圾回收标记和 JavaScript 应用逻辑交替进行,直到标记阶段完成,我们把这个算法称为增量标记(Incremental Marking)算法

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202301/\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.html" "b/docs/date/202301/\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.html" new file mode 100644 index 0000000..e71b882 --- /dev/null +++ "b/docs/date/202301/\346\265\217\350\247\210\345\231\250\345\216\237\347\220\206.html" @@ -0,0 +1,48 @@ + + + + + + 浏览器原理 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

浏览器原理

一、安全防范

1. XSS

跨站脚本攻击

1.1 攻击目的

多种可能的目的:

  • 收集用户在站点上的 Cookie 信息、storage 信息等,对这些信息二次利用,对用户造成损害。
  • 监听用户行为。比如通过 JavaScript 为添加监听键盘事件,窃取账户、密码等。
  • 修改 DOM 伪造假的登录窗口,欺骗用户输入用户名、密码。
  • 生成浮窗广告

1.2 实现原理

存储型 XSS 攻击

通过系统漏洞,将恶意脚本存储到数据库。再由数据库返回到页面,执行了恶意脚本。

反射型 XSS 攻击

未存储到数据库看,直接由服务端返回恶意脚本,并执行了恶意脚本。

比如:请求的参数中携带了恶意脚本,页面在呈现时,执行了脚本。

基于 DOM 的 XSS 攻击

基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的。

黑客通过各种手段将恶意脚本注入用户的页面中,比如通过网络劫持在页面传输过程中修改 HTML 页面的内容,这种劫持类型很多,有通过 WiFi 路由器劫持的,有通过本地恶意软件来劫持的

它们的共同点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。

1.3 根因

分为两类:

  • 经历了服务端。参数不严谨,未校验参数
  • 网络劫持

1.4 防范方法

  1. 服务器对输入脚本进行过滤或转译。
  2. 充分利用 CSP。禁止非法来源(站点)的脚本加载。
  3. Cookie 配置 HttpOnly。即便恶意脚本被执行了,也无法获取 Cookie 信息。

2. CSRF

跨站请求伪造

2.1 攻击的目的

利用用户身份,假冒用户执行危险操作。比如:代替用户发起转账请求。

2.2 原理:

  1. 用户在A站点登录
  2. 用户点击第三方站点
  3. 第三方站点自动向A站点发送伪造的请求(Get、Post)
  4. 对用户早晨损失

2.3 根因

黑客利用用户的登录状态,通过第三方站点目标站点伪造请求。由于服务端对请求的校验不严谨、或在客户端对 Cookie 的管理不严谨,对用户造成损失。

2.4 防范方法

  1. 验证请求的来源

通常 CSRF 攻击来源于第三方站点,验证请求头中 originreferer 是否与服务器地址一致。

  1. Cookie 设置 SameSite

三方站点自动向A站点发送伪造的请求(Get、Post)时,会携带 Cookie 中的信息。所以,为 Cookie 添加 SameSite 限制,令第三方拿不到 Cookie,导致服务端校验不通过。

  1. CSRF Token

正确的请求都携带CSRF Token,服务端校验CSRF Token,正确的 Token 才可以继续后续处理。因为CSRF Token存储在前端内存,第三方站点是无法拿到的。

3. 现代安全浏览器安全架构

3.1 单进程架构

Chrome 最初的架构是单进程架构,若是浏览器爆发安全漏洞,那么黑客很容易利用浏览器对操作系统发起攻击。单进程架构的特点:

  • 不稳定。若浏览器中的某一功能出现异常,很可能会影响到整个浏览器。比如:页面卡死、浏览器崩溃等。
  • 通过漏洞攻击操作系统。比如:缓冲区溢出漏洞,获取操作系统的 shell 发起攻击。

3.2 多进程架构

一段恶意程序,若不被执行,则不会产生危害。所以,将资源的下载过程与执行过程分开处理,更为妥善。

因此,现代安全架构采用多进程架构,化为为两个核心:

  • 浏览器内核
    • 浏览器主进程
    • 网路进程
    • GPU 进程
  • 渲染内核
    • 渲染进程

代码的执行主要发生在渲染进程,为渲染进程使用安全沙箱技术,将渲染进程操作系统隔离,限制其对操作系统资源的访问和修改。

当渲染进程需要操作系统的读写功能时(如:读写本地文件、网络请求、调用 GPU 接口等),需要通过浏览器内核来实现,然后将访问的结果通过 IPC 转发给渲染进程。

安全沙箱对渲染进程的影响:

  • 持久存储。对 Cookie、上传文件等,由浏览器内核通过 IPC 转发为渲染进程。
  • 网络请求。由浏览器内核通过 IPC 转发为渲染进程。
  • 用户交互。
    • 渲染进程生成位图,转发为浏览器内核,然后浏览器内核将位图复制到屏幕。
    • 用户输入事件,由浏览器内核通过 IPC 转发为渲染进程。

4. 数据安全

HTTP 本来一切安好,只是走歪路的人多了,才多了安全的 HTTPS。

4.1 HTTP

HTTP 最初设计的初衷仅是为了传输超文本文件,没有加密传输的需求,所以是明文传输。这就存在了中间人攻击的隐患,中间人可以窃取、篡改、伪造通信数据。

4.2 HTTPS

哪里有洞就堵哪里,给数据添加一层保护层。

对称加密

流程:

  1. 协商密钥
    • 客户端、服务端协商对称密码
  2. 通信
    • 使用对称密码加密通信

缺陷:

  1. 密码协商过程为明文,依然可以被中间人获取,然后发生攻击行为。

非对称加密

流程:

  1. 协商密钥
    • 服务端向客户端返回公钥
  2. 通信
    • 服务端使用私钥加密即将发送到客户端的数据
    • 客户端使用公钥解密服务端返回的数据
    • 客户端使用公钥加密发送到服务端的数据
    • 服务端使用私钥解密客户端发送来的数据

缺陷:

  1. 公钥在传输中可以被中间人获取,中间人通过公钥伪造数据
  2. 非对称加密消耗资源大

对称加密+非对称加密

流程:

  1. 协商密钥
    • 客户端向服务端发送随机数 A
    • 服务端返回随机数 B + 公钥
    • 客户端使用公钥加密随机 C,然后发送到服务端
    • 客户端、服务端,使用同一种算法,利用随机数 A、B、C 计算出通信的对称密钥 D
  2. 通信
    • 使用密钥 D,作为对称加密的密钥进行通信

优点:

  1. 中间人获取不到随机数 C,即无法获取密钥 D,则通信内容不会被窃取、伪造、监听
  2. 握手时使用非对称加密;通信时使用对称加密。

缺陷:

  1. 中间人可以假冒服务端,向客户端发送自己的公钥,导致通信内容不安全。
  2. 客户端无法确认通信的对象是不是对的。

对称加密+数字证书

数字证书由第三方权威机构 CA 颁发给服务端,数字证书中包含:

  • 服务端的基本信息(明文存储,包括组织、有效期、加密算法等)
  • 服务端公钥、
  • CA 的签名(一段 HASH 值)。

客户端拿到数字证书后,可以向 CA 验证服务端的身份。

流程:

  1. 协商密钥
    • 客户端向服务端发送随机数 A
    • 服务端返回随机数 B + 公钥
    • 客户端验证数字证书
    • 客户端使用公钥加密随机 C,然后发送到服务端
    • 客户端、服务端,使用同一种算法,利用随机数 A、B、C 计算出通信的对称密钥 D
  2. 通信
    • 使用密钥 D,作为对称加密的密钥进行通信

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202302/\351\235\242\350\257\225\346\261\207\346\200\273.html" "b/docs/date/202302/\351\235\242\350\257\225\346\261\207\346\200\273.html" new file mode 100644 index 0000000..ad640f5 --- /dev/null +++ "b/docs/date/202302/\351\235\242\350\257\225\346\261\207\346\200\273.html" @@ -0,0 +1,48 @@ + + + + + + 面试汇总 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

面试汇总

二月中旬开始复习、面试,可能自己期望太高,收到的面试邀约不多,有顺丰科技、腾讯文档、TD SYNNEX、UDesk。

几轮下来,个人认为面试考察的几个方面:

  • 技术
    • 深度。
      • 基本功,HTML、JS、CSS 的细节。
      • 网络、缓存、性能等
      • 框架原理
    • 广度
      • PC 端、移动端、小程序
      • 常见的 UI 框架
      • 工程构建工具
    • 敏感度
      • 框架、规范等的新的提案、变更
      • 技术新动态
  • 工程能力
    • 开发
    • 测试
    • 部署
  • 稳定性
    • 短期目标
    • 长期目标
  • 公司文化
    • 比如:996 等

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202303/qiankun.html b/docs/date/202303/qiankun.html new file mode 100644 index 0000000..d9a4a58 --- /dev/null +++ b/docs/date/202303/qiankun.html @@ -0,0 +1,48 @@ + + + + + + 【微前端】qiankun | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

【微前端】qiankun

专栏:

目录:

  • [一、qiankun 是什么](#一、qiankun 是什么)
  • [二、qiankun 的设计思路](#二、qiankun 的设计思路)
  • [三、qiankun 的子应用切换原理](#三、qiankun 的子应用切换原理)
  • 四、沙箱机制
  • 五、优劣点

一、qiankun 是什么

qiankun是一种前端微服务架构,旨在解决大型复杂应用的拆分和管理问题。

二、qiankun 的设计思路

qiankun的设计思路是基于“微服务”架构和“大前端”思想的,通过拆分前端应用、动态加载、状态共享、兼容性和稳定性等特性,帮助开发者构建复杂的前端应用,并实现快速、稳定、可扩展的部署和管理。

它的设计思路主要包括以下几个方面:

2.1 从大前端角度出发

qiankun大前端的角度出发,将前端应用分为多个子应用,每个子应用相对独立,可以单独部署、独立运行。

这种方式类似于微服务架构,将前端应用拆分成多个小块,降低了整个应用的耦合度和复杂度。

2.2 基于路由的动态加载

qiankun的路由系统可以实现根据路由动态加载子应用。

在用户访问不同的页面时,qiankun会根据当前页面的路由信息动态加载相应的子应用,从而实现多个子应用的集成。

2.3 统一状态管理

qiankun通过提供一个全局状态管理器来实现多个子应用之间的状态共享。

子应用可以将自己的状态注册到全局状态管理器中,并在需要的时候获取全局状态,从而实现子应用之间的数据交换和共享。

2.4 兼容性和稳定性

qiankun采用了“双向通信”技术来实现子应用之间的通信,同时也提供了多种兼容性解决方案,可以在不同的浏览器和环境中运行,从而保证了整个应用的稳定性和兼容性。

三、qiankun 的子应用切换原理

qiankun的应用切换原理是通过动态加载应用卸载挂载、以及全局状态共享等机制来实现的。这些机制保证了多个子应用之间的隔离和独立性,同时又实现了数据和状态的共享,从而为用户提供了无缝的应用切换体验。

qiankun的应用切换原理可以概括为以下几个步骤:

  1. qiankun主应用加载

当用户访问qiankun主应用时,qiankun主应用会被加载和初始化。

在这个过程中,qiankun主应用会根据预定义的子应用列表(包括子应用的名称、入口文件路径、路由等信息)来预加载子应用的代码和资源文件。

  1. 子应用懒加载

当用户访问某个子应用时,qiankun主应用会根据路由信息动态加载相应的子应用。

这个过程中,qiankun会先检查子应用是否已经加载过,如果没有加载过,则会懒加载相应的子应用代码和资源文件。

  1. 应用切换

当用户从一个子应用切换到另一个子应用时,qiankun会首先将当前子应用卸载,并清除其对应的 DOM 节点和事件监听器。然后,qiankun会加载新的子应用,并将其挂载到 DOM 节点上,同时调用子应用的生命周期函数来初始化新的应用。

  1. 全局状态共享

qiankun提供了一个全局状态管理器来实现子应用之间的状态共享。

当用户从一个子应用切换到另一个子应用时,qiankun会自动将当前子应用的状态保存到全局状态管理器中,然后再将新的子应用的状态从全局状态管理器中获取并更新到新的子应用中。

四、沙箱机制

为了避免不同子应用之间的代码冲突和安全问题,采用了沙箱机制来隔离不同子应用的代码执行环境。具体来说,qiankun沙箱机制主要有以下几个方面:

  • 应用级别的沙箱

qiankun将每个子应用都视为一个独立的应用,每个子应用都有自己的独立沙箱环境,因此每个子应用都可以独立运行、独立调试、独立部署,互不影响。

  • 模块级别的沙箱

在子应用中,qiankun会使用自定义的模块加载器来加载和执行子应用的代码,这些代码都运行在独立的模块沙箱环境中,避免了子应用之间的代码污染和冲突。

  • 样式隔离

qiankun还提供了样式隔离机制,可以在不同子应用之间隔离样式,避免了样式冲突的问题。

  • 生命周期隔离

qiankun中,每个子应用都有自己的生命周期管理机制,这些生命周期钩子函数运行在独立的沙箱环境中,避免了子应用之间的生命周期冲突和影响。

qiankun的沙箱机制可以有效地隔离不同子应用之间的代码执行环境,避免了代码冲突和安全问题。开发者可以放心地在qiankun架构下开发和部署多个子应用,并且不必担心子应用之间的代码污染和冲突问题。

五、优劣点

  • 优势
    • 模块化
    • 动态加载
    • 全局状态管理
    • 兼容性和稳定性
  • 劣势
    • 复杂性:工程复杂,主应用、子应用。
    • 调试困难:多个子应用之间存在状态共享时,调试困难。
    • 性能问题:在网络条件不佳的情况下,动态加载可能会导致用户等待时间过长。
    • 安全性:跨站点脚本攻击(XSS)和跨站点请求伪造(CSRF)等。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202303/qiankun_vite_vue3.html b/docs/date/202303/qiankun_vite_vue3.html new file mode 100644 index 0000000..62a5a0e --- /dev/null +++ b/docs/date/202303/qiankun_vite_vue3.html @@ -0,0 +1,232 @@ + + + + + + 【微前端】qiankun + vite + vue | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

【微前端】qiankun + vite + vue

专栏:

一、整体结构

在 qiankun 体系下,一个微前端工程包含一个主应用和多个子应用。本质上,每个工程(主应用)都可以单独开发、运行。

1.1 开发时工程结构

共三个工程,一个主应用、两个子应用,目录结构:

bash
.
+├── app-01
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+├── app-02
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+├── main-app
+│   ├── README.md
+│   ├── index.html
+│   ├── package.json
+│   ├── pnpm-lock.yaml
+│   ├── public
+│   ├── src
+│   ├── tsconfig.json
+│   ├── tsconfig.node.json
+│   └── vite.config.ts
+└── readme.md

1.2 部署工程结构

部署方式可以选择多种,这里使用的方式是将三个工程部署在同一个 server、同一个 port 下,目录结构为:

bash
.
+├── index.html
+├── static
+│   ├── index-011eeef2.css
+│   └── index-0ab867b1.js
+├── sub
+│   ├── app-01
+│   │   ├── index.html
+│   │   ├── static
+│   │   │   ├── index-0244ff29.js
+│   │   │   └── index-83c9dd61.css
+│   │   └── vite.svg
+│   └── app-02
+│       ├── index.html
+│       ├── static
+│       │   └── index-cb440182.js
+│       └── vite.svg
+└── vite.svg

二、开发

开发时,三个应用对应的监听端口:

应用端口
main-app80
app-018081
app-028082

工程启动之后,可以在浏览器访问:

2.1 主应用

主应用用于注册子应用,以及控制子应用之间的切换。

A. 注册子应用

在新建的 vue3 工程的 main.ts 中注册子应用:

ts
// 开发模式时,entry的值为子应用的开发演示环境的地址
+if ("development" === import.meta.env.MODE) {
+  registerMicroApps([
+    {
+      name: "app_01",
+      entry: "//localhost:8081/",
+      container: "#container",
+      activeRule: "/app_01",
+    },
+    {
+      name: "app_02",
+      entry: "//localhost:8082/",
+      container: "#container",
+      activeRule: "/app_02",
+    },
+  ]);
+} else {
+  // 生产环境时,entry的路径为app在部署时的真实路径
+  registerMicroApps([
+    {
+      name: "app_01",
+      entry: "./sub/app-01",
+      container: "#container",
+      activeRule: "/app_01",
+    },
+    {
+      name: "app_02",
+      entry: "./sub/app-02",
+      container: "#container",
+      activeRule: "/app_02",
+    },
+  ]);
+}
+
+setDefaultMountApp("/app_01");
+
+// 启动 qiankun
+start();

注册子应用时,分为两种模式,开发模式和部署模式,对应的 entry 的值是有区别的。

B. 子应用路由

html
<a @click="toApp('/app_01')">app 01</a>
js
function toApp(path: string) {
+  history.pushState({}, "", path);
+}

需要注意的是,这里不能使用 a 标签 的 href,会报错 404 错误,必须使用history.pushState控制路由。

因为href属性会导致浏览器刷新,获取不到资源。

2.2 子应用

A. 安装依赖

pnpm add vite-plugin-qiankun

vite.config.js

配置文件修改

js
export default defineConfig({
+  // 打包时,这里填充的为绝对路径,对应的是部署路径
+  base: "/sub/app-01",
+  plugins: [
+    vue(),
+    qiankun("app-01", {
+      useDevMode: true,
+    }),
+  ],
+});

C. 入口改造

启动方式,分为两种:

  • 单独启动
  • 在主应用中启动

qiankun 需要子应用导出三个接口:

  • bootstrap
  • mount
  • unmount
ts
import {
+  renderWithQiankun,
+  qiankunWindow,
+} from "vite-plugin-qiankun/dist/helper";
+
+import { App as VueApp, createApp } from "vue";
+import router from "./router";
+import App from "./App.vue";
+
+let app: VueApp<Element>;
+if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
+  createApp(App).use(router).mount("#app");
+} else {
+  renderWithQiankun({
+    mount(props) {
+      console.log("--app 01 mount");
+
+      app = createApp(App);
+      app.use(router);
+      app.mount(
+        (props.container
+          ? props.container.querySelector("#app")
+          : document.getElementById("app")) as Element
+      );
+    },
+    bootstrap() {
+      console.log("--app 01 bootstrap");
+    },
+    update() {
+      console.log("--app 01 update");
+    },
+    unmount() {
+      console.log("--app 01 unmount");
+      app?.unmount();
+    },
+  });
+}

三、部署

三个工程依次打包后,在main-app的打包输出中,新建 sub 文件夹,将子应用的打包输出移动到 sub 文件夹中。结构:

bash
.
+├── index.html
+├── static
+│   ├── index-011eeef2.css
+│   └── index-0ab867b1.js
+├── sub
+│   ├── app-01
+│   │   ├── index.html
+│   │   ├── static
+│   │   │   ├── index-0244ff29.js
+│   │   │   └── index-83c9dd61.css
+│   │   └── vite.svg
+│   └── app-02
+│       ├── index.html
+│       ├── static
+│       │   └── index-cb440182.js
+│       └── vite.svg
+└── vite.svg

在本地启动一个静态 web 服务即可访问页面,比如使用serve命令启动服务:

bash
serve . -p 5500

浏览器中访问:http://localhost:5500

四、坑点

001. 主应用注册 App 时,activeRule 有两种模式

hash 模式

js
const getActiveRule = (hash) => (location) => location.hash.startsWith(hash);
+registerMicroApps([
+  {
+    name: "app-hash",
+    entry: "http://localhost:8080",
+    container: "#container",
+    activeRule: getActiveRule("#/app-hash"),
+    // 这里也可以直接写 activeRule: '#/app-hash',但是如果主应用是 history 模式或者主应用部署在非根目录,这样写不会生效。
+  },
+]);

history 模式

js
registerMicroApps([
+  {
+    name: "app",
+    entry: "http://localhost:8080",
+    container: "#container",
+    activeRule: "/app",
+  },
+]);

002. 主应用使用history时,如何控制子应用的切换

history 模式时,主应用会监听location.pathname的变化,从而切换子应用的加载与卸载。

主应用中,使用 a 便签切换应用时:

html
<!-- 开发环境时,没有问题 -->
+<!-- 部署环境时,会报错:/app_01 404的错误 -->
+<a href="/app_01">app 01</a>

404 的原因,静态部署时:a 标签会触发浏览器的刷新,刷新后,浏览器向后台发起请求/app_01,后台的确没有这个物理路径

改进方案,使用 history.pushState 接口:

html
<a @click="toApp('/app_01')">app 01</a>
js
function toApp(path: string) {
+  history.pushState({}, "", path);
+}

使用history.pushState的方式,不会出发浏览器的刷新行为。当浏览器的pathname发生变化时,qiankun会感知到路由发生变化,并加载对应的页面。

到这一步时,若不主动执行F5刷新操作,一切正常。但使用F5后,还是会报错 404,此时需要后台的路由进行配合,以 Nginx 为例子:

nginx
server {
+  listen       8080;
+  server_name  localhost;
+
+  location / {
+    root   html;
+    index  index.html index.htm;
+    try_files $uri $uri/ /index.html;
+  }
+
+  location /child/vue-history {
+    root   html;
+    index  index.html index.htm;
+    try_files $uri $uri/ /child/vue-history/index.html;
+  }
+}

六、源码

源码地址:https://github.com/swlws/qiankun-vite-vue3

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202303/\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.html" "b/docs/date/202303/\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.html" new file mode 100644 index 0000000..a979704 --- /dev/null +++ "b/docs/date/202303/\345\207\240\347\247\215\345\271\266\345\217\221Promise\347\232\204\345\256\236\347\216\260.html" @@ -0,0 +1,108 @@ + + + + + + 几种并发 Promise 的实现 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

几种并发 Promise 的实现

方案一

js
/**
+ *
+ * @param {*} list 参数
+ * @param {*} fn Promise函数
+ * @param {*} limit 限制
+ * @returns
+ */
+function limit_task(list, fn, limit = 3) {
+  const len = list.length;
+
+  return new Promise((r) => {
+    const rt = [];
+    const wrap = () => {
+      if (rt.length === len) r(rt);
+
+      if (!list.length) return;
+
+      return fn(list.shift()).then((data) => {
+        rt.push(data);
+        return wrap();
+      });
+    };
+
+    let i = 0;
+    while (i < limit) {
+      wrap();
+      i++;
+    }
+  });
+}

方案二

ts
/**
+ * 并发Promise
+ *
+ * @param poolLimit 并发最大数
+ * @param array 参数
+ * @param iteratorFn 回调函数
+ * @returns
+ */
+async function threadPool(
+  poolLimit: number,
+  array: any[],
+  iteratorFn: (...args: any[]) => any
+) {
+  const ret = []; // 存储所有的异步任务
+  const executing: any[] = []; // 存储正在执行的异步任务
+  for (const item of array) {
+    // 调用iteratorFn函数创建异步任务
+    const p = Promise.resolve().then(() => iteratorFn(item, array));
+    ret.push(p); // 保存新的异步任务
+
+    // 当poolLimit值小于或等于总任务个数时,进行并发控制
+    if (poolLimit <= array.length) {
+      // 当任务完成后,从正在执行的任务数组中移除已完成的任务
+      const e: any = p.then(() => executing.splice(executing.indexOf(e), 1));
+      executing.push(e); // 保存正在执行的异步任务
+      if (executing.length >= poolLimit) {
+        await Promise.race(executing); // 等待较快的任务执行完成
+      }
+    }
+  }
+  return Promise.all(ret);
+}

方案三

p-limit

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202303/\345\276\256\345\211\215\347\253\257.html" "b/docs/date/202303/\345\276\256\345\211\215\347\253\257.html" new file mode 100644 index 0000000..9432fe2 --- /dev/null +++ "b/docs/date/202303/\345\276\256\345\211\215\347\253\257.html" @@ -0,0 +1,48 @@ + + + + + + 【微前端】什么是微前端 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

【微前端】什么是微前端

专栏:


目录:

一、微前端是什么

微前端(Micro Frontends)是一种前端架构模式,通过将单个应用程序分解为多个小型、独立的部分来实现应用程序的组合。每个小型部分都由独立的团队开发、测试和部署,然后将它们组合成为一个完整的应用程序。

微前端的目标是使前端开发更加容易、可维护和可扩展,并且能够实现团队之间的协作。

在微前端架构中,每个微前端都有自己的代码库和独立的部署过程。

微前端可以使用不同的技术栈、框架和语言,因为它们只需要定义一组共享的 API 和协议。这样可以让团队独立地开发和部署微前端,同时还能够保持整个应用程序的一致性。

二、微前端解决了什么问题

  1. 大型单体应用程序难以扩展和维护问题

在大型单体应用程序中,当应用程序的规模增加时,应用程序的可维护性和可扩展性变得更加困难。微前端将应用程序分解为多个小型、独立的部分,使得每个部分都可以独立扩展和维护。

  1. 多个团队开发同一应用程序的协同问题

在大型应用程序中,往往需要多个团队协同开发。使用微前端架构模式可以将应用程序分解为多个小型部分,从而使得每个团队可以独立开发和维护它们自己的部分。

  1. 技术栈不一致的问题

不同的团队可能使用不同的技术栈来开发应用程序的不同部分。微前端架构模式允许使用不同的技术栈来开发每个微前端,从而避免了技术栈不一致的问题。

  1. 应用程序的可测试性和可部署性

微前端将应用程序分解为多个小型部分,从而使得每个部分都可以独立进行测试和部署。这提高了应用程序的可测试性和可部署性。

  1. 增量升级

使用微前端架构模式可以实现增量升级,从而使得应用程序的升级更加容易和快速。

三、微前端的优缺点

优点:

  • 可扩展性:可以根据需要添加或删除微前端。
  • 独立开发:每个微前端可以由不同的团队开发和维护。
  • 独立部署:每个微前端都可以独立部署,从而使整个应用程序更加稳定。
  • 技术栈灵活:不同的微前端可以使用不同的技术栈。
  • 高效开发:可以同时开发多个微前端,从而提高开发效率。
  • 可维护性:微前端可以更容易地进行维护和测试,因为它们具有清晰的界限和独立的代码库。

劣势:

  • 增加了系统复杂度

微前端需要对系统进行拆分,将单体应用拆分成多个独立的微前端应用。这种拆分可能导致系统整体变得更加复杂,因为需要处理跨应用之间的通信和集成问题。

  • 需要依赖于额外的工具和技术

实现微前端需要使用一些额外的工具和技术,例如模块加载器、应用容器等。这些工具和技术需要额外的学习和维护成本,也可能会导致一些性能问题。

  • 安全性问题

由于微前端应用是独立的,它们之间可能存在安全隐患。例如,如果某个微前端应用存在漏洞,攻击者可能会利用这个漏洞来攻击整个系统。

  • 兼容性问题

由于微前端应用是独立的,它们之间可能存在兼容性问题。例如,某个微前端应用可能使用了一些不兼容的依赖库,这可能会导致整个系统出现问题。

  • 开发团队需要有一定的技术水平

实现微前端需要开发团队有一定的技术水平,包括对模块化、代码复用、应用集成等方面有深入的了解。如果团队缺乏这方面的技能,可能会导致微前端实现出现问题。

四、微前端的解决方案

4.1 基于 Web Components 的解决方案

Web Components 是一种标准化的 Web 技术,可以创建可复用的自定义元素,包括 HTML 标记、CSS 样式和 JavaScript 代码。基于 Web Components 的微前端解决方案可以使不同的微前端应用程序使用相同的 Web 组件,从而提高复用性和可维护性。

4.2 基于 Iframe 的解决方案

使用 Iframe 可以将不同的微前端应用程序嵌入到主应用程序的页面中,从而实现微前端的隔离和独立部署。但是 Iframe 也存在一些问题,如安全性和性能等方面的问题。

4.3 基于服务端渲染的解决方案

服务端渲染可以将微前端应用程序的 HTML 和 JavaScript 在服务器端进行预处理,从而减少客户端的加载和渲染时间。这种解决方案可以提高性能和 SEO,但是也需要在服务器端增加额外的负载。

4.4 基于 JavaScript 模块加载器的解决方案

使用 JavaScript 模块加载器可以将不同的微前端应用程序作为不同的模块加载,从而实现微前端的隔离和独立部署。这种解决方案可以提高可维护性和扩展性,但是也需要使用特定的 JavaScript 模块加载器,如 SystemJS 或者 Webpack 等。

常用的技术实现方案:

  • single-spa
  • qiankun

4.5 基于流媒体技术的解决方案

使用流媒体技术可以将微前端应用程序作为流式数据进行传输和播放,从而实现微前端的隔离和独立部署。

五、何时需要引入微前端

通常情况下并不要需要微前端架构,冒然引入会增加额外的复杂度等问题。当出现以下特征时,可以考虑引入微前端:

  1. 应用程序的规模不断扩大,导致应用程序变得难以维护和扩展。
  2. 应用程序需要多个团队协同开发,但是不同团队之间的开发进度和技术栈不一致。
  3. 应用程序需要支持动态更新和增量升级,但是传统的单体应用程序难以实现。
  4. 应用程序需要支持自定义和可插拔的功能,但是传统的单体应用程序的架构限制了自定义和可插拔性。
  5. 应用程序需要支持不同的终端设备和浏览器,但是传统的单体应用程序难以实现对不同设备和浏览器的适配。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202303/\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.html" "b/docs/date/202303/\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.html" new file mode 100644 index 0000000..fbbc0d6 --- /dev/null +++ "b/docs/date/202303/\346\200\247\350\203\275\347\233\221\346\216\247\345\272\223.html" @@ -0,0 +1,48 @@ + + + + + + 性能监控工具 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/date/202304/ai.html b/docs/date/202304/ai.html new file mode 100644 index 0000000..6897d7b --- /dev/null +++ b/docs/date/202304/ai.html @@ -0,0 +1,48 @@ + + + + + + AI | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/docs/date/202305/DOM\347\233\221\346\265\213.html" "b/docs/date/202305/DOM\347\233\221\346\265\213.html" new file mode 100644 index 0000000..05ab204 --- /dev/null +++ "b/docs/date/202305/DOM\347\233\221\346\265\213.html" @@ -0,0 +1,61 @@ + + + + + + DOM 监测 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

DOM 监测

如何定义DOM监测

  • 新加 DOM
  • DOM 属性变更
  • 移除 DOM

通常有两种方式,早期使用 DOM 事件监听节点的变化,目前已不再推荐。当前推荐使用MutationObserver

一、DOM 事件

事件作用注意事项
DOMNodeInsertedIntoDocument用于检测节点的插入当 Node 被插入到 Document 时,才会触发此事件
DOMNodeInserted用于检测节点的插入当 Node 被插入到 Document 或非 Document 时,都会被触发
DOMNodeRemovedFromDocument用于检测节点的移除当 Node 从 Document 移除时,才会触发此事件
DOMNodeRemoved用于检测节点的移除当 Node 从 Document 或非 Document 时移除时,才会触发此事件
DOMAttributeModified用于检测 DOM 属性变化
DOMCharacterDataModified检测 DOM 节点的文本变化
DOMSubtreeModified用于代替(DOMAttributeModified、DOMCharacterDataModified、DOMNodeInserted、DOMNodeInsertedIntoDocument、DOMNodeRemoved 和 DOMNodeRemovedFromDocument)IE9 环境存在 BUG,当 Node 第一时间被插入时,不会立即触发此事件

这里的非Document指的是,节点不在 DOM 树上的场景。如节点存放与内存中,Code 演示

二、MutationObserver

MutationObserver提供了一种监控自身节点以及子节点变化的能力,包括新增、移除、属性变化。示例:

js
const callback = (mutationRecords) => {};
+const observer = new MutationObserver(callback);
+
+const targetNode = document.querySelector("#node");
+const option = {
+  subtree: false,
+  childList: false,
+  attributes: true,
+  attributeFilter: undefined,
+  attributeOldValue: false,
+  characterData: false,
+  characterDataOldValue: false,
+};
+observer.observe(targetNode, option);
配置默认值说明
subtreefalse监听目标节点的所有后代节点
childListfalse监听目标节点的新增、移除子节点的行为
attributesfalse监听目标节点的属性的变化
attributeFilterundefined当值为数组时,仅检测指定的属性的值的变化。
attributeOldValuefalse是否记录属性的旧值
characterDatafalse是否监控文本节点的变化
characterDataOldValuefalse是否记录文本节点的旧值

三、参考

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.html" "b/docs/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.html" new file mode 100644 index 0000000..8cd6ac7 --- /dev/null +++ "b/docs/date/202305/lit_\347\224\237\345\221\275\345\221\250\346\234\237.html" @@ -0,0 +1,67 @@ + + + + + + lit | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

lit

一、lit 是什么

lit提供了一种方式, 可以更快\更轻量的创建一个web component. 在原生的web component的基础上, lit提供了更友好的响应式生命\局部样式书写方式.

web compoent的生成使用lit实现, 具体的 UI 实现可以使用不同的技术栈(vue react angular 等)

二、lit 与 web component

原生 web componentlit
响应式声明不支持支持
样式隔离支持支持
渲染attachShadowrender
生命周期connectedCallback disconnectedCallback adoptedCallback attributeChangedCallbackconnectedcallback disconnectedcallback attributechangedcallback adoptedcallback
响应式更新-shouldUpdate willUpdae update
主动触发更新-haschanged requestUpdate

三、生命周期

  • connectedCallback
    • 当 DOM 从 Document 文档移除时触发
  • disconnectedCallback
    • 当 DOM 挂载到 Document 文档时触发
  • shouldUpdate
    • 是否允许更新
  • willUpdate
    • 即将更新, 允许对响应式属性做调整
  • update
    • 执行更新

父子组件之间生命周期的行为:

  • 第一次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback -> 父 update(shouldUpdate willUpdate update) -> 父 update(shouldUpdate willUpdate update)
  • 第二次 DOM 挂载时: 父 connectedCallback -> 子 connectedCallback
  • 更新时: 父节点更新时, 不会影响子节点更新. 即仅触发父 update(shouldUpdate willUpdate update)
  • DOM 卸载时: 父 disconnectedCallback -> 子 disconnectedCallback

四、lit + vue

首先需要先创建一个 VUE 实例

ts
@query(".container")
+container!: HTMLDivElement;
+
+createVueComponent = () => {
+  const component = defineComponent({
+    template: `
+            <div>vue component</div>
+        `,
+  });
+
+  const app = createApp(component);
+  app.mount(this.container);
+};

善用三个生命周期connectedcallback disconnectedcallback update, 通过update动态更新vue 实例.

第一次connectedcallback之后会触发update钩子, 此时container已被赋值, 可以执行createVueComponent.

TS
protected update( changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown> ): void {
+    super.update(changedProperties);
+
+    if (this.container) {
+      unmountInstance(this);
+      this.createVueComponent();
+    }
+  }

五、Code

Code 完整示例

六、Reference

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.html" "b/docs/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.html" new file mode 100644 index 0000000..6ed6d79 --- /dev/null +++ "b/docs/date/202305/\346\217\220\345\211\215\347\232\204\345\215\212\345\271\264\346\200\273\347\273\223.html" @@ -0,0 +1,51 @@ + + + + + + 此去欲何-2023 年中结 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

此去欲何-2023 年中结

一天下午,leader 走进办公室,对我们说,资金维持不下去了,仅能支撑到这个月了。

那一刻,leader 眼睛低迷、脸色暗淡,身形略微有点弯曲。办公室的光线有点暗,那一刻,似乎更暗了。

那一刻,似乎卸下了一个担子,但另一个更重的担子迎面而来。对于 leader、对于我们,都是如此。

我,一位前端攻城师,失业了。哦,创业失败,公司也没了。


一月九号,公司算是正式结束运营。

十号那天兄弟们依然来到办公室,继续工作。继续做着原计划中的任务,继续打磨着我们呵护了数年的产品。十号、十一号、十二号...

唯一的变化,是我们离开办公室的时间。以前都是九点钟离开办公室,现在是六点。

除了下班的时间外,其它的似乎一切没变。正常的通勤、正常的与邻居唠嗑、正常的吃肠粉、正常的...


印象中大概有十多年了,未在家中陪家人一起过元宵节了。

小小的元宵,大大的团圆。

老妈也曾怀疑,为何今年走这么晚,难得在家过了十五才离开。我一直谎称公司不忙,远程办公也是一样的,不碍事。

试探性地问老妈,以后想起哪里定居呢?老妈念家,想回老家了。

二月下旬,回了深圳。看书、爬山、与朋友喝茶,默默准备着告别。


年后看到一些推文、群聊,到处在散发着焦虑,工作不好找、如意的工作更不好找。

顺丰科技

可能我比较幸运吧,开始投递简历没多久,就得到了顺丰科技的邀约。由于岗位要求与我过往经历匹配度挺高的,四轮面试也比较顺利。但比较可惜的是,最终没收到 offer。

反思了下,可能是因为我提到内部转岗的事情,三、四轮面试时,面试官一直追着这个问题再问,可能被认为不稳定吧。

这段时间投递简历时,一直在有意的找安全方向岗位,毕竟接触了这么多年安全业务,也算是半个安全人哈。也有着自己的小算盘,多了解下,指不定以后做安全方向的销售呢。

腾讯

最早接触的是腾讯手机地图,可惜的是人家要找的是经验丰富的移动端开发,但我对移动端零经验。不出意外的,挂了。哈哈哈哈哈,纯粹积累下面试经验

之后接触的是腾讯文档,整个面试周期还是蛮长的,将近三周时间。一、二面技术面、三面 leader 面,四面 HR。很可惜的,HR 面,薪资没谈妥,被膈应到了。

心态有点炸了

三月份,收到的面试邀约并不多,除却顺丰、腾讯外,也面过两三家小公司,仅拿到过一家小公司的 offer,考虑许久没去这家公司。

惯例中的金三银四没看到,倒是感受了铜三铁四的寒气。


一个多月的投递简历,整体感觉卷的厉害。

BOSS 上抛出的岗位,很多要求一兼多职,即要求 PC 开发,也要移动开发、甚至小程序开发。适合自己的岗位不多,三月下旬、四月初行情一直不太好。

焦虑了

有一天,失眠了。白天,心慌、手不自觉的颤抖。胸中似乎有一股怒火,想发泄,无处呐喊。

知道自己的精神状态出问题了。一个多月的独处,每天在出租屋内,无人交谈,再加上工作不顺,压抑、抑郁了。

之后的几天里,一直是这种状态。没有刻意的去思考工作、去学习,但那压力如水,包裹全身。

人生第一次感到那么的无助,但我知道,只能靠自己。

自救

我们的公司虽然停止营业了,但办公室还在。之前只是一直在准备复习以及面试,很少去了。

之后每天都去办公室,与李总、凯哥闲聊,喝茶看报聊天...

哦,对了,还有我的猫,大黄,我把大黄也送到了办公室。每天三人一猫,渐渐的状态好多了。

他救

发小,宇宇。一天,问我工作顺利否,我跟他讲焦虑了~_~

接下来的几天,每晚跟我“煲电话粥”,直到有天他需要出差,着实没时间了。那几天,最期待的就是晚上闲聊,有人跟我说说话,很开心。

老铁,拭心。年后本意是想着离开一线城市,找个非一线定居的。但行情的差劲,使我迷茫、焦虑了。一天晚上找他聊关于定居的问题,一方面是取经、一方面是缓解焦虑。

当然,还有其他人呢,智慧小君君呀超哥等。一向不太喜欢闲聊的我,这半个月似乎将一年的唠嗑给唠完了。

由衷感谢他们,陪我度过这段阴暗时光。


辗辗转转,终究是离开了深圳

这次离开,若再要回去,会是何日,哪般场景呢?


  1. 常被问到如何看待自己的这段创业经历。

很幸运,人生中遇到李总、鑫哥、凯哥,他们是有想法、有活力、敢想敢做的可爱的人啊。一段宝贵的友情。

至于其它的,可以留待五年、十年后再回首,应当是另一番风景。

  1. 机会与意外哪个会先来呢?

我不知道呢,我所能做的就是,做好力所能及的事,强大自身。若是机会,则顺风而起;若是意外,也多几分防御的能力。

  1. 此去欲何
> 大圣,此去欲何?
+> 踏南天,碎凌霄。
+> 若一去不回?
+> 便一去不回。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202306/note.html b/docs/date/202306/note.html new file mode 100644 index 0000000..7797130 --- /dev/null +++ b/docs/date/202306/note.html @@ -0,0 +1,48 @@ + + + + + + swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/docs/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.html" "b/docs/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.html" new file mode 100644 index 0000000..02c4fc1 --- /dev/null +++ "b/docs/date/202306/web\344\270\255\347\232\204\346\222\244\351\224\200\344\270\216\351\207\215\345\201\232.html" @@ -0,0 +1,48 @@ + + + + + + 参考 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/docs/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.html" "b/docs/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.html" new file mode 100644 index 0000000..15019f9 --- /dev/null +++ "b/docs/date/202307/\344\272\224\345\205\255\346\234\210\351\202\243\347\202\271\345\204\277\344\272\213\345\204\277.html" @@ -0,0 +1,48 @@ + + + + + + 五六月那点事儿 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

五六月那点事儿

导读:

  1. 工作
  2. 生活
  3. 发展

成都

成都啊,曾三去成都。

第一次,是大学临开学前,去姐姐家玩。当时的最深的印象是街道两旁好多好多的常青树,枝繁叶茂,一颗胜过一颗,生机盎然。

第二次,是与同学到成都听讲座。演讲的内容早已忘记,但人还依然记得。

第三次,还是与朋友一起闲逛成都,宽窄巷子、锦里、春熙路、电子科大...

工作

又一次来到了成都,

生活

发展

设计模式中的里氏替换原则,阐述了通过继承、多态对业务进行解耦,但站在个人发展的角度,更推崇聚敛,强调不可替代性。

一位初级工程师可以随时被替代,但要替换一位架构师,是需要花费很大代价的,现实中是不会随意替换架构师的。

前端的现状

技术方面,前端已过了百花齐放的阶段,技术及其周边基本上稳定了下来了。

  • 框架
    • 虚拟DOM系列: React Vue
    • 无虚拟DOM系列: Svelet SolidJS
    • WebComponent: Lit
  • 构建
    • webpack
    • vite
    • rollup
    • esbuild
  • 规范化
    • babel
    • eslint
    • prettier
  • CICD

前端的价值

曾面试某利控股,与面试官聊天时,他的观点是前端会点就行,最主要的还是后端,要更懂后端才行。他拿尤大举例子,说除非前端做到尤大的地步,否则都无所谓。

技术是手段,业务才是价值。通过技术辅助业务实现价值,才能体现出技术的价值。

当前的社会大环境下,大家都提倡将本增效,前端能做些哪些事情体现更大的商业价值呢?

  1. 工具类
  • 低代码平台
  1. 插件类
  • VSCode 插件
  • 浏览器插件

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202308/Chrome-Memory.html b/docs/date/202308/Chrome-Memory.html new file mode 100644 index 0000000..ca1f938 --- /dev/null +++ b/docs/date/202308/Chrome-Memory.html @@ -0,0 +1,48 @@ + + + + + + Chrome Devtools 之 Memory | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

Chrome Devtools 之 Memory

前言

Chrome 开发者工具的“内存”面板提供了有关网页如何使用内存的信息。如果您注意到您的网站变慢了,则应将内存泄漏视为可能的原因。Chrome Memory 标签页旨在解决内存问题,包括调试 JavaScript 内存泄漏。

Memory 面板

Memory 面板用于查找内存问题,例如内存泄漏、膨胀和垃圾回收,这些问题都会影响页面性能。通过录制快照,可以详细的查看当前页面使用情况。

支持快照类型:

  • heap snapshot 堆快照
  • Allocation instrumentation on timeline 时间表上的分配工具
  • Allocation sampling 分配抽样

Heap Snapshot

录制快照

路径:Chrome DevTools --> Memory --> Heap Snapshot --> Take Snapshot

通过上述的步骤可以录制一份当前的内存快照,开发者工具支持将已录制的快照数据存储到本地文件,同时也支持将数据导入到开发者工具。

小技巧:通过导出、导入功能,分析不同时刻下当前站点的内存使用状态,辅助内存使用分析。

面板内容

加载快照后,可以进一步检查 JavaScript 对象和 DOM 节点的内存分布(在拍摄快照时)。

分析数据可以从多个视图查看:

概要视图(Summary View)

可以看到一个表,其中包含从它们派生的构造函数和对象(按大小、距离和保留的对象数分组)。表字段解释:

  • Constructor:用于构造对象的 JavaScript 函数。
  • Distance:与根的距离。距离越远,物体加载和处理所需的时间就越长。
  • Shallow Size:通过特定构造函数创建的每个对象的阴影大小。
  • Retained Size:一组对象中最大的保留大小

包含视图(Containment View)

可以看到一张表,从对象(JavaScript 对象或 DOM 节点)的维度查看堆信息,表字段解释:

  • Object:特定的 JavaScript 对象或 DOM 节点。
  • Distance:一组节点中距离根节点最短的路径
  • Shallow Size:通过特定构造函数创建的每个对象的 Shallow Size 之和
  • Retained Size:一组对象的最大保留大小

统计视图(Statistics View)

环形图,显示存在的每种类型的对象总体占用的内存量。

Allocation instrumentation on timeline

录制操作期间新分配的内容

Allocation sampling

Record memory allocation using sampling method. this profile type has minimal performance overhead and can be used for long running operations. it provide good approximation of allocations broken down by javascript execution stack.

使用采样方法记录内存分配。这种配置文件类型的性能开销最小,可以用于长时间运行的操作。它提供了 javascript 执行堆栈分解的分配的良好近似。

表字段解释:

  • Self Size: 函数本身使用的内存。
  • Total Size: 函数所属集合使用的内存。
  • Function: 在操作中被记录的函数。

何时会出现内存泄漏

  • 意外的全局变量
  • Detached DOM Nodes 分离的 DOM 节点
  • 闭包

案例

总结

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202308/vue\344\271\213$destroy.html" "b/docs/date/202308/vue\344\271\213$destroy.html" new file mode 100644 index 0000000..c1ca505 --- /dev/null +++ "b/docs/date/202308/vue\344\271\213$destroy.html" @@ -0,0 +1,85 @@ + + + + + + vue 中的组件销毁 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

vue 中的组件销毁

通常会在 vue 的生命周期 beforeDestroy 和 destroyed 中做些性能方面的处理,比如注销事件、清楚内存占用等。

vue2 中提供了instance.$destroy接口可以去销毁一个组件,那么$destroy中都做了什么呢

vue2 的 $destroy

js
Vue.prototype.$destroy = function () {
+  const vm: Component = this;
+  if (vm._isBeingDestroyed) {
+    return;
+  }
+  callHook(vm, "beforeDestroy");
+  vm._isBeingDestroyed = true;
+  // remove self from parent
+  const parent = vm.$parent;
+  if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
+    remove(parent.$children, vm);
+  }
+  // teardown scope. this includes both the render watcher and other
+  // watchers created
+  vm._scope.stop();
+  // remove reference from data ob
+  // frozen object may not have observer.
+  if (vm._data.__ob__) {
+    vm._data.__ob__.vmCount--;
+  }
+  // call the last hook...
+  vm._isDestroyed = true;
+  // invoke destroy hooks on current rendered tree
+  vm.__patch__(vm._vnode, null);
+  // fire destroyed hook
+  callHook(vm, "destroyed");
+  // turn off all instance listeners.
+  vm.$off();
+  // remove __vue__ reference
+  if (vm.$el) {
+    vm.$el.__vue__ = null;
+  }
+  // release circular reference (#6759)
+  // https://github.com/vuejs/vue/issues/6759
+  if (vm.$vnode) {
+    vm.$vnode.parent = null;
+  }
+};

从源码中可以看到$destroy主要做了这么几件事:

  1. 调用生命周期钩子beforeDestroy
  2. 从父 VNode 中清楚自身
  3. 清除自身实例上的所有 watcher
  4. 触发后代组件的 destroy 钩子
  5. 调用当前实例的所有监听事件($on 事件)
  6. 移除$el上的__vue__属性
  7. 将组件实例标记为_isDestroyed

从源码实现的话,可以看到整个流程中,操作的是 VueComponent 实例的数据,

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202309/minimap/readme.html b/docs/date/202309/minimap/readme.html new file mode 100644 index 0000000..17a6ed8 --- /dev/null +++ b/docs/date/202309/minimap/readme.html @@ -0,0 +1,48 @@ + + + + + + 编辑器的缩略图实现原理 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

编辑器的缩略图实现原理

一、背景

部分 Web 版的 IDE 编辑器未曾实现缩略图功能,探寻一下缩略图的实现逻辑。以 VSCode 为例。

VSCode 的编辑器是monaco实现的,编辑器的编辑区都是采用的虚拟渲染,即仅渲染可视区的代码,可视区之外的动态去除 DOM 节点。

打开 VScode > Help > Toggle Developer Tools,观察 DOM 节点的状态变化,可以看到是在动态变化。

二、功能特性

参照 VSCode 的缩略图的能力,功能包括:

  1. 滚动。缩略图与编辑器的滚动同步
  2. 拖拽。缩略图中的滑块拖拽功能
  3. 点击。缩略图的非滑块区域,通过点击操作定位到对应的代码位置

其它的特性:

  1. 代码量多的场景下,缩略图中展示的是全量代码中的部分
  2. 代码量多的场景下,滚动时,缩略图中的代码与滑块是同时在滚动的

三、方案设计

假设:

  • 编辑器的屏高为 1,缩略图中展示的最大代码量为 N 屏的代码,代码总量为 M。
  • 能够拿到编辑器的全量代码

整体设计:

null

(一) 滚动同步问题

主要处理两个场景:

  • 编辑器滚动事件
  • 缩略图滚动事件

1.1 编辑器滚动事件

当编辑器滚动时,变更缩略图中代码块偏移位置,以及滑块位置。

具体的,缩略图中的代码块、滑块偏移距离,使用编辑器的滚动百分比进行计算。

核心思路:缩略图中滑块移动的百分比 = 缩略图中代码移动的百分比 = Ace Editor 垂直滚动条移动的百分比

1.2 缩略图滚动事件

为缩略图注册wheel事件,当触发事件时,动态变更编辑器的滚动位置即可

(二)缩略图点击事件

当在缩略图中触发点击事件时,假设鼠标点击位置到滑块左上角的垂直距离 为 Dy

$$ Dy = 滑块的相对偏移高度 + \frac{滑块的相对偏移高度}{滑块可偏移高度} \times 缩略图中代码块可偏移高度 $$

从上述的公式中,可以计算出滑块的相对偏移高度,然后即可得出滚动的百分比。

因为,编辑器的滚动百分比 = 缩略图滑块偏移百分比 = 缩略图代码块偏移百分比,此时设置编辑器的滚动高度即可。

四、方案优化

此时缩略中的实现是基于全量代码,渲染所有的代码,通过移动缩略图中的代码实现。

可以将代码块这部分修改为动态渲染,知道了滚动百分比,即可计算出需要渲染的开始行。在知道行高的情况下,计算出结束行。进而实现动态渲染。

五、引用

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/date/202309/width/readme.html b/docs/date/202309/width/readme.html new file mode 100644 index 0000000..5104259 --- /dev/null +++ b/docs/date/202309/width/readme.html @@ -0,0 +1,58 @@ + + + + + + 宽度问题 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

宽度问题

一、魔法

为 DOM 设置宽度有哪些方式呢?最常用的是配置width属性,width属性在配置时,也有多种方式:

  • width
  • min-width
  • max-width

通常当配置了 width 时,不会再配置min-width max-width,如果将这三者混合使用,会有什么魔法效果呢?

测试代码:

html
<style>
+  .box {
+    display: inline-block;
+    border: 1px solid #e8e8e8;
+    min-width: 200px;
+    width: 100px;
+    max-width: 300px;
+  }
+</style>
+
+<div class="box">sdsd</div>
min-widthwidthmax-width盒子最终宽度
200px最小宽度 200px
100px定宽 100px
300px最大宽度 300px
200px100px定宽 Max(min-width, width)
100px300px定宽 Min(width, max-width)
200px100px300px定宽 Max(min-width, width)

二、应用

Alt text

ElementUI 的组件 Select,当可选项的文本较长时,弹框也会跟着扩增宽度,因为它只设置了min-width属性。

提出需求,当可选项的文本过长时,以省略号展示,不运行弹框宽度增加。

此时可以应用上述的规则,为弹框添加一个width: 0px即可

Alt text

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202310/Web\346\200\247\350\203\275.html" "b/docs/date/202310/Web\346\200\247\350\203\275.html" new file mode 100644 index 0000000..ce03868 --- /dev/null +++ "b/docs/date/202310/Web\346\200\247\350\203\275.html" @@ -0,0 +1,68 @@ + + + + + + 概述 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

概述

CSS

  • css 简写,减少字节数
  • css 浅选择器,大幅减少样式表的大小
  • uncss 移除多余的属性
  • 避免@import。会造成延迟渲染
  • 过渡
  • will-change
  • 关键 css 及其解决的问题
    • 关键 css。用户立即看到的内容
    • 非关键 css
  • loadcss 库,使用 perload 语法加载首屏以外的内容
  • cssrelpreload
  • mydevice.io 枚举各种设备的分辨率
html
<link
+  rel="preload"
+  href="css/styles.min.css"
+  as="style"
+  onload="this.rel='stylesheet'"
+/>

图片

html
<picture>
+  <source
+    srcset="/media/cc0-images/surfer-240-200.jpg"
+    media="(orientation: portrait)"
+  />
+  <img src="/media/cc0-images/painted-hand-298-332.jpg" alt="" />
+</picture>

主流图像类型:

  1. 光栅(位图)。JPEG、PNG、GIF
    • 有损。JPEG、WebP(有损)
    • 无损。GIF、PNG、WebP(无损)
  2. SVG。矢量图,任意缩放不会任何视觉效果

自适应图片

html
<img
+  src="image-small.jpg"
+  srcset="image-medium.jpg 640w, image-large.jpg 1280w"
+/>
+
+<img
+  src="image-small.jpg"
+  srcset="image-medium.jpg 640w, image-large.jpg 1280w"
+  sizes="(min-width: 704px) 50vw, 100vw"
+/>

图像的进一步处理

  • 雪碧图
  • 压缩图片
  • webp
  • 延迟加载

雪碧图

  • npm i -g svg-sprite

图片优化

  • imagemin
  • svgo

第 9 章 使用 Service Worker 提升性能

第 10 章 微调资源传输

第 11 章 http2

http1

  • 问题:
    • 对首阻塞。通常一次最大处理六个请求
    • 未压缩的头部
    • 缺少 HTTPS 的授权

http2

  • 提供成本更低的请求
    • 一套新的传输体系。连接->流->消息->帧
    • http2,一个连接,处理多个请求
  • 头部压缩。
    • 采用索引的思路,对相同的 header 值只用引用
  • 服务器推送

关于 Http1 的思考:

Q1:http1,性能优化时,通常都会去竭力去减少请求数量,根本原因是什么?

A1:因为队首阻塞的原因,同一批次的 6 个请求若是未完成,则后续的请求会一直处于等待状态。

Q2:域名分片,可用,但麻烦,不值得

A2:通过不用的域名,绕过最大的并发请求限制。

Q3:为何要压缩头部

A4:1. 现代请求通常在 headers 添加很多信息,如跨域、Token、Cookie 等,头部越来越大。在传输时,压缩头部是还很有必要的。

Q4:服务器压缩了什么?

A4:服务器仅仅压缩传输的 Body,不压缩 headers

Q5:内联资源的优劣势

A5:劣势:不能使用缓存;加快页面的渲染速度,因为内联资源不会单独开发起请求获取数据。

关于 Http2 的思考:

Q1:服务器的压力增加了?

A2:从测试来看,当大批量请求发起时。http1 时,请求的瓶颈压力在前端,使用瀑布图查看时,请求的排队时间过长;http2 时,请求的响应时间过长。所以,从请求发起到请求结束,孰优孰劣?这是个问题。

资源压缩

HTTP2 服务器推送

服务器推送静态资源,在相应头中添加 header:

link: <./css/index.css>; rel=preload; as=style

服务器推送,不会考虑缓存问题,无论用户代理是否存在缓存,都会推送全量数据

HTTP 1 / HTTP 2 优化时的差异点:

  1. HTTP 1 优化时更多的考虑资源捆绑,如雪碧图,减少请求数量
  2. HTTP 2 优化时,更多考虑的是颗粒度。因为连接的代价更低,优先利用 HTTP 缓存的特性进行优化

gulp

gulp 是一个流式构建系统。流从磁盘上的源读取数据,并进行处理和转换,然后将结果写回磁盘。常见的任务能力:

  • 缩小 HTML
  • JS 处理。丑化 JS
  • CSS 处理。编译 less、scss 等
  • 图片处理。压缩图片、转 WebP 等

生态很好

思考:

  • gulp 与 webpack 之间的区别,优劣势

插件:

  1. 提供网格条线

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.html" "b/docs/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.html" new file mode 100644 index 0000000..34b7c38 --- /dev/null +++ "b/docs/date/202310/\346\200\247\350\203\275\344\274\230\345\214\226\346\200\273\347\272\262.html" @@ -0,0 +1,90 @@ + + + + + + 性能优化总纲 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

性能优化总纲

本文仅论述优化的手段,不涉及执行这些操作的根因,后续空闲时在整理“为什么”。

一、性能指标

指标有很多,比如 lighthouse 中使用的指标有 FCP、LCP、TBT、CLS、Speed Index,这些是最终的性能评估指标。

性能优化方案落地时,主要参看的指标:

指标名词解释描述
DCL [DOMContentLoaded]DOM 解析结束时间HTML 文档被解析成 DOM 树并且所有的标签都已经可用,但是外部资源(如图像、样式表等)可能还没有加载完成。
FP [First Pain]首次绘制浏览器首次将像素渲染到屏幕上的时间点,即页面第一次有可见的内容呈现给用户。
FCP [First Content Pain]首次内容绘制浏览器首次将第一个有意义的内容(如文本、图像、SVG 等)呈现到屏幕上的时间点。
LOAD加载结束时间在整个页面及其所有资源(包括图像、样式表、脚本等)加载完成后触发。

(1)指标对应的值的获取

通过 Chrome 的 Performance 面板,可以看到大部分的值,这里说下如何通过 API 获取值。

1.1 DCL

js
console.time("DCL");
+document.addEventListener("DOMContentLoaded", function (event) {
+  console.timeEnd("DCL");
+});

1.2 FP 与 FCP

js
const [fp, fcp] = performance.getEntriesByType("paint");
+
+const fpDuration = fp.startTime;
+const fcpDuration = fcp.startTime;

1.3 Load

js
const entry = performance.getEntries()[0];
+const loadDuration = entry.duration;

二、资源模块

针对静态资源保持一个大体的优化思路,即在当前优先处理与当前页面相关的资源。

(1)HTML 资源

下载过程中没有相关的处理

(2)CSS 资源

2.1 减少字节

  • CSS 简写。属性能够简写的,不要分开写
  • CSS 浅选择器。去除非必要的、详细的选择器,这是一个累活。

2.2 移除未使用的 CSS

一个复杂项目中可能会加载很多的 css 样式表,有些样式表不一定会被使用到,可以将这部分的样式去除。相关工具:

  • uncss

2.3 启用 GPU 渲染

针对变换、动画等场景,可以启用 GPU 渲染。方式:

  • will-change

2.4 @import 问题

避免@import,其弊端:

  • 阻塞页面加载。当使用@import 导入外部样式表时,浏览器会在解析到@import 规则时暂停页面渲染,并立即请求导入的样式表
  • 顺序依赖性。@import 导入的样式表必须在主样式表中等待导入样式表加载完毕后才能应用。
  • 额外的 HTTP 请求。每次使用@import 导入样式表时,浏览器都需要发起额外的 HTTP 请求来获取该样式表
  • 无法并行加载。由于@import 导入的样式表必须在主样式表中等待加载完毕后才能继续渲染,因此无法与主样式表并行加载。

(3)JS 资源

3.1 资源处理

压缩

压缩资源,将多余的换行符、多余的打印等去除;

丑化

丑化资源,将代码中变量名、函数名等替换为简短的、难以阅读的代码。

分包

当个 JS 文件交大时,尝试执行分包处理。主流的构建工具都包含对应的处理方式:

  • webpack
    • dll。将第三方库按照一个的规则抽成一个或多个文件。
    • optimization
      • externals。第三方库,以 umd 的方式引入工程。打包时不参与打包
      • splitChunks。按照一定的规则将包模块进行拆分。
  • rollup
    • manualChunks。按照一定的规则将包模块进行拆分。

3.2 资源下载

  • async。异步加载资源,下载完成后立即执行脚本
  • defer。异步加载资源,在 load 事件时执行脚本
  • preload。提前加载资源
  • prefetch。空闲时加载下一个页面需要使用的资源

(4)图片资源

4.1 图标

有段时间,雪碧图是一个很流行的图标整合方式。到了现在这个阶段,字体图标是一个更好的方案。比如:阿里字体图

4.2 格式选择

常用的图片格式有 png、jpg、svg、webp。图片可以按照多个维度进行划分,如下:

  • 无损图和有损图
  • 光栅图和矢量图

WebP有 google 开发,旨在提供更高的压缩率和更高的图像质量,以替代传统的 JPEG、PNG 和 GIF 格式。WebP格式的特性:

  • 支持有损压缩和无损压缩
  • 支持透明色
  • 支持动态图
  • 压缩率更高

推荐使用WebP格式,主流浏览器厂商都已支持。

4.3 回退写法

为了保险起见,可以采用<picture>标签的回退语法确保正常显示。

html
<picture>
+  <source srcset="image.webp" type="image/webp" />
+  <source srcset="image.jpg" type="image/jpeg" />
+  <img src="image.jpg" alt="图像" />
+</picture>

三、预加载

预加载分为几种类型,如:

(1)网络处理

dns-prefetch

浏览器在用户浏览页面时,在后台运行 DNS 的解析

html
<link rel="dns-prefetch" href="//fonts.googleapis.com" />

preconnect

允许浏览器在一个 HTTP 请求正式发给服务器前预先执行一些操作,这包括 DNS 解析,TLS 协商,TCP 握手,这消除了往返延迟并为用户节省了时间。

html
<link href="https://cdn.domain.com" rel="preconnect" crossorigin />

(2)资源预加载

在浏览器空闲时,加载站点将来可能用到的资源。

html
<!-- 图片 -->
+<link rel="prefetch" href="/uploads/images/pic.png" />
+<!-- 样式表 -->
+<link rel="preload" href="styles.css" as="style" />
+<!-- 脚本 -->
+<link rel="preload" href="jQuery.js" as="javascript" />

四、懒加载

(1)图片懒加载

当资源出现在可视区时,再加载资源。实现方式,基于IntersectionObserve + src 替换的思路实现。

(2)路由懒加载

现代工程,大多是 SPA 工程,路由是有前端控制,当路由变化时再加载对应的资源很有必要。

2.1 Vue 工程

js
const Home = () => import("./components/Home.vue");
+const About = () => import("./components/About.vue");
+
+const routes = [
+  { path: "/", component: Home },
+  { path: "/about", component: About },
+];
+
+const router = new VueRouter({
+  routes,
+});

2.2 React 工程

js
const Home = React.lazy(() => import("./components/Home"));
+const About = React.lazy(() => import("./components/About"));
+
+function App() {
+  return (
+    <Router>
+      <Suspense fallback={<div>Loading...</div>}>
+        <Switch>
+          <Route exact path="/" component={Home} />
+          <Route path="/about" component={About} />
+        </Switch>
+      </Suspense>
+    </Router>
+  );
+}
+
+export default App;

五、网络模块

(1)CDN

启用 CDN 网络,减少资源的加载时长。比如:腾讯桶

(2)压缩

请求传输的压缩算法,常用的有:

  • GZIP。一种常用的压缩算法,它基于 DEFLATE 算法
  • Brotli。由谷歌开发,与 GZIP 和 Deflate 相比,Brotli 具有更高的压缩率。

存在无损的 PNG 资源时,不要启用 GZIP。否则会起到反效果,导致压缩后的文件更大

(3)HTTP

升级为 HTTP/2,好处:

  • 提供成本更低的请求
    • 一套新的传输体系。连接->流->消息->帧
    • HTTP/2,一个连接,处理多个请求
  • 头部压缩。
    • 采用索引的思路,对相同的 header 值只用引用
  • 服务器推送

六、总结

性能优化,名词高大上,真正落地时会发现都是些基本功。

方法很简单,重要的是要知道为什么要这么做,空闲时再聊这块。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git "a/docs/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.html" "b/docs/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.html" new file mode 100644 index 0000000..79148b9 --- /dev/null +++ "b/docs/date/202312/\344\270\200\346\254\241\347\211\271\346\256\212\347\232\204\351\241\271\347\233\256\345\274\200\345\217\221\350\277\207\347\250\213.html" @@ -0,0 +1,48 @@ + + + + + + 一次特殊的开发过程 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

一次特殊的开发过程

当一个项目,备受领导重视,要啥给啥时,你是否很高兴呢?

当一个项目,开发、测试、上线周期仅有一个月的时间时,你是否高兴呢?

当一个项目,主开发人员均为临时支援人员的时候,你是否有点慌呢?

当一个项目,仅有一两位知道大部分产品设计时,你是否确实慌了呢?

当一个项目的参与人员达到八十人时,你是否压力倍增呢?

当上面的假设均为真,汇聚在一个项目中时,做我负责人的你,是否心底颤抖呢?反正我是挺慌的,甚至觉的这是一个注定要黄的项目。

当一个项目的资源、进度、质量,复杂一个量级时,如何规划任务、进度、质量呢?

一、灰度上线了

如上面所述,有幸参与到一次特殊的项目开发过程,上文的所有属性均已满足,领导重视一个月上线临时支援人员模糊的产品八十人...

老实说,接到任务时,我是挺慌的,甚至一度认为,哪怕多给一倍的开发周期,也必定是完不成的。

但结果是好的,仅比预期的上线周期晚了一周,暂时达到了灰度上线的目标。

二、畸形的项目

整个项目的参与人员分为数个工种:项目、产品、UI/UE、前端、后台、测试

整个项目的参与人员一度达到了八十人左右,为什么说是一度?因为人员是一批一批的加入的,并不是在项目开工之出就一次性投入的。

此次项目的特殊点:

  • 此次项目没有启动大会,准确的说,没有针对涉及所有人员的启动大会。
  • 此次项目没有需求,准确的说,开发人员不知道需求。
  • 此次项目没有范围,准确的说,开发人员不知道功能范围边界在哪里。

所以问题来了,如何保证项目质量的?

答案是,测试人员。在此次项目中,测试人员可以被看做是需求提出者功能验收者的集合体。从测试人员介入测试开始,到第一次灰度上线,这之间,产生了三千多的 BUG 单,恐怖如斯~_~

三、人员流动

gantt

从 gantt 图中可以看到,其中一位很重要的角色,产品

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/hashmap.json b/docs/hashmap.json new file mode 100644 index 0000000..6a8f4d5 --- /dev/null +++ b/docs/hashmap.json @@ -0,0 +1 @@ +{"date_202210_api网关.md":"Ci-9lyCW","date_202304_ai.md":"M5JDf33l","date_202211_http手册.md":"B8aTL1Y2","date_202303_几种并发promise的实现.md":"CH7bVPer","date_202210_巷子里的酒香.md":"bDAoNLL8","date_202301_js内存_readme.md":"79MgituF","date_202305_lit_生命周期.md":"BOBfPYM_","date_202306_note.md":"CwstFWDo","date_202301_浏览器原理.md":"H_BIWMeW","date_202307_五六月那点儿事儿.md":"yy_Cq3s5","date_202305_提前的半年总结.md":"joXesQ8r","date_202305_dom监测.md":"0z8xZW1O","date_202211_web蜜罐.md":"DzeiCwCE","date_202210_两年创业的得与失.md":"C7iCUvCt","date_202309_width_readme.md":"CSNCcfVB","date_202303_微前端.md":"Bkfse4OM","date_202211_observer.md":"Dh59ogQI","date_202303_qiankun_vite_vue3.md":"B6mxNwVN","date_202211_http发展史.md":"C9vDJO0C","date_202308_chrome-memory.md":"B5Felhk4","date_202309_minimap_readme.md":"CXEDUx_f","date_202303_qiankun.md":"BYrYag5f","date_202303_性能监控库.md":"ChAZk8oQ","date_202212_老友说.md":"CVn-FR1Q","date_202306_web中的撤销与重做.md":"ClmhEdwh","date_202302_面试汇总.md":"C5zMgMFu","date_202308_vue之_destroy.md":"DAAqhEDM","date_202212_typescript concept.md":"CCoBvouL","date_202211_中断http请求.md":"Dzb60jKW","date_202310_web性能.md":"DfUyJegJ","index.md":"CJT3269x","date_202312_一次特殊的项目开发过程.md":"BvO4ibrI","week_001_readme.md":"BMdtcQk2","week_004_readme.md":"Zk7YSqDD","week_002_readme.md":"15T0KzAq","week_003_readme.md":"CjyreBNM","week_005_readme.md":"NhGnOKGq","date_202310_性能优化总纲.md":"DJ_UNkqB","week_006_readme.md":"DPiOF40T"} diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..e3136ac --- /dev/null +++ b/docs/index.html @@ -0,0 +1,50 @@ + + + + + + swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

安安静静的小世界

输出、分享、推广


埃隆·马斯克

对于所有曾被我冒犯的人,我只想对你们说,我重新发明了电动车,我要用火箭飞船把人类送上火星。

可我要是个冷静、随和的普通人,你们觉得我还能做到这些吗?

史蒂夫·乔布斯

只有疯狂到认为自己可以改变世界的人才能改变世界。


swlws

swlws

Creator


微信公众号

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/001/readme.html b/docs/week/001/readme.html new file mode 100644 index 0000000..67efd62 --- /dev/null +++ b/docs/week/001/readme.html @@ -0,0 +1,48 @@ + + + + + + 双周回顾#001 - 火烧云 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

cloud

工作以来,许久未曾见过如此壮观的火烧云景观了。

文章

1、穿透的 DIV (pointer-events)1

pointer-events 是一个蛮有趣的 CSS3 属性,虽然主要是针对 SVG ,但其中几个属性应用在 div 上也是颇有意思。

顾名思义,这是一个针对滑鼠事件的属性,预设值为 auto,若值为 none,则可以穿越该元素,点击到下方的元素。

除了 auto 和 none,这是完整的属性列表:pointer-events: auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit,除了 auto 与 none,其他都是控制 SVG 的属性,若採用预设值,则 SVG 就是以 visiblePainted 来表现。

2、pjchender.dev2

pjchender

个人博客站点,包含前后端的知识点。

3、Chrome Memory Tab: Learn to Find JavaScript Memory Leaks3

chrome memory

浏览器端同样存在内存泄露的场景,这是性能稳定性相关的内容,需要去了解:

  • 如何发现内存泄露
  • 如何定位内存泄露
  • 如何解决内存泄露

工具

1、Markdoc4

mark doc

一个强大、灵活、基于 Markdown 的创作框架。

Markdoc 是一个基于 Markdown 的语法和工具链,用于创建自定义文档网站和体验。

我们设计 Markdoc 是为了支持 Stripe 的公共文档,这是我们最大、最复杂的内容网站。

2、viz-js5

viz-js

适用于各种框架的 JavaScript 库,将图形图渲染为 SVG 元素,以在网页中显示它。

3、pkg-size.dev6

pkg-size

无需本地安装,在线检测 npm 包的大小。

4、webcontainers.io7

web containers

通过将 Node.js 直接集成到您的 web 应用程序中,创造无与伦比的用户体验。

这项技术在 StackBlitz 中的在线 IDE 中可以体验到,其性能可以碾压同类的 web IDE。优势:

  1. 比你的本地环境更快。构建完成的速度比 yarn/npm 快 20%,软件包安装完成的速度比 yarn/npm 快 5 倍以上。
  2. 浏览器中的 Node.js 调试。与 Chrome DevTools 的无缝集成实现了本地后端调试,不需要安装或扩展。
  3. 默认情况下是安全的。所有代码的执行都发生在浏览器的安全沙盒内,而不是在远程虚拟机或本地二进制文件上。

5、Why Turbopack?8

turbopack

turbopack 是使用 rust 编写的构建工具,这篇文档将其与 vite、webpack 进行对比。

图片

1、iradesign.io9

iradesign

商业风格的图标站点,支持下载 PNG、SVG 类型。

2、cleanpng.com10

clean png

提供透明背景的图标。

References

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/002/readme.html b/docs/week/002/readme.html new file mode 100644 index 0000000..ab3148e --- /dev/null +++ b/docs/week/002/readme.html @@ -0,0 +1,48 @@ + + + + + + 双周回顾#002 - 红树林 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

红树林

红树林公园,一棵单独生长在海岸边的树,下面一根根树立的幼苗,是从它的根茎上生长出来的。傍晚落潮后,会有一只只小螃蟹在这里浪荡。当然,也会有海鸟在这里进食。

文档

  1. 深入了解 Commonjs 和 Es Module1

Web 开发中,引用模块时有时使用require、有时使用import,这是基于两种不同的模块规范。本文深入讲解了CommonJSESM之间共性与差异性。

  1. 图片要启用 gzip 压缩吗?绝对不要!2

png-gzip

通常在做 Web 性能优化时,会启用 GZIP 压缩。当使用了无损压缩的 PNG 图时,压缩后的体积会比原图体积更大,做了反优化。本文讲解了为什么为发生这种现象。

  1. esno 与 tsx3

esno

一直以为 esno 与 tsx 是两个东西,还有谁像我一样认知的呢?

  1. Nue JS4

nue-js

随着生态的发展,三大主流 Web 框架的功能特性越来越多,源码体积也越来越大。但是有时新建一个小工程时,你并不需要那么复杂的生态,可以尝试下NueJS(2.3 kb)。

NueJS 是一个非常小(2.3kb minzipped)的 JavaScript 库,用于构建用户界面。它是 Nue 工具集的核心。它就像 Vue.js、React.js 或 Svelte,但没有钩子、效果、道具、门户、观察者、注入、暂停或其他不寻常的抽象。学习 HTML、CSS 和 JavaScript 的基础知识,就可以开始了。

工具

  1. 流程图5

flowchart_js

绘制流程图时,通常会使用阿里的 G6 等图标库,大且繁琐。当需求简单时,可以考虑换一个轻量级的库了。flowchart.js 压缩文件仅 70KB ,支持常规的流程图功能。

  1. 时序图6

时序图

一个简单的 javascript 库,用于将文本转换为矢量 UML 序列图。使用Jison来解析文本,使用 Snap.svg 来绘制图像。

  1. 热力图 - heatmap.js7

heatmapjs

一个有趣的 JavaScript 库,在你的站点上生产一个透明背景的热力图,展示用户在站点的操作痕迹。

  1. 图片转 webp8

cwebp

在线的图片转webp的工具,质量参差不齐,何不尝试在 Chrome 推荐的本地工具呢。支持 Windows 版、Linux (aarch64)、Linux (x86-64)、macOS (arm64)、macOS (x86-64)

  1. JSDoc9

jsdoc

JSDoc 3 是一个用于 JavaScript 的 API 文档生成器,类似于 Javadoc 或 phpDocumentor。可以将文档注释直接添加到源代码中。JSDoc 工具将扫描您的源代码并为您生成一个 HTML 文档网站。

  1. apidoc10

apidoc

  1. 表格-Luckysheet11

luckysheet

Luckysheet ,一款纯前端类似 excel 的在线表格,功能强大、配置简单、完全开源。支持格式设置、单元格配置、行和列操作、图标、公式和函数等。

  1. 表格-SpreadJS12

spread-js

商用的表格,业务场景比较复杂时,可以考虑下这家的表格组件。

  1. Web 页面截图13

Web 页面截图之 modern-screenshot

使用 HTML5 或者 SVG 快速将页面 DOM 节点转化为图片.

  1. Web 页面截图之 dom-to-image14

dom-to-image

dom-to-image 是一个库,可以将任意 dom 节点转换为用 JavaScript 编写的矢量(SVG)或光栅(PNG 或 JPEG)图像。

References

往期回顾

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/003/readme.html b/docs/week/003/readme.html new file mode 100644 index 0000000..5a02ac9 --- /dev/null +++ b/docs/week/003/readme.html @@ -0,0 +1,48 @@ + + + + + + 双周回顾#003 - 新生儿 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

新生-baby

10 月 9 日,一个小生命悄悄来到世间,老家的朋友做了爸爸妈妈。

看着昔日的朋友们结婚生子,顿感不知不觉间自己也在慢慢变老。

一、价值

(1)通过 PMP 认证考试

本周一个好消息,通过了 PMP 认证考试。

pmp

PMP 的得分为三个方面,过程、人、商业环境,个人得分分别为 BAA。

也就说在过程这一方面的得分低于及格线,过程模块得分低:

  • 主观因素:刷题量不达标,导致得分低;
  • 客观因素:个人成长环境影响吧,早期在小公司,对于过程的实践不是太看重,主要看重快速迭代的敏捷流程,结果导向。

目前供职的公司,主打一个流程正确。

常听的一句话,“不要私下搞事情,等产品建需求”,有了需求才能统计工作量,否则白做功。

虽然过程繁琐,但确保了整个过程中每个节点可追溯,避免因个人素导致线上故障。

思考:

  • 影响。更熟悉项目管理流程,在标准化流程下做事,减少不规范操作导致的异常。
  • 收益。短期来看这个证书没啥用处,长期收益目前也不确定

(2)三十人的公司内部分享

大数据平台首页性能优化,上周正式上线。回顾总结了整个处理过程,然后在本周的大周会上进行了分享。

第一次在如此多人前做分享,紧张是难免的。所以,文档一直改了又改,唯恐有所差错。

在真正分享的过程中时,中间无人打断,于是慢慢地忘记了紧张,按照自己的思路讲解,最终的舞台表现力感觉还不错,哈哈哈哈~~

思考:

  • 演讲时,语速放慢,不要着急,越急越容易吐字不清晰。
  • 知其然,知其所以然。性能优化手段最终都会落地到最基本的技能上,网络请求、文件大小、加载、渲染...在做优化操作时需要知道性能指标及其含义,以及对应的优化手段。理论与技巧相结合,更加得心应手。
  • 有时,并不要优化。不要盲目优化,当性能指标在合理范围时,不必做任何优化。防止镀金行为,此时可以去做更有价值的事情。

(3)纵向与横向思维

分享会后,与一位架构师闲聊。他提到此次的分享在纵向的深度上很深入,他也学习到了。美中不足的是,横向的对比有所不足,比如涉及到打包的分享中,dll 、 webpack splitChunks、webpackChunkName 之间的差异及优先级问题并未说明了。

思考:

  • 同一类的东西,了解一些横向的指标,比如:通性、差异、优先级等。强化横向意识

(4)更高的视野/个人喜好

需求评审时,就待办列表中的一项待办。

技术负责人看后觉得没有价值,可以不做。

组员也觉得没价值,可以放弃。

产品提出,这个待办是 XX 总提出的。

技术负责人、组员沉默一会后,嗯,要做。

思考:

  • Leader 可能存在更高的视角,看到了更多的东西。
  • Leader 的个人喜好被下属的盲目跟随。

(5)读书

读书明智,知其然,知其所以然。

前段时间在看一本书,书不厚实,断断续续的偶尔看一点,未能持续看完。

上周末,与朋友闲聊,兴之所至,搞了个【读书打卡】,算是互相监督,每日持续读上一两页书。

book

不想看书,看到朋友在读书。麻溜地爬起看书、打卡,一气呵成。害,这该死的胜负欲,哈哈哈哈哈

思考:

  • 不盲目读书,应该读什么书?或者说,有价值的书?

二、晋升

之前未曾在大厂工作过,脑海中也不曾有过晋升的概念,关于在前端之道的晋升也没有清晰的认知。

身边有着一位优秀的 GDE 朋友,每次看他的文章都是对自己的一次激励。重新阅读了下他发表的《经过半年的努力,我终于成为了谷歌开发者专家(GDE)》文章,小有体会。

分享、输出、推广

  • 分享。分享源自有所分享,关注所在领域的技术,深度有所得、广度有所获,然后分享他人
  • 输出。体系化地整理知识,有自己的思考,在已有的知识上产出新的事物。
  • 推广。以自身所思所想影响他人,与同道之人共同探索。

前段时间为 Ace Editor 编写了一个插架,为其补充了缩略图的功能。技术侧的 leader 曾给建议让我提交 PR 到开源仓库,提升个人开源影响力。一直捣鼓其它事情,没整这事儿。害,没领会真意。

抛出问题:

前端目前是一个细分状态。业务上可以分为内容管理、工具、图形等;技术上分为 Web 端、移动端、跨端、跨平台。

  1. 前端的深度在哪里?或者说个人在前端上的深度在哪里?
  2. 前端的广度在哪里?跨度如此之大,如何选择扩展的方向?

翻了下 GDG 近两年在社区说的分享,仅两场 Web 的分享,大部分是关于 flutter 的分享,亲.真.儿子!!!所以,横向扩展 flutter?

可能当想明白这些问题后,晋升就是水到渠成了吧。

文档

1. “根本不需要 TypeScript,JS + JSDoc 够了”,大佬说我想多了1

今年以来很多框架开发者都在放弃使用 TypeScript,为什么会出现这种状态呢?此文对此做出一些推论。

工具

2. WeLink2

WeLink

一个在线的标签管理工具,数据仅在本地存储。

References

往期回顾

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/004/readme.html b/docs/week/004/readme.html new file mode 100644 index 0000000..7fe927c --- /dev/null +++ b/docs/week/004/readme.html @@ -0,0 +1,48 @@ + + + + + + 双周回顾#004 - 满眼欢喜 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

双周回顾#004 - 满眼欢喜

对顺子的第一印象应该是在 2013/10 月,当时在绵阳科技馆,依旧记得那张青涩、腼腆的笑容,双手托着一个 MINI 机器人。那算是顺子和我的第一次相识吧。

顺子

一晃十年了,今天是他的婚礼。

有个词叫满心欢喜,但是看到他们时,我想称作满眼欢喜。满眼欢喜,一生相伴。

顺子

因为做伴郎的缘故,提前来到成都。顺子带我们伴郎团排舞,期间尬舞不断。但他的动作最欢快、最自信,眉眼间的笑容从不消减。

有句诗句叫,士为知己者死,女为悦己者容。想比,此时此刻他的心中充满了他的新娘吧。

价值

// 今天喝了点酒,随便聊聊吧

1024 活动

我是一个不爱出风头的人,我喜欢默默做事,讨厌讲 PPT。但若想向往上走,PPT 能力是很重要的能力,所以,开始假装外向的性格。

公司举办 1024 活动,活动上划分 N 个小组,主动承担小组长的角色,协调团队氛围,使团队氛围迅速活跃,并在活动中曾一度拿的小组积分第一名。可惜的是,在最后的小组对赌环节,运气不佳,输光了积分~~

读书

自律,是一项很难得能力。当自己一个人无法做到自律时,可以找个一个朋友,互相监督。最近读过的书:

Web 性能实践 重构,改善既有设计 CSS 新世界

晋升

查看公司关于晋升相关的要求,其中分享占了很大一部分评分。所以有意识的,在公司的内部知识系统中,开辟了一个 vue3 踩坑专栏,期待后效

互联网

最近双十一,公司为应对双十一活动,重构下单业务。临时调过去支援【配置下单】业务,第一次体会到真正面对互联网业务客户业务的紧迫感,加班是家常便饭,十点、十一点下班那是常态~~

除了加班这个痛点外,团队配置倒是挺全的,项目经理、架构经理、UI 设计师、前端人员、后台人员,倒不失为一种全新的体验

文档

啊,休息休息!!!

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/005/readme.html b/docs/week/005/readme.html new file mode 100644 index 0000000..858bba2 --- /dev/null +++ b/docs/week/005/readme.html @@ -0,0 +1,48 @@ + + + + + + 双周回顾#005 - 零 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

双周回顾#005 - 零

zero

一件悲伤的事实,这两周,成长值为零~~

从大数据部门临时抽调到互联网部门,支援重构的“配置下单”项目。

一个变种的低代码架构设计,唯一比较有意思的是它的业务组件的设计与校验设计,算是学习到点东西吧,其余的时间都是赶工中度过~~

一、价值

(一)架构

有幸与公司的前端技术高经聊天,向大佬请教架构师之路,大佬给的建议。

  1. 技术是为业务服务的。API 学习是基础,但不是重要的,重要的是要懂这个新技术解决了哪个业务场景。
  2. 深耕业务。深度熟悉某一类业务是架构师的必走之路,比如活动秒杀设计、低代码设计
  3. 前瞻性。拥抱变化,做设计时需要考虑后期的扩展,更友好的支持。比如:服务人数从 1K 扩展到 1W、新加功能特性

这些是建设性的建议,真正落地还是有一段路要走:

了解技术背景

一个新技术的出现,必定伴随着特定的业务场景,在这个独特的业务场景,持续完善这个技术,最终才会有面向世人的技术.

反思:通常看到一个技术时,会首先一股脑的去学习 API,反而忽略了最本质的东西。

透过技术学习架构

一个好的技术,必定伴随着一套稳固的架构设计。空谈架构有点虚,可以从一门技术的设计,慢慢去学习它内在的架构。学习它、模仿它、使用它。

很好的例子,Vue 中存在双向绑定,React 中为何一直没有双向绑定呢?

打破限制

每一个小的业务做到极致都是一项很庞大的版图,像数据、日志、队列、资产等。架构的本质是为业务服务,打破技术人的边界思维,敢想敢做,是否可以更进一步、再进一步呢?

(二)互联网

不曾真正在互联网网络做过事儿,这两周支援互联网部门,明显体会到不同的气氛。

怎么说呢,互联网部门与内部系统部门,最直观的感受,就是互联网部门更有朝气,使用最新的技术、说着最潮的行话、下最晚的班

互联网部门是善变的。作为直接对接用户的部门,一个需求、一周变化个两三次都是有可能的。不要担心,会有一堆小伙伴陪着你加班,UI、UE、产品、开发...

互联网部门是自由的。完全基于敏捷思想,快速迭代,以最终产品说话。

(三)外包

不得不说的一件事儿,要远永避开外包、避开外包、避开外包...

需要支援的项目,工期紧张、任务繁重。所以,一件很悲伤的事儿,就是没人关心支援的人是否了解项目,也不需要支援的人了解架构、业务,按照人家已设计好的架构填空就行。

外包的滋味十足,基本上天天在赶工,整个人都在透支中...

二、反思

连续两周未有效读书了,一直给自己找借口。觉得加班忙,所以可以谅解。啊哈哈哈哈哈

时间总会有的,懒而已

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/docs/week/006/readme.html b/docs/week/006/readme.html new file mode 100644 index 0000000..ada5a4d --- /dev/null +++ b/docs/week/006/readme.html @@ -0,0 +1,50 @@ + + + + + + 双周回顾#006 - 这三个月 | swlws + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Skip to content

双周回顾#006 - 这三个月

断更啦~~

上次更新时间 2023/11/23, 断更近三个月的时间。

先狡辩下,因为忙、着实忙。因为忙,心安理得给断更找了个借口,批评下自己~~

这三个月在做啥?跨部门援助,支援公司互联网的 ToC 项目,一言难尽。

先说下考勤,基本上每天晚上十一点后下班。正常的双休没了,变成单休,甚至上十三天休一天。

月份调休时长
2023/1176
2023/1260
2024/0146

所以,确实是有点忙~~

一次不指望开发人员懂业务的项目开发经历

此次支援的项目属于公司重点高项,团队阵容堪称豪华,所有资源优先投入此次项目。

此次项目的最大特点就是要在两个月内出成果,时效卡的死死的

但是,问题来了,大部分人是从外部门支援来的,整个团队懂业务的就那么几个人。所以遭遇了工作以来,堪称魔幻的一次开发经历。

正常的项目迭代流程:

null

这次就牛逼了,主打一个开发不需要懂业务,按图索骥就行,妥妥的牛马。

所以,效果也很显著,整个开发周期内,前后端的 BUG 数量,高达6000+。身上不带百八十个 BUG,午饭都不好意思加个鸡腿~~

null

但是,咱就说但是。但是,项目结果也是喜人的,经过牛马们没日没夜的辛勤劳作、经过测试人员的N轮测试,项目成功落地。

项目开发

项目启动会议后,迅速再拉了一次 30+人的工程架构解读会议,大伙看了两天代码,立马投入开发阶段。

早期介入开发时,大家集体懵逼。时间紧、任务重,根本没有时间给开发人员讲解业务需求、甚至需求文档都没有。

项目启动后的前两周,大伙一脸懵逼的做功能。遇到不懂得业务时,最常听到是,“先等测试提 BUG 就行,他们懂业务”。这也造就了,测试介入后,提了6000+的 BUG

项目测试

通常情况下,当开发做完完整的功能后,经历自测、提测、冒烟测试后,测试人员才会正式介入测试。

null

这次流程就稍稍变化了下,整个项目管控,变成了比敏捷还敏捷。边开发、边构建、边测试,而且不限次数的测试,直到问题处理结束。

null

最大的变化是,测试这里提出的不再是单纯的 BUG,也会包含着需求在里面。也就是说,要做什么、不做什么,基本上是通过测试人员来传达的。

另外很重要的一点,就是测试人员介入的时间点,在开发人员开始开发后的第三周。 测试的步步紧跟是这次项目成功的重要因素。

项目的底气

拉了一群新人,在新人完全不懂业务的情况下,为什么敢玩的这么刺激?不怕翻车吗?它的底气是什么:

  1. 属于旧项目重构。业务上并不是新需求,有产品人员全程跟随,不怕业务需求跑偏。
  2. 庞大的测试团体。70+人的项目组,测试人员占了一半。
  3. 工程架构。可插拔的构架设计,保证了业务层的模块可以随时替换,单个模块不会影响其它模块。

项目开始后,开发人员一直在发牢骚,感觉项目负责人就是在瞎搞,妥妥的即将翻车。

令人惊讶的是,虽然一直在修修补补,但这辆车成功抵达了终点。

不过这一过程中,有一说一,技术债肯定是留下了,很多场景下,为了尽快修复问题,代码都是特写的,后期 CodeReview 时,必定要修改的。

价值

三个月忙忙碌碌,丢了一些东西,也捡起一些东西。

  • GUI 专利
    • 采集用户行为,以热力图的方式可视化展示,辅助产品运营人员做决策。同事提出的想法,我加以实现,抱同事大腿,蹭个署名,哈哈哈哈哈
  • 业务串讲以及 CodeReview
    • 主持数次串讲以及 CodeReview
  • 性能分析
    • 首屏性能问题
    • 表格卡顿问题。其中比较有趣的一点,组件降级处理,确实是个不错的方案
  • 抉择
    • 得支援部门领导得欣赏,期望我平调到支援部门;原部门期望留下,会有新项目主持。被人欣赏的感觉,还是不错的哒

同事离职

同一天入职的同事离职了,时间定格在 2024/2/2,遥祝一帆风顺,前程似锦。

Released under the MIT License.

+ + + + \ No newline at end of file diff --git a/oldMd/color.md b/oldMd/color.md new file mode 100644 index 0000000..b98c2ba --- /dev/null +++ b/oldMd/color.md @@ -0,0 +1,300 @@ +# 颜色 + +[vuejs-ui-color.md](https://github.com/vuejs/ui/blob/master/src/style/md-colors.styl) + + + +$md-red =#f44336; +$md-red-50 =#ffebee; +$md-red-100 =#ffcdd2; +$md-red-200 =#ef9a9a; +$md-red-300 =#e57373; +$md-red-400 =#ef5350; +$md-red-500 =#f44336; +$md-red-600 =#e53935; +$md-red-700 =#d32f2f; +$md-red-800 =#c62828; +$md-red-900 =#b71c1c; +$md-red-a100 =#ff8a80; +$md-red-a200 =#ff5252; +$md-red-a400 =#ff1744; +$md-red-a700 =#d50000; + +$md-pink =#e91e63; +$md-pink-50 =#fce4ec; +$md-pink-100 =#f8bbd0; +$md-pink-200 =#f48fb1; +$md-pink-300 =#f06292; +$md-pink-400 =#ec407a; +$md-pink-500 =#e91e63; +$md-pink-600 =#d81b60; +$md-pink-700 =#c2185b; +$md-pink-800 =#ad1457; +$md-pink-900 =#880e4f; +$md-pink-a100 =#ff80ab; +$md-pink-a200 =#ff4081; +$md-pink-a400 =#f50057; +$md-pink-a700 =#c51162; + +$md-purple =#9c27b0; +$md-purple-50 =#f3e5f5; +$md-purple-100 =#e1bee7; +$md-purple-200 =#ce93d8; +$md-purple-300 =#ba68c8; +$md-purple-400 =#ab47bc; +$md-purple-500 =#9c27b0; +$md-purple-600 =#8e24aa; +$md-purple-700 =#7b1fa2; +$md-purple-800 =#6a1b9a; +$md-purple-900 =#4a148c; +$md-purple-a100 =#ea80fc; +$md-purple-a200 =#e040fb; +$md-purple-a400 =#d500f9; +$md-purple-a700 =#aa00ff; + +$md-deep-purple =#673ab7; +$md-deep-purple-50 =#ede7f6; +$md-deep-purple-100 =#d1c4e9; +$md-deep-purple-200 =#b39ddb; +$md-deep-purple-300 =#9575cd; +$md-deep-purple-400 =#7e57c2; +$md-deep-purple-500 =#673ab7; +$md-deep-purple-600 =#5e35b1; +$md-deep-purple-700 =#512da8; +$md-deep-purple-800 =#4527a0; +$md-deep-purple-900 =#311b92; +$md-deep-purple-a100 =#b388ff; +$md-deep-purple-a200 =#7c4dff; +$md-deep-purple-a400 =#651fff; +$md-deep-purple-a700 =#6200ea; + +$md-indigo =#3f51b5; +$md-indigo-50 =#e8eaf6; +$md-indigo-100 =#c5cae9; +$md-indigo-200 =#9fa8da; +$md-indigo-300 =#7986cb; +$md-indigo-400 =#5c6bc0; +$md-indigo-500 =#3f51b5; +$md-indigo-600 =#3949ab; +$md-indigo-700 =#303f9f; +$md-indigo-800 =#283593; +$md-indigo-900 =#1a237e; +$md-indigo-a100 =#8c9eff; +$md-indigo-a200 =#536dfe; +$md-indigo-a400 =#3d5afe; +$md-indigo-a700 =#304ffe; + +$md-blue =#2196f3; +$md-blue-50 =#e3f2fd; +$md-blue-100 =#bbdefb; +$md-blue-200 =#90caf9; +$md-blue-300 =#64b5f6; +$md-blue-400 =#42a5f5; +$md-blue-500 =#2196f3; +$md-blue-600 =#1e88e5; +$md-blue-700 =#1976d2; +$md-blue-800 =#1565c0; +$md-blue-900 =#0d47a1; +$md-blue-a100 =#82b1ff; +$md-blue-a200 =#448aff; +$md-blue-a400 =#2979ff; +$md-blue-a700 =#2962ff; + +$md-light-blue =#03a9f4; +$md-light-blue-50 =#e1f5fe; +$md-light-blue-100 =#b3e5fc; +$md-light-blue-200 =#81d4fa; +$md-light-blue-300 =#4fc3f7; +$md-light-blue-400 =#29b6f6; +$md-light-blue-500 =#03a9f4; +$md-light-blue-600 =#039be5; +$md-light-blue-700 =#0288d1; +$md-light-blue-800 =#0277bd; +$md-light-blue-900 =#01579b; +$md-light-blue-a100 =#80d8ff; +$md-light-blue-a200 =#40c4ff; +$md-light-blue-a400 =#00b0ff; +$md-light-blue-a700 =#0091ea; + +$md-cyan =#00bcd4; +$md-cyan-50 =#e0f7fa; +$md-cyan-100 =#b2ebf2; +$md-cyan-200 =#80deea; +$md-cyan-300 =#4dd0e1; +$md-cyan-400 =#26c6da; +$md-cyan-500 =#00bcd4; +$md-cyan-600 =#00acc1; +$md-cyan-700 =#0097a7; +$md-cyan-800 =#00838f; +$md-cyan-900 =#006064; +$md-cyan-a100 =#84ffff; +$md-cyan-a200 =#18ffff; +$md-cyan-a400 =#00e5ff; +$md-cyan-a700 =#00b8d4; + +$md-teal =#009688; +$md-teal-50 =#e0f2f1; +$md-teal-100 =#b2dfdb; +$md-teal-200 =#80cbc4; +$md-teal-300 =#4db6ac; +$md-teal-400 =#26a69a; +$md-teal-500 =#009688; +$md-teal-600 =#00897b; +$md-teal-700 =#00796b; +$md-teal-800 =#00695c; +$md-teal-900 =#004d40; +$md-teal-a100 =#a7ffeb; +$md-teal-a200 =#64ffda; +$md-teal-a400 =#1de9b6; +$md-teal-a700 =#00bfa5; + +$md-green =#4caf50; +$md-green-50 =#e8f5e9; +$md-green-100 =#c8e6c9; +$md-green-200 =#a5d6a7; +$md-green-300 =#81c784; +$md-green-400 =#66bb6a; +$md-green-500 =#4caf50; +$md-green-600 =#43a047; +$md-green-700 =#388e3c; +$md-green-800 =#2e7d32; +$md-green-900 =#1b5e20; +$md-green-a100 =#b9f6ca; +$md-green-a200 =#69f0ae; +$md-green-a400 =#00e676; +$md-green-a700 =#00c853; + +$md-light-green =#8bc34a; +$md-light-green-50 =#f1f8e9; +$md-light-green-100 =#dcedc8; +$md-light-green-200 =#c5e1a5; +$md-light-green-300 =#aed581; +$md-light-green-400 =#9ccc65; +$md-light-green-500 =#8bc34a; +$md-light-green-600 =#7cb342; +$md-light-green-700 =#689f38; +$md-light-green-800 =#558b2f; +$md-light-green-900 =#33691e; +$md-light-green-a100 =#ccff90; +$md-light-green-a200 =#b2ff59; +$md-light-green-a400 =#76ff03; +$md-light-green-a700 =#64dd17; + +$md-lime =#cddc39; +$md-lime-50 =#f9fbe7; +$md-lime-100 =#f0f4c3; +$md-lime-200 =#e6ee9c; +$md-lime-300 =#dce775; +$md-lime-400 =#d4e157; +$md-lime-500 =#cddc39; +$md-lime-600 =#c0ca33; +$md-lime-700 =#afb42b; +$md-lime-800 =#9e9d24; +$md-lime-900 =#827717; +$md-lime-a100 =#f4ff81; +$md-lime-a200 =#eeff41; +$md-lime-a400 =#c6ff00; +$md-lime-a700 =#aeea00; + +$md-yellow =#ffeb3b; +$md-yellow-50 =#fffde7; +$md-yellow-100 =#fff9c4; +$md-yellow-200 =#fff59d; +$md-yellow-300 =#fff176; +$md-yellow-400 =#ffee58; +$md-yellow-500 =#ffeb3b; +$md-yellow-600 =#fdd835; +$md-yellow-700 =#fbc02d; +$md-yellow-800 =#f9a825; +$md-yellow-900 =#f57f17; +$md-yellow-a100 =#ffff8d; +$md-yellow-a200 =#ffff00; +$md-yellow-a400 =#ffea00; +$md-yellow-a700 =#ffd600; + +$md-amber =#ffc107; +$md-amber-50 =#fff8e1; +$md-amber-100 =#ffecb3; +$md-amber-200 =#ffe082; +$md-amber-300 =#ffd54f; +$md-amber-400 =#ffca28; +$md-amber-500 =#ffc107; +$md-amber-600 =#ffb300; +$md-amber-700 =#ffa000; +$md-amber-800 =#ff8f00; +$md-amber-900 =#ff6f00; +$md-amber-a100 =#ffe57f; +$md-amber-a200 =#ffd740; +$md-amber-a400 =#ffc400; +$md-amber-a700 =#ffab00; + +$md-orange =#ff9800; +$md-orange-50 =#fff3e0; +$md-orange-100 =#ffe0b2; +$md-orange-200 =#ffcc80; +$md-orange-300 =#ffb74d; +$md-orange-400 =#ffa726; +$md-orange-500 =#ff9800; +$md-orange-600 =#fb8c00; +$md-orange-700 =#f57c00; +$md-orange-800 =#ef6c00; +$md-orange-900 =#e65100; +$md-orange-a100 =#ffd180; +$md-orange-a200 =#ffab40; +$md-orange-a400 =#ff9100; +$md-orange-a700 =#ff6d00; + +$md-deep-orange =#ff5722; +$md-deep-orange-50 =#fbe9e7; +$md-deep-orange-100 =#ffccbc; +$md-deep-orange-200 =#ffab91; +$md-deep-orange-300 =#ff8a65; +$md-deep-orange-400 =#ff7043; +$md-deep-orange-500 =#ff5722; +$md-deep-orange-600 =#f4511e; +$md-deep-orange-700 =#e64a19; +$md-deep-orange-800 =#d84315; +$md-deep-orange-900 =#bf360c; +$md-deep-orange-a100 =#ff9e80; +$md-deep-orange-a200 =#ff6e40; +$md-deep-orange-a400 =#ff3d00; +$md-deep-orange-a700 =#dd2c00; + +$md-brown =#795548; +$md-brown-50 =#efebe9; +$md-brown-100 =#d7ccc8; +$md-brown-200 =#bcaaa4; +$md-brown-300 =#a1887f; +$md-brown-400 =#8d6e63; +$md-brown-500 =#795548; +$md-brown-600 =#6d4c41; +$md-brown-700 =#5d4037; +$md-brown-800 =#4e342e; +$md-brown-900 =#3e2723; + +$md-grey =#9e9e9e; +$md-grey-50 =#fafafa; +$md-grey-100 =#f5f5f5; +$md-grey-200 =#eeeeee; +$md-grey-300 =#e0e0e0; +$md-grey-400 =#bdbdbd; +$md-grey-500 =#9e9e9e; +$md-grey-600 =#757575; +$md-grey-700 =#616161; +$md-grey-800 =#424242; +$md-grey-900 =#212121; + +$md-blue-grey =#607d8b; +$md-blue-grey-50 =#eceff1; +$md-blue-grey-100 =#cfd8dc; +$md-blue-grey-200 =#b0bec5; +$md-blue-grey-300 =#90a4ae; +$md-blue-grey-400 =#78909c; +$md-blue-grey-500 =#607d8b; +$md-blue-grey-600 =#546e7a; +$md-blue-grey-700 =#455a64; +$md-blue-grey-800 =#37474f; +$md-blue-grey-900 =#263238; + +$md-black =#000000; +$md-white =#ffffff; \ No newline at end of file diff --git a/oldMd/git-cli.md b/oldMd/git-cli.md new file mode 100644 index 0000000..d633172 --- /dev/null +++ b/oldMd/git-cli.md @@ -0,0 +1,62 @@ +Git 规范: + +``` +(): +``` + +``` +feat:新功能(feature)。 +fix/to:修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。 + fix:产生diff并自动修复此问题。适合于一次提交直接修复问题 + to:只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix +docs:文档(documentation)。 +style:格式(不影响代码运行的变动)。 +refactor:重构(即不是新增功能,也不是修改bug的代码变动)。 +perf:优化相关,比如提升性能、体验。 +test:增加测试。 +chore:构建过程或辅助工具的变动。 +revert:回滚到上一个版本。 +merge:代码合并。 +sync:同步主线或分支的Bug。 +``` + +Git 命令: + +``` +git add +git commit +git push +git log // 查看提交历史 +git reflog // 查看命令历史 +git reset --hard // 版本回退 +git reset HEAD // 从暂缓区撤销 +git checkout -- // 丢弃工作区的修改 + +git checkout -b // 创建并切换分支 +git checkout // 切换分支 +git branch // 新建本地分支 +git branch -d // 删除本地分支 +git push origin --delete // 删除远程分支 +git branch -dr // 删除本地和远程分支 +git merge // 合并到当前分支 +git cherry-pick // 将某次提交复制到分支上 +git branch --set-upstream-to=/ localBranchName // 创建本地分支与远程分支的关联 +git branch --unset-upstream // 撤销关联 +git branch -vv // 查看本地分支与远程分支关联 + +git stash // 保留现场 +git stash list // 查看现场列表 +git stash pop // 恢复现场,并删除stash内容 + +git tag // 轻量标签。为某次提交生成Tag,某次为最新一次提交。 +git tag -a -m // 附注标签。带有描述信息的tag +git show // 查看标签信息 +git push origin // 推送为远程标签 +git push origin --tags // 推送本地所有的标签 +git tag -d // 删除本地Tag +git push origin --delete tag // 删除远程Tag + +git check-ignore -v // 检查文件对应的规则 +``` + +Unix 的哲学:没有消息就是好消息。 diff --git a/oldMd/uaa/UAA-REST-API.md b/oldMd/uaa/UAA-REST-API.md new file mode 100644 index 0000000..fa4ff61 --- /dev/null +++ b/oldMd/uaa/UAA-REST-API.md @@ -0,0 +1,161 @@ +# 一、获取Admin凭证 + +xhr: [doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#with-authorization) + +客户端admin账户是UAA服务的内置账户,存在配置文件`./WEB-INF/spring/oauth-clients.xml`,有UAA服务中client、group、user的读写权限。 + +```bash +curl 'http://192.168.10.56:8080/uaa/oauth/token' -i -u 'admin:adminsecret' -X POST -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json' -d 'grant_type=client_credentials&token_format=opaque' +``` + +**参数** + +* token_format token格式化方式。opaque和jwt,前者为不透明的token + +Response + +```json +{ + "access_token": "d6eb1382943c4f819bc143c8912c655b", + "token_type": "bearer", + "expires_in": 43199, + "scope": "clients.read clients.secret clients.write uaa.admin clients.admin scim.write scim.read", + "jti": "d6eb1382943c4f819bc143c8912c655b" +} +``` + + + +**备注:** + +下面出现的${ADMIN_TOKEN}为: + +> d6eb1382943c4f819bc143c8912c655b + + + +# 二、Client API + +支持对客户端的单个、批量操作。 + +## 2.1 Create One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#create-6) + +```bash + curl 'http://192.168.10.56:8080/uaa/oauth/clients' -i -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' -d '{ "scope" : [ "clients.read", "clients.write", "openid", "profile", "resource.read", "resource.write" ], "client_id" : "bitsnav", "client_secret" : "secret", "resource_ids" : [ ], "authorized_grant_types" : [ "client_credentials" ], "authorities" : [ "clients.read", "clients.write", "openid", "profile","resource.read", "resource.write" ], "token_salt" : "cdGXbD", "autoapprove" : true, "name" : "bitsnav web client" }' +``` + +**请求头:** + +* **authorization**:值为第一步(获取Admin凭证)请求的Response的access_token + +**参数**: + +* **scope**:客户端具备的范围 +* **authorities**:创建一个客户端时,标识这个客户端能给予USER的授权范围 +* **redirect_uri**:用户在当前客户端鉴权成功后,重定向的路由 + + + +## 2.2 Delete One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#delete-6) + +```bash +curl 'http://192.168.10.56:8080/uaa/oauth/clients/bitsnav' -i -X DELETE -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' +``` + +Response: + +```json +{ + "scope": [ + "clients.read", + "clients.write", + "openid" + ], + "client_id": "bitsnav", + "resource_ids": [ + "none" + ], + "authorized_grant_types": [ + "client_credentials" + ], + "redirect_uri": [ + "https://www.baidu.com" + ], + "autoapprove": [ + "true" + ], + "authorities": [ + "clients.read", + "clients.write" + ], + "token_salt": "cdGXbD", + "name": "bitsnav web client", + "lastModified": 1617778508969, + "required_user_groups": [] +} +``` + + + +## 2.3 Update One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#update-6) + +```bash +curl 'http://localhost:8080/uaa/oauth/clients/bitsnav' -i -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' -d '{"client_id": "bitsnav", "scope" : [ "swl.test" ] }' +``` + + + +## 2.4 Retrieve One Client Info + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#retrieve-3) + +```bash +curl 'http://192.168.10.56:8080/uaa/oauth/clients/bitsnav' -i -X GET -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' +``` + +Response: + +```json +{ + "scope": [ + "clients.read", + "clients.write" + ], + "client_id": "bitsnav", + "resource_ids": [ + "none" + ], + "authorized_grant_types": [ + "client_credentials" + ], + "redirect_uri": [ + "https://www.baidu.com" + ], + "autoapprove": [ + "true" + ], + "authorities": [ + "clients.read", + "clients.write" + ], + "token_salt": "cdGXbD", + "name": "bitsnav web client", + "lastModified": 1617778508969, + "required_user_groups": [] +} +``` + +# 三、Group API + +[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#groups) + +# 四、User API + +[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#users) + diff --git "a/oldMd/uaa/UAA\346\220\255\345\273\272\346\265\201\347\250\213.md" "b/oldMd/uaa/UAA\346\220\255\345\273\272\346\265\201\347\250\213.md" new file mode 100644 index 0000000..4c4a8d9 --- /dev/null +++ "b/oldMd/uaa/UAA\346\220\255\345\273\272\346\265\201\347\250\213.md" @@ -0,0 +1,573 @@ +# UAA搭建 + +the User Account and Authentication (UAA) Server,用户账户、鉴权服务。 + +The primary role of UAA is as an OAuth2 provider, issuing tokens for client apps. + +**[OAuth defines four roles:](https://www.rfcreader.com/#rfc6749_line230)** + +* resource owner + + An entity capable of granting access to a protected resource. When the resource owner is a person, it is referred to as an end-user. + +* resource server + + The server hosting the protected resources, capable of accepting and responding to protected resource requests using access tokens. + +* client + + An application making protected resource requests on behalf of the resource owner and with its authorization. The term "client" does not imply any particular implementation characteristics (e.g., whether the application executes on a server, a desktop, or other devices). + +* authorization server + + The server issuing access tokens to the client after successfully authenticating the resource owner and obtaining authorization. + + + + + +# 一、环境 + +* 操作系统:CentOS 7 +* Java Version:[jdk-8u281-linux-i586.tar.gz](https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html#license-lightbox) +* Tomcat Version:[apache-tomcat-8.5.34.tar.gz](https://tomcat.apache.org/download-80.cgi) +* UAA WAR:[cloudfoundry-identity-uaa-4.30.0.war](https://repo1.maven.org/maven2/org/cloudfoundry/identity/cloudfoundry-identity-uaa/4.30.0/) + +cloudfoundry uaa的官方指导文档,[doc](https://docs.cloudfoundry.org/concepts/architecture/uaa.html),主要介绍uaa的能力,以及搭建方式。doc中的搭建方式需要本地编译,问题有点多。推荐使用war包部署。 + + + +# 二、部署UAA + +cloudfoudry是一个云平台,包含很多组件,这里仅使用它的UAA服务。 + +## 2.1 UAA.yml + +UAA war有默认的配置文件[uaa.yml](https://github.com/cloudfoundry/uaa/blob/develop/uaa/src/main/resources/uaa.yml),同时支持额外外部自定义配置文件。实现方式: + +### 1.UAA_CONFIG_PATH + +通过环境变量指定配置文件位置,UAA会去检查此目录下的uaa.yml文件 + +> export UAA_CONFIG_PATH=/root/.uaa + + + +### 2.yaa.yml + +**参考:** + +* [**Sysadmin-Guide.rst**](https://github.com/cloudfoundry/uaa/blob/master/docs/Sysadmin-Guide.rst) 介绍uaa.yml的部分字段含义 +* [uaa job from uaa/75.0.0](https://bosh.io/jobs/uaa?source=github.com/cloudfoundry/uaa-release&version=75.0.0) 介绍uaa.yml的字段含义,参考意义大于实用意义 + + + + + +自定义配置: + +```yml +issuer: + uri: http://localhost:8080/uaa + +encryption: + active_key_label: CHANGE-THIS-KEY + encryption_keys: + - label: CHANGE-THIS-KEY + passphrase: CHANGEME + +login: + serviceProviderKey: | + -----BEGIN RSA PRIVATE KEY----- + MIICXQIBAAKBgQDHtC5gUXxBKpEqZTLkNvFwNGnNIkggNOwOQVNbpO0WVHIivig5 + L39WqS9u0hnA+O7MCA/KlrAR4bXaeVVhwfUPYBKIpaaTWFQR5cTR1UFZJL/OF9vA + fpOwznoD66DDCnQVpbCjtDYWX+x6imxn8HCYxhMol6ZnTbSsFW6VZjFMjQIDAQAB + AoGAVOj2Yvuigi6wJD99AO2fgF64sYCm/BKkX3dFEw0vxTPIh58kiRP554Xt5ges + 7ZCqL9QpqrChUikO4kJ+nB8Uq2AvaZHbpCEUmbip06IlgdA440o0r0CPo1mgNxGu + lhiWRN43Lruzfh9qKPhleg2dvyFGQxy5Gk6KW/t8IS4x4r0CQQD/dceBA+Ndj3Xp + ubHfxqNz4GTOxndc/AXAowPGpge2zpgIc7f50t8OHhG6XhsfJ0wyQEEvodDhZPYX + kKBnXNHzAkEAyCA76vAwuxqAd3MObhiebniAU3SnPf2u4fdL1EOm92dyFs1JxyyL + gu/DsjPjx6tRtn4YAalxCzmAMXFSb1qHfwJBAM3qx3z0gGKbUEWtPHcP7BNsrnWK + vw6By7VC8bk/ffpaP2yYspS66Le9fzbFwoDzMVVUO/dELVZyBnhqSRHoXQcCQQCe + A2WL8S5o7Vn19rC0GVgu3ZJlUrwiZEVLQdlrticFPXaFrn3Md82ICww3jmURaKHS + N+l4lnMda79eSp3OMmq9AkA0p79BvYsLshUJJnvbk76pCjR28PK4dV1gSDUEqQMB + qy45ptdwJLqLJCeNoR0JUcDNIRhOCuOPND7pcMtX6hI/ + -----END RSA PRIVATE KEY----- + serviceProviderKeyPassword: password + serviceProviderCertificate: | + -----BEGIN CERTIFICATE----- + MIIDSTCCArKgAwIBAgIBADANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJhdzEO + MAwGA1UECBMFYXJ1YmExDjAMBgNVBAoTBWFydWJhMQ4wDAYDVQQHEwVhcnViYTEO + MAwGA1UECxMFYXJ1YmExDjAMBgNVBAMTBWFydWJhMR0wGwYJKoZIhvcNAQkBFg5h + cnViYUBhcnViYS5hcjAeFw0xNTExMjAyMjI2MjdaFw0xNjExMTkyMjI2MjdaMHwx + CzAJBgNVBAYTAmF3MQ4wDAYDVQQIEwVhcnViYTEOMAwGA1UEChMFYXJ1YmExDjAM + BgNVBAcTBWFydWJhMQ4wDAYDVQQLEwVhcnViYTEOMAwGA1UEAxMFYXJ1YmExHTAb + BgkqhkiG9w0BCQEWDmFydWJhQGFydWJhLmFyMIGfMA0GCSqGSIb3DQEBAQUAA4GN + ADCBiQKBgQDHtC5gUXxBKpEqZTLkNvFwNGnNIkggNOwOQVNbpO0WVHIivig5L39W + qS9u0hnA+O7MCA/KlrAR4bXaeVVhwfUPYBKIpaaTWFQR5cTR1UFZJL/OF9vAfpOw + znoD66DDCnQVpbCjtDYWX+x6imxn8HCYxhMol6ZnTbSsFW6VZjFMjQIDAQABo4Ha + MIHXMB0GA1UdDgQWBBTx0lDzjH/iOBnOSQaSEWQLx1syGDCBpwYDVR0jBIGfMIGc + gBTx0lDzjH/iOBnOSQaSEWQLx1syGKGBgKR+MHwxCzAJBgNVBAYTAmF3MQ4wDAYD + VQQIEwVhcnViYTEOMAwGA1UEChMFYXJ1YmExDjAMBgNVBAcTBWFydWJhMQ4wDAYD + VQQLEwVhcnViYTEOMAwGA1UEAxMFYXJ1YmExHTAbBgkqhkiG9w0BCQEWDmFydWJh + QGFydWJhLmFyggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAYvBJ + 0HOZbbHClXmGUjGs+GS+xC1FO/am2suCSYqNB9dyMXfOWiJ1+TLJk+o/YZt8vuxC + KdcZYgl4l/L6PxJ982SRhc83ZW2dkAZI4M0/Ud3oePe84k8jm3A7EvH5wi5hvCkK + RpuRBwn3Ei+jCRouxTbzKPsuCVB+1sNyxMTXzf0= + -----END CERTIFICATE----- + +#The secret that an external login server will use to authenticate to the uaa using the id `login` +LOGIN_SECRET: loginsecret + +spring_profiles: postgresql,default +database: + driverClassName: org.postgresql.Driver + url: jdbc:postgresql://localhost:5432/uaa + username: postgres + password: 123 + +#jwt: +# token: +# signing-key: tokenKey +jwt: + token: + signing-key: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA7FfVYQay0MEWPD5y2bRo8rKzz5ngvg7PFTZz756pKA7Q1a9b + nW5FtLQ5y2k+SFdOFKzEMdgAfyxMX2RfL9cChUJVkgagESlDrJ2U1BFEbEuTEXl5 + ZKGX5XRPt82Zk4A/gxDyAcQuqeQcDD7vWYCaQV2c1j8qsgr/ZuS1Bopq091x6VXl + iSX9P+4YZVjP1+Us5CF7iSJTwuABWCe6dEseugs8gqWYkPm6c8KzvV3m+lLFXixQ + r0UBgv552UHMZSJ+anybZB3uSpy6zRYANY8cEkIDjDK6fU8PG9/IvNP2HWScwUyf + EkFw+dBqaYtu0Jp/DfE2jDHabRbQJqsQadANXQIDAQABAoIBADXueR+x8p4WYaeP + rI+nToeLZeLKv3E/WdwCWARnFTyx3M/WOza6kieBNOsI8hB587ReFEs3ei2LA0aF + Vf9JtiaIk5RF9MLVwr6iGvMlmZKI0F+dc6kWAt52YzaTMSdqjZOwCzmB9hAIoKne + tqma4hhmb0KomWqVfeCR8gkzDtuXbXtj8Cv2tgpWNmYCq7mZCar9ZNJomhTJtWav + IdunYuruP+pOI2G6BElHGofdqFfOCLczCCSeWjD/C4D2Htc7Ee2Gj8uyHSveqaxn + CjvAuDne+Sh9+rS2RYnmI3QVHeMHFAuAVDpk6gVrs7WEQsg0kIxgSqRR2X3sruVV + aU0N4qECgYEA+9A96ViKQgW3sUXI+NWa/EHNY7tXy3g4lBrSFgnGsU4qm30xwam9 + kFjEPx2c6+HTxp1lnNYhZxJI6miNYqwMsNtaqHrkI16RoNG/9eaiNhxrOD7rnYYY + 7+5YJQmGSPDzayZktqStqOQgmoWs2vEGxM29eQv8AXDSmpVSIJa+KIUCgYEA8EW/ + VqBFbBcH2KnOSnuGEHOlhtFPaURgE1icjYzRT9GkJ1Y/pugZ6T1/SgAtKcTD8AcM + y4Lj14dNC9Y4laiwCJsof+QBnRSMJRt9F7t9GdFbbJAR6C3Rewwe+U3IpyDjWkSB + PRk3nG2TTu+y0aCPR/RsYipsbE6VgXxjwvwDVPkCgYAC1+MbE2jcPfxJACS4ypCp + cITFL4RaQ80/vt3IaevYbK2Ge+9n5GbDjn0IyWjQMQiXIYfYMYLHCynPm8ac6pxq + Es//PwP8ckDqs/Oa7zO9sKx1QiCe8ritXN+Z63WctTvKZfCVL17WnVzQ4dmFz1ro + NfqBt2TtDz0RicYXoBwdkQKBgQCnJH3kLv3cIXFN4WImIiOy0iA11uldGzmSe7P8 + LBd3ZSjCTJde7lsIC8W+nrzML5r2IJFgCR+iUPbh4xXd1kkO05Cq1tvgf+i175dn + qP9vtFna/aXXU/hDlrz9RITu7kv6AWm+LQqogPlWkhxdA0ppDblP2J8wAMK0Hunv + PAy9UQKBgQC6t/jAQd/lukod/fHozDjHmG5R+oA2L5OmNkRh95p/T2C2fpjJ2LYX + MzkjT9jKSKZOwrioiFx2yS8TMqxt63V9icH+qxy92jyXyeew2TsaIAIwfMqfuE42 + LesyFJraT+yAYN3I1815JltFyZADx66EDjkrQ7N3843+MUyvInHpzg== + -----END RSA PRIVATE KEY----- + verification-key: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7FfVYQay0MEWPD5y2bRo + 8rKzz5ngvg7PFTZz756pKA7Q1a9bnW5FtLQ5y2k+SFdOFKzEMdgAfyxMX2RfL9cC + hUJVkgagESlDrJ2U1BFEbEuTEXl5ZKGX5XRPt82Zk4A/gxDyAcQuqeQcDD7vWYCa + QV2c1j8qsgr/ZuS1Bopq091x6VXliSX9P+4YZVjP1+Us5CF7iSJTwuABWCe6dEse + ugs8gqWYkPm6c8KzvV3m+lLFXixQr0UBgv552UHMZSJ+anybZB3uSpy6zRYANY8c + EkIDjDK6fU8PG9/IvNP2HWScwUyfEkFw+dBqaYtu0Jp/DfE2jDHabRbQJqsQadAN + XQIDAQAB + -----END PUBLIC KEY----- + +smtp: + host: testmail.virtual.com + port: 25 + user: test@testmail.virtual.com + password: xxx +``` + +#### issuer + +token的分发者 + +#### login + +... + +#### database + +UAA will use an in-memory database that is torn down between runs unless you choose a spring profile or a specific database configuration as a toplevel setting in uaa.yml. An example connecting to a postgres database: + +```yaml +spring_profiles: postgresql,default +database: + driverClassName: org.postgresql.Driver + url: jdbc:postgresql://localhost:5432/uaa + username: postgres + password: 123 +``` + + + + + +#### jwt + +UAA can use either symmetric key encryption (shared secrets) or public key encryption. + +Generating new asymmetric key pairs + +```bash +# jwt.token.signing-key +openssl genrsa -out privkey.pem 2048 +# jwt.token.verification-key +openssl rsa -pubout -in privkey.pem -out pubkey.pem +``` + + + +#### smtp + +邮件服务器配置,允许通过页面注册用户,需要配置邮箱服务器。 + +```yaml +smtp: + host: testmail.virtual.com + port: 25 + user: test@testmail.virtual.com + password: xxx +``` + + + +## 2.2 Tomcat部署 + +正常tomcat部署即可。 + +浏览器访问: http://localhost:8080/uaa,有登陆界面即可 + + + +# 三、UAAC + +管理员用户的命令行管理工具,可以对client、group、user、scope进行管理。 + +**参考:** + +* [User Account and Authentication (UAA) Server](https://docs.cloudfoundry.org/concepts/architecture/uaa.html) 介绍UAA验证服务的搭建 +* [Creating and Managing Users with the UAA CLI (UAAC)](https://docs.cloudfoundry.org/uaa/uaa-user-management.html) 介绍UAAC的使用方式 +* [UAA Concepts](https://docs.cloudfoundry.org/uaa/uaa-concepts.html#overview) 介绍UAA中zone、client、group、client的部分概念 + + + + + +## 2.1 安装cf-uaac + +uaac依赖ruby环境,先安装ruby的环境,yum默认的是2.0.0版本,不可用,需要安装高版本的ruby。安装方式如下: + +**升级gcc环境** + +> yum install -y gcc gcc-c++ + + + +**scl安装** + +> yum install centos-release-scl-rh //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源 +> +> yum install rh-ruby27 -y     //直接yum安装即可 +> +> yum install rh-ruby27-ruby-devel +> +> scl enable rh-ruby27 bash    //必要一步 +> +> ruby -v    //查看安装版本 ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux] +> +> gem -v //查看安装版本 3.1.2 + + + +**cf-uaac** + +> gem install cf-uaac // 安装uaac +> +> uaac -v // 查看版本 UAA client 4.2.0 + + + +## 2.2 设置uaac指向 + +将uaac指向正在运行中的UAA服务实例 + +> uaac target http://localhost:8080/uaa + + + +## 2.3 注册client、user、group + +**./WEB-INF/spring/oauth-clients.xml** 有默认的client,其中admin具有管理员权限,可以注册、变更client、group、user信息 + +```xml + + + + + + + + +``` + +client、group、user的操作都属于管理员操作,操作前,需要验证自身具备这些权限: + +> uaac token client get admin -s adminsecret + + + +使用`uaac contexts`可以查看当前的连接信息,这部分信息默认存储在`~/.uaac.yml` + +> uaac contexts + + + +查看当前已有的client + +> uaac clients + + + +### 新建client + +UAA是一个OAuth2服务,在服务启动后,开发者必须第一时间创建一个client。 + +client采用XHR的简单验证。 + +> uaac client add webappclient -s webappclientsecret +> --name WebAppClient +> --scope resource.read,resource.write,openid,profile,email,address,phone +> --authorized_grant_types authorization_code,refresh_token,client_credentials,password +> --authorities uaa.resource +> --redirect_uri http://localhost:8081/login/oauth2/code/uaa + +* name 客户端名称 +* scope 客户端支持的权限范围。[默认scope解释](https://docs.cloudfoundry.org/concepts/architecture/uaa.html#uaa-scopes) +* authorized_grant_types 客户端支持的验证类型。参考[select-type](https://docs.cloudfoundry.org/uaa/uaa-concepts.html#select-type) +* authorities +* redirect_uri 用户验证成功后,默认的跳转路径 + +此时执行`uaac clients`可以看到新建的client WebAppClient。 + + + +### 新建用户 + +> uaac user add appuser -p appusersecret --emails appuser@acme.com + +此时执行 `uaac users -a username`可以看到新建的用户 + + + +### 新建权限组 + +UAA有默认的[权限组](https://docs.cloudfoundry.org/concepts/architecture/uaa.html#uaa-scopes),不同的权限组代表具有不能的能力。另,支持自定义权限组。 + +> uaac group add resource.read +> +> uaac group add resource.write + +此时执行`uaac groups -a displayname`可以看到新建的用户 + + + +### 关联权限组 + +> uaac member add resource.read appuser +> +> uaac member add resource.write appuser + + + +# 四、Rest API + +UAA服务提供REST API的访问,参考文档: + +* [**理解OAuth2.0**](https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html) +* [**The OAuth 2.0 Authorization Framework**](https://www.rfcreader.com/#rfc6749) +* [**UAA-APIs.rst**](https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst) +* [**UAA API DOC**](https://docs.cloudfoundry.org/api/uaa/version/74.4.0/index.html#overview) + + + +## 1. 获取Admin凭证 + +xhr: [doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#with-authorization) + +客户端admin账户是UAA服务的内置账户,存在配置文件`./WEB-INF/spring/oauth-clients.xml`,有UAA服务中client、group、user的读写权限。 + +```bash +curl 'http://localhost:8080/uaa/oauth/token' -i -u 'admin:adminsecret' -X POST -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json' -d 'grant_type=client_credentials&token_format=opaque' +``` + +**参数** + +* token_format token格式化方式。opaque和jwt,前者为不透明的token + +Response + +```json +{ + "access_token": "d6eb1382943c4f819bc143c8912c655b", + "token_type": "bearer", + "expires_in": 43199, + "scope": "clients.read clients.secret clients.write uaa.admin clients.admin scim.write scim.read", + "jti": "d6eb1382943c4f819bc143c8912c655b" +} +``` + + + +**备注:** + +下面出现的${ADMIN_TOKEN}为: + +> d6eb1382943c4f819bc143c8912c655b + + + +## 2. Client API + +支持对客户端的单个、批量操作。 + +### 2.1 Create One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#create-6) + +```bash + curl 'http://localhost:8080/uaa/oauth/clients' -i -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' -d '{ "scope" : [ "clients.read", "clients.write", "openid", "profile", "resource.read", "resource.write" ], "client_id" : "uiclient", "client_secret" : "secret", "resource_ids" : [ ], "authorized_grant_types" : [ "client_credentials" ], "authorities" : [ "clients.read", "clients.write", "openid", "profile","resource.read", "resource.write" ], "token_salt" : "cdGXbD", "autoapprove" : true, "name" : "uiclient web client" }' +``` + +**请求头:** + +* **authorization**:值为第一步(获取Admin凭证)请求的Response的access_token + +**参数**: + +* **scope**:客户端具备的范围 +* **authorities**:创建一个客户端时,标识这个客户端能给予USER的授权范围 +* **redirect_uri**:用户在当前客户端鉴权成功后,重定向的路由 + + + +### 2.2 Delete One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#delete-6) + +```bash +curl 'http://localhost:8080/uaa/oauth/clients/uiclient' -i -X DELETE -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' +``` + +Response: + +```json +{ + "scope": [ + "clients.read", + "clients.write", + "openid" + ], + "client_id": "uiclient", + "resource_ids": [ + "none" + ], + "authorized_grant_types": [ + "client_credentials" + ], + "redirect_uri": [ + "https://www.baidu.com" + ], + "autoapprove": [ + "true" + ], + "authorities": [ + "clients.read", + "clients.write" + ], + "token_salt": "cdGXbD", + "name": "uiclient web client", + "lastModified": 1617778508969, + "required_user_groups": [] +} +``` + + + +### 2.3 Update One Client + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#update-6) + +```bash +curl 'http://localhost:8080/uaa/oauth/clients/uiclient' -i -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' -d '{"client_id": "uiclient", "scope" : [ "swl.test" ] }' +``` + + + +### 2.4 Retrieve One Client Info + +xhr:[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#retrieve-3) + +```bash +curl 'http://localhost:8080/uaa/oauth/clients/uiclient' -i -X GET -H 'Authorization: Bearer ${ADMIN_TOKEN}' -H 'Accept: application/json' +``` + +Response: + +```json +{ + "scope": [ + "clients.read", + "clients.write" + ], + "client_id": "uiclient", + "resource_ids": [ + "none" + ], + "authorized_grant_types": [ + "client_credentials" + ], + "redirect_uri": [ + "https://www.baidu.com" + ], + "autoapprove": [ + "true" + ], + "authorities": [ + "clients.read", + "clients.write" + ], + "token_salt": "cdGXbD", + "name": "uiclient web client", + "lastModified": 1617778508969, + "required_user_groups": [] +} +``` + +## 3. Group API + +[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#groups) + +## 4. User API + +[doc](https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#users) + + + +# 五、uaa-client-side工具库 + +The table below describes the client-side tools and libraries UAA uses: + +| Name | Language | +| :----------------------------------------------------------- | :------- | +| [UAAC](https://github.com/cloudfoundry/cf-uaac) [CF-UAA-LIB](https://github.com/cloudfoundry/cf-uaa-lib) | Ruby | +| [Spring Security OAuth](http://projects.spring.io/spring-security-oauth/) | Java | +| [CF Java Client](https://github.com/cloudfoundry/cf-java-client) | Java | +| [UAA Javascript SDK (Singular)](https://github.com/cloudfoundry/uaa-singular) | JS | + + + + + +cleint: c5fc57d03993350ae82a + +passwd: 0d5b13ca7819f593ce37d00152756714b90a799e \ No newline at end of file diff --git a/oldMd/uaa/cloudfoundry-uaa.md b/oldMd/uaa/cloudfoundry-uaa.md new file mode 100644 index 0000000..509352d --- /dev/null +++ b/oldMd/uaa/cloudfoundry-uaa.md @@ -0,0 +1,231 @@ +# UAA + +cloudfoundry 是一个云服务平台,其中包含 UAA 模块,UAA 可以单独部署,UAA 有自身的命令行 API + +UAA 部署方式:https://docs.cloudfoundry.org/concepts/architecture/uaa.html + +官方文档提供的部署方式,需要 gradle 支持,会下载依赖,这个需要翻墙: + +\> Downloading https://services.gradle.org/distributions/gradle-6.3-bin.zip + +UAA API: https://docs.cloudfoundry.org/api/uaa/version/75.0.0/index.html#overview + +The User Account and Authentication (UAA) service is the primary authentication service on the Predix platform. It enables developers to add user authentication and authorization capabilities to their application. Application developers can obtain a UAA instance from the Predix marketplace and configure the instance to authenticate trusted users and clients for their application. UAA service offers a virtual OAuth2 server to customers to issue and validate tokens for client applications. + +## What Is UAA? + +UAA provides identity-based security for apps and APIs. It supports open standards for authentication and authorization, including: + +- OAuth +- OpenID Connect +- SAML +- LDAP +- SCIM + +The major features of UAA include: + +- User Single Sign-On (SSO) using federated identity protocols +- API security with OAuth +- User and group management +- Multi-tenancy support +- Support for **JWT** and **opaque** as a token format +- Token revocation +- Operational flexibility + - Operate and run as a [BOSH release](http://bosh.io/releases/github.com/cloudfoundry/uaa-release?all=1), which allows multi-cloud deployment capabilities + - Push as an app to CF +- Database flexibility, including support for MySQL and Postgres +- Auditing, logging, and monitoring +- Token exchange for SAML and JWT bearers +- Rest APIs for authentication, authorization, and configuration management + +## Properties[¶](https://bosh.io/jobs/uaa?source=github.com/cloudfoundry/uaa-release#properties) + +### `encryption`[¶](https://bosh.io/jobs/uaa?source=github.com/cloudfoundry/uaa-release#p%3dencryption) + +> #### `active_key_label`[¶](https://bosh.io/jobs/uaa?source=github.com/cloudfoundry/uaa-release#p%3dencryption.active_key_label) +> +> The key label of the encryption passphrase that will be used to create the key using a Key Derivation Function for encrypting new data within the UAA database. +> Example +> key-1 + +https://bosh.io/jobs/uaa?source=github.com/cloudfoundry/uaa-release + +# WAR + +java + +> 大于 1.7 小于 10 + +war 包下载 + +> https://repo1.maven.org/maven2/org/cloudfoundry/identity/cloudfoundry-identity-uaa/ + +tomcat-1.8 + +> https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz + +环境变量 + +> export UAA_CONFIG_PATH=/root/.uaa + +/root/.uaa/uaa.yml + +1.jwt 证书 + +> openssl genrsa -out signingkey.pem 2048 +> +> openssl rsa -in signingkey.pem -pubout -out verificationkey.pem + +2.uaa.yml + +默认配置:https://github.com/cloudfoundry/uaa/blob/develop/uaa/src/main/resources/uaa.yml + +参考配置:https://raw.githubusercontent.com/cloudfoundry/uaa/4.27.0/uaa/src/main/resources/required_configuration.yml + +```yml +issuer: + uri: http://localhost:8080/uaa + +encryption: + active_key_label: CHANGE-THIS-KEY + encryption_keys: + - label: CHANGE-THIS-KEY + passphrase: CHANGEME + +login: + serviceProviderKey: | + -----BEGIN RSA PRIVATE KEY----- + MIICXQIBAAKBgQDHtC5gUXxBKpEqZTLkNvFwNGnNIkggNOwOQVNbpO0WVHIivig5 + L39WqS9u0hnA+O7MCA/KlrAR4bXaeVVhwfUPYBKIpaaTWFQR5cTR1UFZJL/OF9vA + fpOwznoD66DDCnQVpbCjtDYWX+x6imxn8HCYxhMol6ZnTbSsFW6VZjFMjQIDAQAB + AoGAVOj2Yvuigi6wJD99AO2fgF64sYCm/BKkX3dFEw0vxTPIh58kiRP554Xt5ges + 7ZCqL9QpqrChUikO4kJ+nB8Uq2AvaZHbpCEUmbip06IlgdA440o0r0CPo1mgNxGu + lhiWRN43Lruzfh9qKPhleg2dvyFGQxy5Gk6KW/t8IS4x4r0CQQD/dceBA+Ndj3Xp + ubHfxqNz4GTOxndc/AXAowPGpge2zpgIc7f50t8OHhG6XhsfJ0wyQEEvodDhZPYX + kKBnXNHzAkEAyCA76vAwuxqAd3MObhiebniAU3SnPf2u4fdL1EOm92dyFs1JxyyL + gu/DsjPjx6tRtn4YAalxCzmAMXFSb1qHfwJBAM3qx3z0gGKbUEWtPHcP7BNsrnWK + vw6By7VC8bk/ffpaP2yYspS66Le9fzbFwoDzMVVUO/dELVZyBnhqSRHoXQcCQQCe + A2WL8S5o7Vn19rC0GVgu3ZJlUrwiZEVLQdlrticFPXaFrn3Md82ICww3jmURaKHS + N+l4lnMda79eSp3OMmq9AkA0p79BvYsLshUJJnvbk76pCjR28PK4dV1gSDUEqQMB + qy45ptdwJLqLJCeNoR0JUcDNIRhOCuOPND7pcMtX6hI/ + -----END RSA PRIVATE KEY----- + serviceProviderKeyPassword: password + serviceProviderCertificate: | + -----BEGIN CERTIFICATE----- + MIIDSTCCArKgAwIBAgIBADANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJhdzEO + MAwGA1UECBMFYXJ1YmExDjAMBgNVBAoTBWFydWJhMQ4wDAYDVQQHEwVhcnViYTEO + MAwGA1UECxMFYXJ1YmExDjAMBgNVBAMTBWFydWJhMR0wGwYJKoZIhvcNAQkBFg5h + cnViYUBhcnViYS5hcjAeFw0xNTExMjAyMjI2MjdaFw0xNjExMTkyMjI2MjdaMHwx + CzAJBgNVBAYTAmF3MQ4wDAYDVQQIEwVhcnViYTEOMAwGA1UEChMFYXJ1YmExDjAM + BgNVBAcTBWFydWJhMQ4wDAYDVQQLEwVhcnViYTEOMAwGA1UEAxMFYXJ1YmExHTAb + BgkqhkiG9w0BCQEWDmFydWJhQGFydWJhLmFyMIGfMA0GCSqGSIb3DQEBAQUAA4GN + ADCBiQKBgQDHtC5gUXxBKpEqZTLkNvFwNGnNIkggNOwOQVNbpO0WVHIivig5L39W + qS9u0hnA+O7MCA/KlrAR4bXaeVVhwfUPYBKIpaaTWFQR5cTR1UFZJL/OF9vAfpOw + znoD66DDCnQVpbCjtDYWX+x6imxn8HCYxhMol6ZnTbSsFW6VZjFMjQIDAQABo4Ha + MIHXMB0GA1UdDgQWBBTx0lDzjH/iOBnOSQaSEWQLx1syGDCBpwYDVR0jBIGfMIGc + gBTx0lDzjH/iOBnOSQaSEWQLx1syGKGBgKR+MHwxCzAJBgNVBAYTAmF3MQ4wDAYD + VQQIEwVhcnViYTEOMAwGA1UEChMFYXJ1YmExDjAMBgNVBAcTBWFydWJhMQ4wDAYD + VQQLEwVhcnViYTEOMAwGA1UEAxMFYXJ1YmExHTAbBgkqhkiG9w0BCQEWDmFydWJh + QGFydWJhLmFyggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAYvBJ + 0HOZbbHClXmGUjGs+GS+xC1FO/am2suCSYqNB9dyMXfOWiJ1+TLJk+o/YZt8vuxC + KdcZYgl4l/L6PxJ982SRhc83ZW2dkAZI4M0/Ud3oePe84k8jm3A7EvH5wi5hvCkK + RpuRBwn3Ei+jCRouxTbzKPsuCVB+1sNyxMTXzf0= + -----END CERTIFICATE----- + +#The secret that an external login server will use to authenticate to the uaa using the id `login` +LOGIN_SECRET: loginsecret + +#spring_profiles: postgresql,default +#database: +# driverClassName: org.postgresql.Driver +# url: jdbc:postgresql://192.168.10.110:5432/uaa +# username: postgres +# password: 123 + +#jwt: +# token: +# signing-key: tokenKey +jwt: + token: + signing-key: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA7FfVYQay0MEWPD5y2bRo8rKzz5ngvg7PFTZz756pKA7Q1a9b + nW5FtLQ5y2k+SFdOFKzEMdgAfyxMX2RfL9cChUJVkgagESlDrJ2U1BFEbEuTEXl5 + ZKGX5XRPt82Zk4A/gxDyAcQuqeQcDD7vWYCaQV2c1j8qsgr/ZuS1Bopq091x6VXl + iSX9P+4YZVjP1+Us5CF7iSJTwuABWCe6dEseugs8gqWYkPm6c8KzvV3m+lLFXixQ + r0UBgv552UHMZSJ+anybZB3uSpy6zRYANY8cEkIDjDK6fU8PG9/IvNP2HWScwUyf + EkFw+dBqaYtu0Jp/DfE2jDHabRbQJqsQadANXQIDAQABAoIBADXueR+x8p4WYaeP + rI+nToeLZeLKv3E/WdwCWARnFTyx3M/WOza6kieBNOsI8hB587ReFEs3ei2LA0aF + Vf9JtiaIk5RF9MLVwr6iGvMlmZKI0F+dc6kWAt52YzaTMSdqjZOwCzmB9hAIoKne + tqma4hhmb0KomWqVfeCR8gkzDtuXbXtj8Cv2tgpWNmYCq7mZCar9ZNJomhTJtWav + IdunYuruP+pOI2G6BElHGofdqFfOCLczCCSeWjD/C4D2Htc7Ee2Gj8uyHSveqaxn + CjvAuDne+Sh9+rS2RYnmI3QVHeMHFAuAVDpk6gVrs7WEQsg0kIxgSqRR2X3sruVV + aU0N4qECgYEA+9A96ViKQgW3sUXI+NWa/EHNY7tXy3g4lBrSFgnGsU4qm30xwam9 + kFjEPx2c6+HTxp1lnNYhZxJI6miNYqwMsNtaqHrkI16RoNG/9eaiNhxrOD7rnYYY + 7+5YJQmGSPDzayZktqStqOQgmoWs2vEGxM29eQv8AXDSmpVSIJa+KIUCgYEA8EW/ + VqBFbBcH2KnOSnuGEHOlhtFPaURgE1icjYzRT9GkJ1Y/pugZ6T1/SgAtKcTD8AcM + y4Lj14dNC9Y4laiwCJsof+QBnRSMJRt9F7t9GdFbbJAR6C3Rewwe+U3IpyDjWkSB + PRk3nG2TTu+y0aCPR/RsYipsbE6VgXxjwvwDVPkCgYAC1+MbE2jcPfxJACS4ypCp + cITFL4RaQ80/vt3IaevYbK2Ge+9n5GbDjn0IyWjQMQiXIYfYMYLHCynPm8ac6pxq + Es//PwP8ckDqs/Oa7zO9sKx1QiCe8ritXN+Z63WctTvKZfCVL17WnVzQ4dmFz1ro + NfqBt2TtDz0RicYXoBwdkQKBgQCnJH3kLv3cIXFN4WImIiOy0iA11uldGzmSe7P8 + LBd3ZSjCTJde7lsIC8W+nrzML5r2IJFgCR+iUPbh4xXd1kkO05Cq1tvgf+i175dn + qP9vtFna/aXXU/hDlrz9RITu7kv6AWm+LQqogPlWkhxdA0ppDblP2J8wAMK0Hunv + PAy9UQKBgQC6t/jAQd/lukod/fHozDjHmG5R+oA2L5OmNkRh95p/T2C2fpjJ2LYX + MzkjT9jKSKZOwrioiFx2yS8TMqxt63V9icH+qxy92jyXyeew2TsaIAIwfMqfuE42 + LesyFJraT+yAYN3I1815JltFyZADx66EDjkrQ7N3843+MUyvInHpzg== + -----END RSA PRIVATE KEY----- + verification-key: | + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7FfVYQay0MEWPD5y2bRo + 8rKzz5ngvg7PFTZz756pKA7Q1a9bnW5FtLQ5y2k+SFdOFKzEMdgAfyxMX2RfL9cC + hUJVkgagESlDrJ2U1BFEbEuTEXl5ZKGX5XRPt82Zk4A/gxDyAcQuqeQcDD7vWYCa + QV2c1j8qsgr/ZuS1Bopq091x6VXliSX9P+4YZVjP1+Us5CF7iSJTwuABWCe6dEse + ugs8gqWYkPm6c8KzvV3m+lLFXixQr0UBgv552UHMZSJ+anybZB3uSpy6zRYANY8c + EkIDjDK6fU8PG9/IvNP2HWScwUyfEkFw+dBqaYtu0Jp/DfE2jDHabRbQJqsQadAN + XQIDAQAB + -----END PUBLIC KEY----- + +oauth: + clients: + admin: + authorized-grant-types: client_credentials + scope: read,write,password + authorities: ROLE_CLIENT,ROLE_ADIN + id: admin + secret: adminclientsecret + resource-ids: clients + +smtp: + host: testmail.virtual.com + port: 25 + user: test@testmail.virtual.com + password: xxx +``` + +/etc/profile + +```bash +export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar + +export CATALINA_HOME=/usr/tomcat +export PATH=$CATALINA_HOME/bin:$PATH + +export UAA_CONFIG_PATH=/root/.uaa +``` + +# UAAC + +Cli-command line interface + +ruby 安装 + +> yum install ruby-devel.x86_64 +> +> yum install gcc + +参考 + +- https://cookbook.digitaltwin.io/section-general-software3/user-account-and-authentication-server diff --git a/oldMd/uaa/jdk&tomat.md b/oldMd/uaa/jdk&tomat.md new file mode 100644 index 0000000..a2dca07 --- /dev/null +++ b/oldMd/uaa/jdk&tomat.md @@ -0,0 +1,50 @@ +# JDK & Tomcat + +## JDK + +```csharp +//查找系统jdk +[root@host ~]# rpm -qa|grep java +java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11 +tzdata-java-2015g-1.el5 +//卸载 +[root@host ~]# rpm -e --allmatches --nodeps java-1.6.0-openjdk-1.6.0.37-1.13.9.4.el5_11 +[root@host ~]# rpm -e --allmatches --nodeps tzdata-java-2015g-1.el5 +//检查是否卸载干净 +[root@host ~]# rpm -qa|grep java +``` + +```shell +yum -y list java* +//或者 +yum search jdk +``` + +```shell +yum install -y java-1.8.0-openjdk.x86_64 +//验证完成安装 +java -version +``` + +/etc/proflie + +```bash +# +export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar +``` + +> source /etc/profile + + + +## Tomcat + + + +```bash +export CATALINA_HOME=/usr/tomcat +export PATH=$CATALINA_HOME/bin:$PATH +``` + diff --git a/oldMd/uaa/postgresql.md b/oldMd/uaa/postgresql.md new file mode 100644 index 0000000..d8b643f --- /dev/null +++ b/oldMd/uaa/postgresql.md @@ -0,0 +1,97 @@ +# PostgreSQL + +**安装** + +```bash +# Install the repository RPM: +sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm + +# Install PostgreSQL: +sudo yum install -y postgresql13-server + +# Optionally initialize the database and enable automatic start: +sudo /usr/pgsql-13/bin/postgresql-13-setup initdb +sudo systemctl enable postgresql-13 +sudo systemctl start postgresql-13 +``` + +**启动** + +```bash +# 初始化数据库 +postgresql-setup --initdb +#设置PostgreSQL服务为开机启动 +systemctl enable postgresql.service +systemctl start postgresql.service +``` + +**修改密码** + +```bash +su postgres +psql +ALTER USER postgres WITH PASSWORD 'NewPassword'; +``` + +**访问配置** + +```javascript +sudo firewall-cmd --add-port=5432/tcp --permanent +sudo firewall-cmd --reload +``` + +**IP 绑定** + +```bash +#修改配置文件 +vi /var/lib/pgsql/12/data/postgresql.conf + +#将监听地址修改为* +#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行 +listen_addresses='*' +``` + +**IP 监听** + +```bash +#修改配置文件 +vi /var/lib/pgsql/12/data/pg_hba.conf + +#在问价尾部加入 +host all all 0.0.0.0/0 md5 +``` + +**重启服务** + +```bash +#重启PostgreSQL服务 +sudo systemctl restart postgresql-12 +``` + +**数据库操作** + +```bash +#创建数据库 +CREATE DATABASE mydb; + +#查看所有数据库 +\l + +#切换当前数据库 +\c mydb + +#创建表 +CREATE TABLE test(id int,body varchar(100)); + +#查看当前数据库下所有表 +\d + +#新建用户 +CREATE USER test WITH PASSWORD 'test'; + +#赋予指定账户指定数据库所有权限 +GRANT ALL PRIVILEGES ON DATABASE mydb TO test; + +#移除指定账户指定数据库所有权限 +REVOKE ALL PRIVILEGES ON DATABASE mydb TO test +``` diff --git a/oldMd/uaa/ruby.md b/oldMd/uaa/ruby.md new file mode 100644 index 0000000..c4134f8 --- /dev/null +++ b/oldMd/uaa/ruby.md @@ -0,0 +1,19 @@ +默认镜像源版本 + +​ 2.0.0 + +Yum install -y gcc gcc-c++ + +**方法一**:**换 yum 源安装** + +~]# yum install centos-release-scl-rh     //会在/etc/yum.repos.d/目录下多出一个 CentOS-SCLo-scl-rh.repo 源 + +~]# yum install rh-ruby27 -y     //直接 yum 安装即可 + +~]# scl enable rh-ruby27 bash     //必要一步 + +~]# ruby -v     //查看安装版本 + +> 报错:mkmf.rb can't find header files for ruby at /opt/rh/rh-ruby27/root/usr/share/include/ruby.h + +yum install rh-ruby27-ruby-devel diff --git "a/oldMd/uaa/\345\244\232\347\247\237\346\210\267.md" "b/oldMd/uaa/\345\244\232\347\247\237\346\210\267.md" new file mode 100644 index 0000000..b9f8734 --- /dev/null +++ "b/oldMd/uaa/\345\244\232\347\247\237\346\210\267.md" @@ -0,0 +1,106 @@ +# 多租户方案预研 + +应对不同复杂程度的 Web 业务,如何实现多租户,使得不同组织之间的数据完全隔离。即,不同组织的人员仅能读写自身组织的数据。 + +## 一、业务场景 + +简单的 Web 业务,可能一个 WAR 包 + Tomcat + 数据库,即可部署完成。 + +稍微复杂点的,可能会在此基础上引入 Nginx、多个数据库(比如 Postgre、MongoDB、ES 等)、队列等。 + +更复杂些的,可能会支持分布式部署。即数据库服务、队列服务等各自占用一个服务器。 + +面对不同的需求,大致将多租户方案分为两类: + +- 部署类 +- 数据隔离类 + +应业务需求,准备为系统实施多租户方案,在多组织的场景下,使不同组织之间的数据实现隔离。通过预研,大体上多租户的实现方案大致可以两类: + +- 部署类 + - 虚拟机方案 +- 数据隔离类。 + - 隔离数据库 + - 数据添加组织 ID + +## 二、虚拟机方案 + +这种方案指,为每个组织独立部署一套完整的服务。同时存在一个中控系统,可以控制虚拟机的创建、删除工作。设计方案: + +这种方式下,数据天生是隔离的,无需任何额外处理。 + +### 2.1 中控系统 + +#### 2.1.1 它的职能包括: + +- 创建组织,记录一个组织的信息。 + - 创建组织的同时,需要为组织开辟服务器资源,全新部署一次完整的服务。 +- 更新组织 +- 删除组织 + - 删除组织的同时,需要删除组织占用的服务器资源。 + +#### 2.1.2 虚拟机的管理方式 + +当新建组织时,需要为组织开辟服务器资源。这里以`vSphere`为例,可以通过调用`vSphere`接口实现对虚拟机的管理,对资源执行创建、删除。 + +### 2.2 业务系统 + +通常一个完整的 Web 服务,至少包含`用户管理系统`和`信息管理系统`。 + +在这种模式下,每个组织都有自己的`用户管理系统`和`信息管理系统`。 + +### 2.3 升级问题 + +当发布新的正式版本、或者补丁版本时,可以对指定组织、或全部组织执行更新操作,操作上更加的自由化。 + +## 三、隔离数据库 + +目的是为了实现,不同组织之间的数据隔离问题。那么采用`隔离数据库`方案,不同的组织拥有自己的数据库,可能的设计方案: + +设计思路:各种服务维持一个运行实例,通过索引、连接等方式实现对不同数据的读取与写入。 + +### 3.1 业务系统 + +各组织共用一个`用户管理系统`和`信息管理信息`,同时后台的服务也是单实例的运行时进程。 + +### 3.2 数据读写 + +每个组织组织拥有自己的数据存储库,用于存储组织自身产生的数据。同时也可以有一个共享库,用于存储各组织共享的数据,比如初始化配置数据。 + +数据库的实现方式,分多种场景,以 Mysql 为例: + +针对不同的部署方式,访问不同组织的数据时,需要实现不同的连接切换方式。 + +同理,kafka、es 等服务也需要做同样处理,实现不同组织的数据访问。 + +### 3.3 升级问题 + +这种方案下,需要考虑`程序升级`与`数据升级`问题 + +**程序升级:** +因为所有组织共用的一份代码,仅需要执行一次程序升级。 + +**数据升级:** +若使用了`共享配置数据库`,则大部分场景下仅需要升级这个公共库即可,少部分情况需要升级每个组织的数据。 + +若未使用`共享配置数据库`,则需要对每个组织都执行一次数据升级。 + +## 四、数据添加组织 ID + +思路:所有的组织共用一份运行实例(业务服务实例、数据库库实例等),每一条数据都添加一个`org_id`,用于实现不同组织之间的数据隔离。设计方案: + +### 4.1 数据读写 + +根据当前访问用户的组织 ID,访问对应的组织的数据。 + +### 4.2 升级问题 + +发布新版本后,正常的业务升级即可。 + +## 五、方案对比 + +| 方案 | 优点 | 缺点 | +| --------------- | -------------------------------------------------- | ------------------------------------------------------------ | +| 虚拟机方案 | 天生实现数据隔离,不需要额外的处理; | 服务器资源开销大;升级麻烦; | +| 隔离数据库 | 数通过修改连接方式的切换,实现数据隔离,比较方便; | 需要开辟新的数据库,用户少时,不划算;升级时可能会稍微繁琐; | +| 数据添加组织 ID | 升级方案简单,几乎不要考虑组织的问题 | 业务系统的 API 需要根据组织 ID 的不同,操作不同组织的数据 | diff --git a/oldMd/vscode-plugin-rss.md b/oldMd/vscode-plugin-rss.md new file mode 100644 index 0000000..3013720 --- /dev/null +++ b/oldMd/vscode-plugin-rss.md @@ -0,0 +1,43 @@ +# rss + +VSCode-RSS is a Visual Studio Code extension that provides an embedded RSS reader. With it, you can read news and blog freely in VSCode after a long time of coding. + +## install + +插件市场检索 rss,安装插件。 + +## recommand config + +```json +"rss.accounts": { + "9308e6d0-7c89-11eb-a900-45585826a443": { + "name": "Default", + "type": "local", + "feeds": [ + "http://www.ruanyifeng.com/blog/atom.xml", + "https://www.zhangxinxu.com/wordpress/feed/", + "https://www.laozuo.org/feed", + "https://www.dongwm.com/atom.xml", + "http://www.alloyteam.com/feed/", + "https://hellogithub.com/rss", + "https://v2fy.com/feed/", + "https://blog.devtang.com/atom.xml", + "https://blog.t9t.io/atom.xml", + "https://weekly.75.team/rss", + "https://blog.csdn.net/ByteDanceTech/rss/list", + "https://tech.meituan.com/feed/", + "https://musicfe.dev/rss", + "https://aotu.io/atom.xml", + "https://linux.cn/rss.xml", + "https://fed.taobao.org/atom.xml", + "https://learnvue.co/feed/", + "https://news.vuejs.org/feed.xml" + ] + }, + "cc72a7d0-7e7d-11eb-8c15-d9a7c8411db3": { + "name": "WEB", + "type": "local", + "feeds": [] + } + }, +``` diff --git "a/oldMd/\344\270\200\344\272\233\347\275\221\347\253\231.md" "b/oldMd/\344\270\200\344\272\233\347\275\221\347\253\231.md" new file mode 100644 index 0000000..88fe157 --- /dev/null +++ "b/oldMd/\344\270\200\344\272\233\347\275\221\347\253\231.md" @@ -0,0 +1,307 @@ +## 推荐 130 个令你眼前一亮的网站,总有一个用得着 + +# **搞学习** + +- CSDN:https://www.csdn.net/ + +- TED(最优质的演讲):https://www.ted.com/ + +- 谷粉学术:https://gfsoso.99lb.net/scholar.html + +- 大学资源网:http://www.dxzy163.com/ + +- 简答题:http://www.jiandati.com/ + +- 网易公开课:https://open.163.com/ted/ + +- 网易云课堂:https://study.163.com/ + +- 中国大学 MOOC:www.icourse163.org + +- 哔哩哔哩弹幕网:www.bilibili.com + +- 我要自学网:www.51zxw.net + +- 知乎:www.zhihu.com + +- 学堂在线:www.xuetangx.com + +- 爱课程:www.icourses.cn + +- 猫咪论文:https://lunwen.im/ + +- iData(论文搜索):www.cn-ki.net + +- 文泉考试:https://www.wqkaoshi.com + +# **找书籍** + +- 书栈网(极力推荐):https://www.bookstack.cn/ + +- 码农之家(计算机电子书下载): www.xz577.com + +- 鸠摩搜书:www.jiumodiary.com + +- 云海电子图书馆:www.pdfbook.cn + +- 周读(书籍搜索):ireadweek.com + +- 知轩藏书:http://www.zxcs.me/ + +- 脚本之家电子书下载: https://www.jb51.net/books/ + +- 搜书 VIP-电子书搜索: http://www.soshuvip.com/all.html + +- 书格(在线古籍图书馆): https://new.shuge.org/ + +- caj 云阅读: http://cajviewer.cnki.net/cajcloud/ + +- 必看网(人生必看的书籍): https://www.biikan.com/ + +# **冷知识 / 黑科技** + +- 上班摸鱼必备(假装电脑系统升级):http://fakeupdate.net/ + +- PIECES 拼图(30 个 CSS 碎片进行拼图,呈现 30 种濒临灭绝的动物): http://www.species-in-pieces.com/ + +- 图片立体像素画: https://pissang.github.io/voxelize-image/ + +- 福利单词(一个不太正经的背单词网站): http://dict.ftqq.com + +- 查无此人(刷新网站,展现一张 AI 生成的人脸照片): https://thispersondoesnotexist.com/ + +- 在线制作地图图例:https://mapchart.net/ + +- 创意光线绘画:http://weavesilk.com/ + +- 星系观察:https://stellarium-web.org/ + +- 煎蛋:http://jandan.net/ + +- 渣男-说话的艺术:https://lovelive.tools/ + +- 全历史:https://www.allhistory.com/ + +- iData:https://www.cn-ki.net/ + +- 术语在线:http://www.termonline.cn/ + +# **写代码** + +- [GitHub:https://github.com/](http://mp.weixin.qq.com/s?__biz=MzI3OTU0MzI4MQ==&mid=2247509089&idx=1&sn=a7bba0d7c115e0052f94ab30cd7a9a0f&chksm=eb44c8ffdc3341e9b31c5351ce21b1267f38675e39b1477e831086094aa4188666e306d2ce1d&scene=21#wechat_redirect) + +- 码云:https://gitee.com/ + +- 源码之家:https://www.mycodes.net/ + +- JSON to Dart: https://javiercbk.github.io/json_to_dart/ + +- Json 在线解析验证: https://www.json.cn/ + +- 在线接口测试(Getman): https://getman.cn/ + +# **资源搜索** + +- [DogeDoge 搜索引擎:www.dogedoge.com](http://mp.weixin.qq.com/s?__biz=MzI3OTU0MzI4MQ==&mid=2247509062&idx=1&sn=b2ce0d1521ff1481586d48c4cfb86940&chksm=eb44c8d8dc3341ced814887f5b822f1a9a1410a8f9ba5d7ff5061b2760771ae9b6f44cf3cd24&scene=21#wechat_redirect) + +- 秘迹搜索:https://mijisou.com/ + +- 小白盘:https://www.xiaobaipan.com/ + +- 云盘精灵(资源搜索): www.yunpanjingling.com + +- 虫部落(资源搜索): www.chongbuluo.com + +- 如风搜(资源搜索): http://www.rufengso.net/ + +- 爱扒:https://www.zyboe.com/ + +# **小工具** + +- 奶牛快传(在线传输文件利器):cowtransfer.com + +- 文叔叔(大文件传输,不限速): https://www.wenshushu.cn/ + +- 云端超级应用空间(PS,PPT,Excel,Ai):https://uzer.me/ + +- 香当网(年终总结,个人简历,事迹材料,租赁合同,演讲稿): https://www.xiangdang.net/ + +- 二维码生成:https://cli.im/ + +- 搜狗翻译:fanyi.sogou.com + +- 熵数(图表制作,数据可视化): https://dydata.io/appv2/#/pages/index/home + +- 拷贝兔:https://cp.anyknew.com/ + +- 图片无限变放大:http://bigjpg.com/zh + +- 幕布(在线大纲笔记工具):mubu.com + +- 在线转换器(在线转换器转换任何测量单位):https://zh.justcnw.com/ + +- 调查问卷制作: https://www.wenjuan.com/ + +- 果核剥壳(软件下载): https://www.ghpym.com/ + +- 软件下载:https://www.unyoo.com/ + +- MSDN 我告诉你(windows10 系统镜像下载):https://msdn.itellyou.cn/ + +# **导航页(工具集)** + +- 世界各国网址大全: http://www.world68.com/ + +- 小森林导航:http://www.xsldh6.com/ + +- 简捷工具:http://www.shulijp.com/ + +- NiceTool.net 好工具网: http://www.nicetool.net/ + +- 现实君工具箱(综合型在线工具集成网站):http://tool.uixsj.cn/ + +- 蓝调网站:http://lcoc.top/ + +- 偷渡鱼:https://touduyu.com/ + +- 牛导航:http://www.ziliao6.com/ + +- 小呆导航: https://www.webjike.com/index.html + +- 简法主页:http://www.jianfast.com/ + +- KIM 主页:https://kim.plopco.com/ + +- 聚 BT:https://jubt.net/cn/index.html + +- 精准云工具合集: https://jingzhunyun.com/ + +- 兔 2 工具合集:https://www.tool2.cn/ + +- 爱资料工具(在线实用工具集合): www.toolnb.com + +- 工具导航:https://hao.logosc.cn/ + +# **看视频** + +- 阿木影视:https://www.aosk.online/ + +- 电影推荐(分类别致): http://www.mvcat.com + +- APP 影院:https://app.movie + +- 去看 TV:https://www.qukantv.net/ + +- 动漫视频网:http://www.zzzfun.com/ + +- 94 神马电影网:http://www.9rmb.com/ + +- NO 视频官网:http://www.novipnoad.com/ + +- 蓝光画质电影:http://www.languang.co/ + +- 在线看剧:http://dy.27234.cn/ + +- 大数据导航:http://hao.199it.com/ + +- 多功能图片网站: https://www.logosc.cn/so/ + +- 牛牛 TV:http://www.ziliao6.com/tv/ + +- VideoFk 解析视频: http://www.videofk.com/ + +- 蓝调网站:http://lcoc.top/vip2.3/ + +- 永久资源采集网: http://www.yongjiuzy1.com/ + +# **学设计** + +- 码力全开(产品/设计师/独立开发者的资源库):https://www.maliquankai.com/designnav/ + +- 免费音频素材:https://icons8.cn/music + +- 新 CG 儿(视频素材模板,无水印+免费下载): https://www.newcger.com/ + +- Iconfont(阿里巴巴矢量图标库): https://www.iconfont.cn/ + +- 小图标下载:https://www.easyicon.net/ + +- Flight Icon:https://www.flighticon.co/ + +- 第一字体转换器:http://www.diyiziti.com/ + +- doyoudosh(平面设计): www.doyoudo.com + +- 企业宣传视频在线制作:https://duomu.tv/ + +- MAKE 海报设计官网:http://maka.im/ + +- 一键海报神器: https://www.logosc.cn/photo/utm_source=hao.logosc.cn&utm_medium=referral + +- 字由(字体设计): http://www.hellofont.cn/ + +- 查字体网站:https://fonts.safe.360.cn/ + +- 爱给网(免费素材下载的网站,包括音效、配乐,3D、视频、游戏,平面、教程):http://www.aigei.com/ + +- 在线视频剪辑: https://bilibili.clipchamp.com/editor + +# **搞文档** + +- 即书(在线制作 PPT): https://www.keysuper.com/ + +- PDF 处理:https://smallpdf.com/cn + +- PDF 处理:https://www.ilovepdf.com/zh-cn + +- PDF 处理:https://www.pdfpai.com/ + +- PDF 处理:https://www.hipdf.cn/ + +- 图片压缩,PDF 处理: https://docsmall.com/ + +- 腾讯文档(在线协作编辑和管理文档): docs.qq.com + +- ProcessOn(在线协作制作结构图): www.processon.com + +- iLovePDF(在线转换 PDF 利器): www.ilovepdf.com + +- PPT 在线制作:https://www.woodo.cn/ + +- PDF24 工具(pdf 处理工具): https://tools.pdf24.org/en + +- IMGBOT(在线图片处理): www.imgbot.ai + +- 福昕云编辑(在线编辑 PDF): edit.foxitcloud.cn + +- TinyPNG(在线压缩图片):tinypng.com + +- UZER.ME(在线使用各种大应用,在线使用 CAD,MATLAB,Office 三件套 ​ ):uzer.me + +- 优品 PPT(模板下载): http://www.ypppt.com/ + +- 第一 PPT(模板下载): http://www.1ppt.com/xiazai/ + +- 三顿 PPT 导航:sandunppt.com + +- Excel 函数表: https://support.office.com/zh-cn/article/excel-%E5%87%BD%E6%95%B0%EF%BC%88%E6%8C%89%E5%AD%97%E6%AF%8D%E9%A1%BA%E5%BA%8F%EF%BC%89-b3944572-255d-4efb-bb96-c6d90033e188 + +# **找图片** + +- 电脑壁纸:http://lcoc.top/bizhi/ + +- https://unsplash.com/ + +- https://pixabay.com/ + +- https://www.pexels.com/ + +- https://visualhunt.com/ + +- https://www.ssyer.com/ + +- 彼岸图网:http://pic.netbian.com/ + +- 极像素(超高清大图): https://www.sigoo.com/ + +- 免费版权图片搜索: https://www.logosc.cn/so/ diff --git "a/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/warp.sh" "b/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/warp.sh" new file mode 100644 index 0000000..c362c54 --- /dev/null +++ "b/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/warp.sh" @@ -0,0 +1,1422 @@ +#!/usr/bin/env bash +# +# https://github.com/P3TERX/warp.sh +# Description: Cloudflare WARP configuration script +# System Required: Debian, Ubuntu, CentOS +# Version: beta27 +# +# MIT License +# +# Copyright (c) 2021 P3TERX +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +shVersion='beta27' + +FontColor_Red="\033[31m" +FontColor_Red_Bold="\033[1;31m" +FontColor_Green="\033[32m" +FontColor_Green_Bold="\033[1;32m" +FontColor_Yellow="\033[33m" +FontColor_Yellow_Bold="\033[1;33m" +FontColor_Purple="\033[35m" +FontColor_Purple_Bold="\033[1;35m" +FontColor_Suffix="\033[0m" + +log() { + local LEVEL="$1" + local MSG="$2" + case "${LEVEL}" in + INFO) + local LEVEL="[${FontColor_Green}${LEVEL}${FontColor_Suffix}]" + local MSG="${LEVEL} ${MSG}" + ;; + WARN) + local LEVEL="[${FontColor_Yellow}${LEVEL}${FontColor_Suffix}]" + local MSG="${LEVEL} ${MSG}" + ;; + ERROR) + local LEVEL="[${FontColor_Red}${LEVEL}${FontColor_Suffix}]" + local MSG="${LEVEL} ${MSG}" + ;; + *) ;; + esac + echo -e "${MSG}" +} + +if [[ $(uname -s) != Linux ]]; then + log ERROR "This operating system is not supported." + exit 1 +fi + +if [[ $(id -u) != 0 ]]; then + log ERROR "This script must be run as root." + exit 1 +fi + +if [[ -z $(command -v curl) ]]; then + log ERROR "cURL is not installed." + exit 1 +fi + +WGCF_Profile='wgcf-profile.conf' +WGCF_ProfileDir="${HOME}/.wgcf" +WGCF_ProfilePath="${WGCF_ProfileDir}/${WGCF_Profile}" + +WireGuard_Interface='wgcf' +WireGuard_ConfPath="/etc/wireguard/${WireGuard_Interface}.conf" + +WireGuard_Interface_DNS_IPv4='8.8.8.8,8.8.4.4' +WireGuard_Interface_DNS_IPv6='2001:4860:4860::8888,2001:4860:4860::8844' +WireGuard_Interface_DNS_46="${WireGuard_Interface_DNS_IPv4},${WireGuard_Interface_DNS_IPv6}" +WireGuard_Interface_DNS_64="${WireGuard_Interface_DNS_IPv6},${WireGuard_Interface_DNS_IPv4}" +WireGuard_Interface_Rule_table='51888' +WireGuard_Interface_Rule_fwmark='51888' +WireGuard_Interface_MTU='1280' + +WireGuard_Peer_Endpoint_IP4='162.159.192.1' +WireGuard_Peer_Endpoint_IP6='2606:4700:d0::a29f:c001' +WireGuard_Peer_Endpoint_IPv4="${WireGuard_Peer_Endpoint_IP4}:2408" +WireGuard_Peer_Endpoint_IPv6="[${WireGuard_Peer_Endpoint_IP6}]:2408" +WireGuard_Peer_Endpoint_Domain='engage.cloudflareclient.com:2408' +WireGuard_Peer_AllowedIPs_IPv4='0.0.0.0/0' +WireGuard_Peer_AllowedIPs_IPv6='::/0' +WireGuard_Peer_AllowedIPs_DualStack='0.0.0.0/0,::/0' + +TestIPv4_1='1.0.0.1' +TestIPv4_2='9.9.9.9' +TestIPv6_1='2606:4700:4700::1001' +TestIPv6_2='2620:fe::fe' +CF_Trace_URL='https://www.cloudflare.com/cdn-cgi/trace' + +Get_System_Info() { + source /etc/os-release + SysInfo_OS_Ver_major="$(echo ${VERSION_ID} | cut -d. -f1)" + SysInfo_OS_CodeName="${VERSION_CODENAME}" + SysInfo_OS_Name_lowercase="${ID}" + SysInfo_OS_Name_Full="${PRETTY_NAME}" + SysInfo_RelatedOS="${ID_LIKE}" + SysInfo_Kernel="$(uname -r)" + SysInfo_Kernel_Ver_major="$(uname -r | awk -F . '{print $1}')" + SysInfo_Kernel_Ver_minor="$(uname -r | awk -F . '{print $2}')" + SysInfo_Arch="$(uname -m)" + SysInfo_Virt="$(systemd-detect-virt)" +} + +Print_System_Info() { + echo -e " +System Information +--------------------------------------------------- + Operating System: ${SysInfo_OS_Name_Full} + Linux Kernel: ${SysInfo_Kernel} + Architecture: ${SysInfo_Arch} + Virtualization: ${SysInfo_Virt} +--------------------------------------------------- +" +} + +Install_Requirements_Debian() { + if [[ ! $(command -v gpg) ]]; then + apt update + apt install gnupg -y + fi + if [[ ! $(apt list 2>/dev/null | grep apt-transport-https | grep installed) ]]; then + apt update + apt install apt-transport-https -y + fi +} + +Install_WARP_Client_Debian() { + if [[ ${SysInfo_OS_Name_lowercase} = ubuntu ]]; then + OS_CodeName='focal' + elif [[ ${SysInfo_OS_Name_lowercase} = debian ]]; then + case ${SysInfo_OS_Ver_major} in + 10 | 11) + OS_CodeName='buster' + ;; + *) + log ERROR "This operating system is not supported." + exit 1 + ;; + esac + elif [[ ${SysInfo_RelatedOS} = *debian* ]]; then + OS_CodeName='buster' + else + OS_CodeName="${SysInfo_OS_CodeName}" + fi + Install_Requirements_Debian + curl https://pkg.cloudflareclient.com/pubkey.gpg | apt-key add - + echo "deb http://pkg.cloudflareclient.com/ ${OS_CodeName} main" | tee /etc/apt/sources.list.d/cloudflare-client.list + apt update + apt install cloudflare-warp -y +} + +Install_WARP_Client_CentOS() { + if [[ ${SysInfo_OS_Ver_major} = 8 ]]; then + rpm -ivh http://pkg.cloudflareclient.com/cloudflare-release-el8.rpm + yum install cloudflare-warp -y + else + log ERROR "This operating system is not supported." + exit 1 + fi +} + +Check_WARP_Client() { + WARP_Client_Status=$(systemctl is-active warp-svc) + WARP_Client_SelfStart=$(systemctl is-enabled warp-svc 2>/dev/null) +} + +Install_WARP_Client() { + Print_System_Info + log INFO "Installing Cloudflare WARP Client..." + if [[ ${SysInfo_Arch} != x86_64 ]]; then + log ERROR "This CPU architecture is not supported: ${SysInfo_Arch}" + exit 1 + fi + case ${SysInfo_OS_Name_lowercase} in + *debian* | *ubuntu*) + Install_WARP_Client_Debian + ;; + *centos* | *rhel*) + Install_WARP_Client_CentOS + ;; + *) + if [[ ${SysInfo_RelatedOS} = *debian* ]]; then + Install_WARP_Client_Debian + elif [[ ${SysInfo_RelatedOS} = *rhel* ]]; then + Install_WARP_Client_CentOS + else + log ERROR "This operating system is not supported." + exit 1 + fi + ;; + esac + Check_WARP_Client + if [[ ${WARP_Client_Status} = active ]]; then + log INFO "Cloudflare WARP Client installed successfully!" + else + log ERROR "warp-svc failure to run!" + journalctl -u warp-svc --no-pager + exit 1 + fi +} + +Uninstall_WARP_Client() { + log INFO "Uninstalling Cloudflare WARP Client..." + case ${SysInfo_OS_Name_lowercase} in + *debian* | *ubuntu*) + apt purge cloudflare-warp -y + rm -f /etc/apt/sources.list.d/cloudflare-client.list + ;; + *centos* | *rhel*) + yum remove cloudflare-warp -y + ;; + *) + if [[ ${SysInfo_RelatedOS} = *rhel* ]]; then + yum remove cloudflare-warp -y + else + log ERROR "This operating system is not supported." + exit 1 + fi + ;; + esac +} + +Restart_WARP_Client() { + log INFO "Restarting Cloudflare WARP Client..." + systemctl restart warp-svc + Check_WARP_Client + if [[ ${WARP_Client_Status} = active ]]; then + log INFO "Cloudflare WARP Client has been restarted." + else + log ERROR "Cloudflare WARP Client failure to run!" + journalctl -u warp-svc --no-pager + exit 1 + fi +} + +Init_WARP_Client() { + Check_WARP_Client + if [[ ${WARP_Client_SelfStart} != enabled || ${WARP_Client_Status} != active ]]; then + Install_WARP_Client + fi + if [[ $(warp-cli --accept-tos account) = *Missing* ]]; then + log INFO "Cloudflare WARP Account Registration in progress..." + warp-cli --accept-tos register + fi +} + +Connect_WARP() { + log INFO "Connecting to WARP..." + warp-cli --accept-tos connect + log INFO "Enable WARP Always-On..." + warp-cli --accept-tos enable-always-on +} + +Disconnect_WARP() { + log INFO "Disable WARP Always-On..." + warp-cli --accept-tos disable-always-on + log INFO "Disconnect from WARP..." + warp-cli --accept-tos disconnect +} + +Set_WARP_Mode_Proxy() { + log INFO "Setting up WARP Proxy Mode..." + warp-cli --accept-tos set-mode proxy +} + +Enable_WARP_Client_Proxy() { + Init_WARP_Client + Set_WARP_Mode_Proxy + Connect_WARP + Print_WARP_Client_Status +} + +Get_WARP_Proxy_Port() { + WARP_Proxy_Port='40000' +} + +Print_Delimiter() { + printf '=%.0s' $(seq $(tput cols)) + echo +} + +Install_wgcf() { + curl -fsSL git.io/wgcf.sh | bash +} + +Uninstall_wgcf() { + rm -f /usr/local/bin/wgcf +} + +Register_WARP_Account() { + while [[ ! -f wgcf-account.toml ]]; do + Install_wgcf + log INFO "Cloudflare WARP Account registration in progress..." + yes | wgcf register + sleep 5 + done +} + +Generate_WGCF_Profile() { + while [[ ! -f ${WGCF_Profile} ]]; do + Register_WARP_Account + log INFO "WARP WireGuard profile (wgcf-profile.conf) generation in progress..." + wgcf generate + done + Uninstall_wgcf +} + +Backup_WGCF_Profile() { + mkdir -p ${WGCF_ProfileDir} + mv -f wgcf* ${WGCF_ProfileDir} +} + +Read_WGCF_Profile() { + WireGuard_Interface_PrivateKey=$(cat ${WGCF_ProfilePath} | grep ^PrivateKey | cut -d= -f2- | awk '$1=$1') + WireGuard_Interface_Address=$(cat ${WGCF_ProfilePath} | grep ^Address | cut -d= -f2- | awk '$1=$1' | sed ":a;N;s/\n/,/g;ta") + WireGuard_Peer_PublicKey=$(cat ${WGCF_ProfilePath} | grep ^PublicKey | cut -d= -f2- | awk '$1=$1') + WireGuard_Interface_Address_IPv4=$(echo ${WireGuard_Interface_Address} | cut -d, -f1 | cut -d'/' -f1) + WireGuard_Interface_Address_IPv6=$(echo ${WireGuard_Interface_Address} | cut -d, -f2 | cut -d'/' -f1) +} + +Load_WGCF_Profile() { + if [[ -f ${WGCF_Profile} ]]; then + Backup_WGCF_Profile + Read_WGCF_Profile + elif [[ -f ${WGCF_ProfilePath} ]]; then + Read_WGCF_Profile + else + Generate_WGCF_Profile + Backup_WGCF_Profile + Read_WGCF_Profile + fi +} + +Install_WireGuardTools_Debian() { + case ${SysInfo_OS_Ver_major} in + 10) + if [[ -z $(grep "^deb.*buster-backports.*main" /etc/apt/sources.list{,.d/*}) ]]; then + echo "deb http://deb.debian.org/debian buster-backports main" | tee /etc/apt/sources.list.d/backports.list + fi + ;; + 9) + if [[ -z $(grep "^deb.*unstable.*main" /etc/apt/sources.list{,.d/*}) ]]; then + echo "deb http://deb.debian.org/debian/ unstable main" | tee /etc/apt/sources.list.d/unstable.list + echo -e "Package: *\nPin: release a=unstable\nPin-Priority: 150\n" | tee /etc/apt/preferences.d/limit-unstable + fi + ;; + *) + if [[ ${SysInfo_OS_Ver_major} -lt 9 ]]; then + log ERROR "This operating system is not supported." + exit 1 + fi + ;; + esac + apt update + apt install iproute2 openresolv -y + apt install wireguard-tools --no-install-recommends -y +} + +Install_WireGuardTools_Ubuntu() { + apt update + apt install iproute2 openresolv -y + apt install wireguard-tools --no-install-recommends -y +} + +Install_WireGuardTools_CentOS() { + yum install epel-release -y + yum install iproute wireguard-tools -y +} + +Install_WireGuardTools_Fedora() { + dnf install iproute openresolv wireguard-tools -y + chmod +x /usr/sbin/resolvconf.openresolv +} + +Install_WireGuardTools_Arch() { + pacman -Sy iproute2 openresolv wireguard-tools --noconfirm +} + +Install_WireGuardTools() { + log INFO "Installing wireguard-tools..." + case ${SysInfo_OS_Name_lowercase} in + *debian*) + Install_WireGuardTools_Debian + ;; + *ubuntu*) + Install_WireGuardTools_Ubuntu + ;; + *centos* | *rhel*) + Install_WireGuardTools_CentOS + ;; + *fedora*) + Install_WireGuardTools_Fedora + ;; + *arch*) + Install_WireGuardTools_Arch + ;; + *) + if [[ ${SysInfo_RelatedOS} = *rhel* ]]; then + Install_WireGuardTools_CentOS + else + log ERROR "This operating system is not supported." + exit 1 + fi + ;; + esac +} + +Install_WireGuardGo() { + case ${SysInfo_Virt} in + openvz | lxc*) + curl -fsSL git.io/wireguard-go.sh | bash + ;; + *) + if [[ ${SysInfo_Kernel_Ver_major} -lt 5 || ${SysInfo_Kernel_Ver_minor} -lt 6 ]]; then + curl -fsSL git.io/wireguard-go.sh | bash + fi + ;; + esac +} + +Check_WireGuard() { + WireGuard_Status=$(systemctl is-active wg-quick@${WireGuard_Interface}) + WireGuard_SelfStart=$(systemctl is-enabled wg-quick@${WireGuard_Interface} 2>/dev/null) +} + +Install_WireGuard() { + Print_System_Info + Check_WireGuard + if [[ ${WireGuard_SelfStart} != enabled || ${WireGuard_Status} != active ]]; then + Install_WireGuardTools + Install_WireGuardGo + fi +} + +Start_WireGuard() { + Check_WARP_Client + log INFO "Starting WireGuard..." + if [[ ${WARP_Client_Status} = active ]]; then + systemctl stop warp-svc + systemctl enable wg-quick@${WireGuard_Interface} --now + systemctl start warp-svc + else + systemctl enable wg-quick@${WireGuard_Interface} --now + fi + Check_WireGuard + if [[ ${WireGuard_Status} = active ]]; then + log INFO "WireGuard is running." + else + log ERROR "WireGuard failure to run!" + journalctl -u wg-quick@${WireGuard_Interface} --no-pager + exit 1 + fi +} + +Restart_WireGuard() { + Check_WARP_Client + log INFO "Restarting WireGuard..." + if [[ ${WARP_Client_Status} = active ]]; then + systemctl stop warp-svc + systemctl restart wg-quick@${WireGuard_Interface} + systemctl start warp-svc + else + systemctl restart wg-quick@${WireGuard_Interface} + fi + Check_WireGuard + if [[ ${WireGuard_Status} = active ]]; then + log INFO "WireGuard has been restarted." + else + log ERROR "WireGuard failure to run!" + journalctl -u wg-quick@${WireGuard_Interface} --no-pager + exit 1 + fi +} + +Enable_IPv6_Support() { + if [[ $(sysctl -a | grep 'disable_ipv6.*=.*1') || $(cat /etc/sysctl.{conf,d/*} | grep 'disable_ipv6.*=.*1') ]]; then + sed -i '/disable_ipv6/d' /etc/sysctl.{conf,d/*} + echo 'net.ipv6.conf.all.disable_ipv6 = 0' >/etc/sysctl.d/ipv6.conf + sysctl -w net.ipv6.conf.all.disable_ipv6=0 + fi +} + +Enable_WireGuard() { + Enable_IPv6_Support + Check_WireGuard + if [[ ${WireGuard_SelfStart} = enabled ]]; then + Restart_WireGuard + else + Start_WireGuard + fi +} + +Stop_WireGuard() { + Check_WARP_Client + if [[ ${WireGuard_Status} = active ]]; then + log INFO "Stoping WireGuard..." + if [[ ${WARP_Client_Status} = active ]]; then + systemctl stop warp-svc + systemctl stop wg-quick@${WireGuard_Interface} + systemctl start warp-svc + else + systemctl stop wg-quick@${WireGuard_Interface} + fi + Check_WireGuard + if [[ ${WireGuard_Status} != active ]]; then + log INFO "WireGuard has been stopped." + else + log ERROR "WireGuard stop failure!" + fi + else + log INFO "WireGuard is stopped." + fi +} + +Disable_WireGuard() { + Check_WARP_Client + Check_WireGuard + if [[ ${WireGuard_SelfStart} = enabled || ${WireGuard_Status} = active ]]; then + log INFO "Disabling WireGuard..." + if [[ ${WARP_Client_Status} = active ]]; then + systemctl stop warp-svc + systemctl disable wg-quick@${WireGuard_Interface} --now + systemctl start warp-svc + else + systemctl disable wg-quick@${WireGuard_Interface} --now + fi + Check_WireGuard + if [[ ${WireGuard_SelfStart} != enabled && ${WireGuard_Status} != active ]]; then + log INFO "WireGuard has been disabled." + else + log ERROR "WireGuard disable failure!" + fi + else + log INFO "WireGuard is disabled." + fi +} + +Print_WireGuard_Log() { + journalctl -u wg-quick@${WireGuard_Interface} -f +} + +Check_Network_Status_IPv4() { + if ping -c1 -W1 ${TestIPv4_1} >/dev/null 2>&1 || ping -c1 -W1 ${TestIPv4_2} >/dev/null 2>&1; then + IPv4Status='on' + else + IPv4Status='off' + fi +} + +Check_Network_Status_IPv6() { + if ping6 -c1 -W1 ${TestIPv6_1} >/dev/null 2>&1 || ping6 -c1 -W1 ${TestIPv6_2} >/dev/null 2>&1; then + IPv6Status='on' + else + IPv6Status='off' + fi +} + +Check_Network_Status() { + Disable_WireGuard + Check_Network_Status_IPv4 + Check_Network_Status_IPv6 +} + +Check_IPv4_addr() { + IPv4_addr=$( + ip route get ${TestIPv4_1} 2>/dev/null | grep -oP 'src \K\S+' || + ip route get ${TestIPv4_2} 2>/dev/null | grep -oP 'src \K\S+' + ) +} + +Check_IPv6_addr() { + IPv6_addr=$( + ip route get ${TestIPv6_1} 2>/dev/null | grep -oP 'src \K\S+' || + ip route get ${TestIPv6_2} 2>/dev/null | grep -oP 'src \K\S+' + ) +} + +Get_IP_addr() { + Check_Network_Status + if [[ ${IPv4Status} = on ]]; then + log INFO "Getting the network interface IPv4 address..." + Check_IPv4_addr + if [[ ${IPv4_addr} ]]; then + log INFO "IPv4 Address: ${IPv4_addr}" + else + log WARN "Network interface IPv4 address not obtained." + fi + fi + if [[ ${IPv6Status} = on ]]; then + log INFO "Getting the network interface IPv6 address..." + Check_IPv6_addr + if [[ ${IPv6_addr} ]]; then + log INFO "IPv6 Address: ${IPv6_addr}" + else + log WARN "Network interface IPv6 address not obtained." + fi + fi +} + +Get_IPv4_addr() { + log INFO "正在检测 IPv4 地址..." + Check_IPv4_addr + if [[ -z ${IPv4_addr} ]]; then + log ERROR "IPv4 地址自动检测失败!" + Input_IPv4_addr + else + log INFO "检测到 IPv4 地址:${FontColor_Purple}${IPv4_addr}${FontColor_Suffix}" + unset answer_YN + read -p "是否需要修改?[y/N] " answer_YN + case ${answer_YN:-n} in + Y | y) + Input_IPv4_addr + ;; + N | n) + echo + ;; + *) + log ERROR "无效输入!" + Get_IPv4_addr + ;; + esac + fi +} + +Get_IPv6_addr() { + log INFO "正在检测 IPv6 地址..." + Check_IPv6_addr + if [[ -z ${IPv6_addr} ]]; then + log ERROR "IPv6 地址自动检测失败!" + Input_IPv6_addr + else + log INFO "检测到 IPv6 地址:${FontColor_Purple}${IPv6_addr}${FontColor_Suffix}" + unset answer_YN + read -p "是否需要修改?[y/N] " answer_YN + case ${answer_YN:-n} in + Y | y) + Input_IPv6_addr + ;; + N | n) + echo + ;; + *) + log ERROR "无效输入!" + Get_IPv6_addr + ;; + esac + fi +} + +Input_IPv4_addr() { + read -p "请输入 IPv4 地址:" IPv4_addr + if [[ -z ${IPv4_addr} ]]; then + log ERROR "无效输入!" + Get_IPv4_addr + fi +} + +Input_IPv6_addr() { + read -p "请输入 IPv6 地址:" IPv6_addr + if [[ -z ${IPv6_addr} ]]; then + log ERROR "无效输入!" + Get_IPv6_addr + fi +} + +Get_WireGuard_Interface_MTU() { + log INFO "Getting the best MTU value for WireGuard..." + MTU_Preset=1500 + MTU_Increment=10 + if [[ ${IPv4Status} = off && ${IPv6Status} = on ]]; then + CMD_ping='ping6' + MTU_TestIP_1="${TestIPv6_1}" + MTU_TestIP_2="${TestIPv6_2}" + else + CMD_ping='ping' + MTU_TestIP_1="${TestIPv4_1}" + MTU_TestIP_2="${TestIPv4_2}" + fi + while true; do + if ${CMD_ping} -c1 -W1 -s$((${MTU_Preset} - 28)) -Mdo ${MTU_TestIP_1} >/dev/null 2>&1 || ${CMD_ping} -c1 -W1 -s$((${MTU_Preset} - 28)) -Mdo ${MTU_TestIP_2} >/dev/null 2>&1; then + MTU_Increment=1 + MTU_Preset=$((${MTU_Preset} + ${MTU_Increment})) + else + MTU_Preset=$((${MTU_Preset} - ${MTU_Increment})) + if [[ ${MTU_Increment} = 1 ]]; then + break + fi + fi + if [[ ${MTU_Preset} -le 1360 ]]; then + log WARN "MTU is set to the lowest value." + MTU_Preset='1360' + break + fi + done + WireGuard_Interface_MTU=$((${MTU_Preset} - 80)) + log INFO "WireGuard MTU: ${WireGuard_Interface_MTU}" +} + +Generate_WireGuardProfile_Interface() { + Get_WireGuard_Interface_MTU + log INFO "WireGuard profile (${WireGuard_ConfPath}) generation in progress..." + cat <${WireGuard_ConfPath} +# Generated by P3TERX/warp.sh +# Visit https://github.com/P3TERX/warp.sh for more information + +[Interface] +PrivateKey = ${WireGuard_Interface_PrivateKey} +Address = ${WireGuard_Interface_Address} +DNS = ${WireGuard_Interface_DNS} +MTU = ${WireGuard_Interface_MTU} +EOF +} + +Generate_WireGuardProfile_Interface_Rule_TableOff() { + cat <>${WireGuard_ConfPath} +Table = off +EOF +} + +Generate_WireGuardProfile_Interface_Rule_IPv4_nonGlobal() { + cat <>${WireGuard_ConfPath} +PostUP = ip -4 route add default dev ${WireGuard_Interface} table ${WireGuard_Interface_Rule_table} +PostUP = ip -4 rule add from ${WireGuard_Interface_Address_IPv4} lookup ${WireGuard_Interface_Rule_table} +PostDown = ip -4 rule delete from ${WireGuard_Interface_Address_IPv4} lookup ${WireGuard_Interface_Rule_table} +PostUP = ip -4 rule add fwmark ${WireGuard_Interface_Rule_fwmark} lookup ${WireGuard_Interface_Rule_table} +PostDown = ip -4 rule delete fwmark ${WireGuard_Interface_Rule_fwmark} lookup ${WireGuard_Interface_Rule_table} +PostUP = ip -4 rule add table main suppress_prefixlength 0 +PostDown = ip -4 rule delete table main suppress_prefixlength 0 +EOF +} + +Generate_WireGuardProfile_Interface_Rule_IPv6_nonGlobal() { + cat <>${WireGuard_ConfPath} +PostUP = ip -6 route add default dev ${WireGuard_Interface} table ${WireGuard_Interface_Rule_table} +PostUP = ip -6 rule add from ${WireGuard_Interface_Address_IPv6} lookup ${WireGuard_Interface_Rule_table} +PostDown = ip -6 rule delete from ${WireGuard_Interface_Address_IPv6} lookup ${WireGuard_Interface_Rule_table} +PostUP = ip -6 rule add fwmark ${WireGuard_Interface_Rule_fwmark} lookup ${WireGuard_Interface_Rule_table} +PostDown = ip -6 rule delete fwmark ${WireGuard_Interface_Rule_fwmark} lookup ${WireGuard_Interface_Rule_table} +PostUP = ip -6 rule add table main suppress_prefixlength 0 +PostDown = ip -6 rule delete table main suppress_prefixlength 0 +EOF +} + +Generate_WireGuardProfile_Interface_Rule_DualStack_nonGlobal() { + Generate_WireGuardProfile_Interface_Rule_TableOff + Generate_WireGuardProfile_Interface_Rule_IPv4_nonGlobal + Generate_WireGuardProfile_Interface_Rule_IPv6_nonGlobal +} + +Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP() { + cat <>${WireGuard_ConfPath} +PostUp = ip -4 rule add from ${IPv4_addr} lookup main prio 18 +PostDown = ip -4 rule delete from ${IPv4_addr} lookup main prio 18 +EOF +} + +Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP() { + cat <>${WireGuard_ConfPath} +PostUp = ip -6 rule add from ${IPv6_addr} lookup main prio 18 +PostDown = ip -6 rule delete from ${IPv6_addr} lookup main prio 18 +EOF +} + +Generate_WireGuardProfile_Peer() { + cat <>${WireGuard_ConfPath} + +[Peer] +PublicKey = ${WireGuard_Peer_PublicKey} +AllowedIPs = ${WireGuard_Peer_AllowedIPs} +Endpoint = ${WireGuard_Peer_Endpoint} +EOF +} + +Check_WARP_Client_Status() { + Check_WARP_Client + case ${WARP_Client_Status} in + active) + WARP_Client_Status_en="${FontColor_Green}Running${FontColor_Suffix}" + WARP_Client_Status_zh="${FontColor_Green}运行中${FontColor_Suffix}" + ;; + *) + WARP_Client_Status_en="${FontColor_Red}Stopped${FontColor_Suffix}" + WARP_Client_Status_zh="${FontColor_Red}未运行${FontColor_Suffix}" + ;; + esac +} + +Check_WARP_Proxy_Status() { + Check_WARP_Client + if [[ ${WARP_Client_Status} = active ]]; then + Get_WARP_Proxy_Port + WARP_Proxy_Status=$(curl -sx "socks5h://127.0.0.1:${WARP_Proxy_Port}" ${CF_Trace_URL} --connect-timeout 2 | grep warp | cut -d= -f2) + else + unset WARP_Proxy_Status + fi + case ${WARP_Proxy_Status} in + on) + WARP_Proxy_Status_en="${FontColor_Green}${WARP_Proxy_Port}${FontColor_Suffix}" + WARP_Proxy_Status_zh="${WARP_Proxy_Status_en}" + ;; + plus) + WARP_Proxy_Status_en="${FontColor_Green}${WARP_Proxy_Port}(WARP+)${FontColor_Suffix}" + WARP_Proxy_Status_zh="${WARP_Proxy_Status_en}" + ;; + *) + WARP_Proxy_Status_en="${FontColor_Red}Off${FontColor_Suffix}" + WARP_Proxy_Status_zh="${FontColor_Red}未开启${FontColor_Suffix}" + ;; + esac +} + +Check_WireGuard_Status() { + Check_WireGuard + case ${WireGuard_Status} in + active) + WireGuard_Status_en="${FontColor_Green}Running${FontColor_Suffix}" + WireGuard_Status_zh="${FontColor_Green}运行中${FontColor_Suffix}" + ;; + *) + WireGuard_Status_en="${FontColor_Red}Stopped${FontColor_Suffix}" + WireGuard_Status_zh="${FontColor_Red}未运行${FontColor_Suffix}" + ;; + esac +} + +Check_WARP_WireGuard_Status() { + Check_Network_Status_IPv4 + if [[ ${IPv4Status} = on ]]; then + WARP_IPv4_Status=$(curl -s4 ${CF_Trace_URL} --connect-timeout 2 | grep warp | cut -d= -f2) + else + unset WARP_IPv4_Status + fi + case ${WARP_IPv4_Status} in + on) + WARP_IPv4_Status_en="${FontColor_Green}WARP${FontColor_Suffix}" + WARP_IPv4_Status_zh="${WARP_IPv4_Status_en}" + ;; + plus) + WARP_IPv4_Status_en="${FontColor_Green}WARP+${FontColor_Suffix}" + WARP_IPv4_Status_zh="${WARP_IPv4_Status_en}" + ;; + off) + WARP_IPv4_Status_en="Normal" + WARP_IPv4_Status_zh="正常" + ;; + *) + Check_Network_Status_IPv4 + if [[ ${IPv4Status} = on ]]; then + WARP_IPv4_Status_en="Normal" + WARP_IPv4_Status_zh="正常" + else + WARP_IPv4_Status_en="${FontColor_Red}Unconnected${FontColor_Suffix}" + WARP_IPv4_Status_zh="${FontColor_Red}未连接${FontColor_Suffix}" + fi + ;; + esac + Check_Network_Status_IPv6 + if [[ ${IPv6Status} = on ]]; then + WARP_IPv6_Status=$(curl -s6 ${CF_Trace_URL} --connect-timeout 2 | grep warp | cut -d= -f2) + else + unset WARP_IPv6_Status + fi + case ${WARP_IPv6_Status} in + on) + WARP_IPv6_Status_en="${FontColor_Green}WARP${FontColor_Suffix}" + WARP_IPv6_Status_zh="${WARP_IPv6_Status_en}" + ;; + plus) + WARP_IPv6_Status_en="${FontColor_Green}WARP+${FontColor_Suffix}" + WARP_IPv6_Status_zh="${WARP_IPv6_Status_en}" + ;; + off) + WARP_IPv6_Status_en="Normal" + WARP_IPv6_Status_zh="正常" + ;; + *) + Check_Network_Status_IPv6 + if [[ ${IPv6Status} = on ]]; then + WARP_IPv6_Status_en="Normal" + WARP_IPv6_Status_zh="正常" + else + WARP_IPv6_Status_en="${FontColor_Red}Unconnected${FontColor_Suffix}" + WARP_IPv6_Status_zh="${FontColor_Red}未连接${FontColor_Suffix}" + fi + ;; + esac +} + +Check_ALL_Status() { + Check_WARP_Client_Status + Check_WARP_Proxy_Status + Check_WireGuard_Status + Check_WARP_WireGuard_Status +} + +Print_WARP_Client_Status() { + log INFO "Status check in progress..." + Check_WARP_Client_Status + Check_WARP_Proxy_Status + echo -e " + ---------------------------- + WARP Client\t: ${WARP_Client_Status_en} + SOCKS5 Port\t: ${WARP_Proxy_Status_en} + ---------------------------- +" + log INFO "Done." +} + +Print_WARP_WireGuard_Status() { + log INFO "Status check in progress..." + Check_WireGuard_Status + Check_WARP_WireGuard_Status + echo -e " + ---------------------------- + WireGuard\t: ${WireGuard_Status_en} + IPv4 Network\t: ${WARP_IPv4_Status_en} + IPv6 Network\t: ${WARP_IPv6_Status_en} + ---------------------------- +" + log INFO "Done." +} + +Print_ALL_Status() { + log INFO "Status check in progress..." + Check_ALL_Status + echo -e " + ---------------------------- + WARP Client\t: ${WARP_Client_Status_en} + SOCKS5 Port\t: ${WARP_Proxy_Status_en} + ---------------------------- + WireGuard\t: ${WireGuard_Status_en} + IPv4 Network\t: ${WARP_IPv4_Status_en} + IPv6 Network\t: ${WARP_IPv6_Status_en} + ---------------------------- +" +} + +View_WireGuard_Profile() { + Print_Delimiter + cat ${WireGuard_ConfPath} + Print_Delimiter +} + +Check_WireGuard_Peer_Endpoint() { + if ping -c1 -W1 ${WireGuard_Peer_Endpoint_IP4} >/dev/null 2>&1; then + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv4}" + elif ping6 -c1 -W1 ${WireGuard_Peer_Endpoint_IP6} >/dev/null 2>&1; then + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv6}" + else + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_Domain}" + fi +} + +Set_WARP_IPv4() { + Install_WireGuard + Get_IP_addr + Load_WGCF_Profile + if [[ ${IPv4Status} = off && ${IPv6Status} = on ]]; then + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_64}" + else + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + fi + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_IPv4}" + Check_WireGuard_Peer_Endpoint + Generate_WireGuardProfile_Interface + if [[ -n ${IPv4_addr} ]]; then + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + fi + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Set_WARP_IPv6() { + Install_WireGuard + Get_IP_addr + Load_WGCF_Profile + if [[ ${IPv4Status} = off && ${IPv6Status} = on ]]; then + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_64}" + else + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + fi + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_IPv6}" + Check_WireGuard_Peer_Endpoint + Generate_WireGuardProfile_Interface + if [[ -n ${IPv6_addr} ]]; then + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + fi + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Set_WARP_DualStack() { + Install_WireGuard + Get_IP_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + Check_WireGuard_Peer_Endpoint + Generate_WireGuardProfile_Interface + if [[ -n ${IPv4_addr} ]]; then + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + fi + if [[ -n ${IPv6_addr} ]]; then + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + fi + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Set_WARP_DualStack_nonGlobal() { + Install_WireGuard + Get_IP_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + Check_WireGuard_Peer_Endpoint + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_DualStack_nonGlobal + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Add_WARP_IPv4__Change_WARP_IPv6() { + Install_WireGuard + Get_IPv6_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_64}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv6}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Add_WARP_IPv6__Change_WARP_IPv4() { + Install_WireGuard + Get_IPv4_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv4}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Change_WARP_IPv6() { + Install_WireGuard + Get_IPv6_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_IPv6}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv6}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Change_WARP_IPv4() { + Install_WireGuard + Get_IPv4_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_64}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_IPv4}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv4}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Change_WARP_DualStack_IPv4Out() { + Install_WireGuard + Get_IPv4_addr + Get_IPv6_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv4}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Change_WARP_DualStack_IPv6Out() { + Install_WireGuard + Get_IPv4_addr + Get_IPv6_addr + Load_WGCF_Profile + WireGuard_Interface_DNS="${WireGuard_Interface_DNS_46}" + WireGuard_Peer_AllowedIPs="${WireGuard_Peer_AllowedIPs_DualStack}" + WireGuard_Peer_Endpoint="${WireGuard_Peer_Endpoint_IPv6}" + Generate_WireGuardProfile_Interface + Generate_WireGuardProfile_Interface_Rule_IPv4_Global_srcIP + Generate_WireGuardProfile_Interface_Rule_IPv6_Global_srcIP + Generate_WireGuardProfile_Peer + View_WireGuard_Profile + Enable_WireGuard + Print_WARP_WireGuard_Status +} + +Menu_Title="${FontColor_Yellow_Bold}Cloudflare WARP 一键配置脚本${FontColor_Suffix} ${FontColor_Red}[${shVersion}]${FontColor_Suffix} by ${FontColor_Purple_Bold}P3TERX.COM${FontColor_Suffix}" + +Menu_WARP_Client() { + clear + echo -e " +${Menu_Title} + + ------------------------- + WARP 客户端状态 : ${WARP_Client_Status_zh} + SOCKS5 代理端口 : ${WARP_Proxy_Status_zh} + ------------------------- + +管理 WARP 官方客户端: + + ${FontColor_Green_Bold}0${FontColor_Suffix}. 返回主菜单 + - + ${FontColor_Green_Bold}1${FontColor_Suffix}. 开启 SOCKS5 代理 + ${FontColor_Green_Bold}2${FontColor_Suffix}. 关闭 SOCKS5 代理 + ${FontColor_Green_Bold}3${FontColor_Suffix}. 重启 WARP 官方客户端 + ${FontColor_Green_Bold}4${FontColor_Suffix}. 卸载 WARP 官方客户端 +" + unset MenuNumber + read -p "请输入选项: " MenuNumber + echo + case ${MenuNumber} in + 0) + Start_Menu + ;; + 1) + Enable_WARP_Client_Proxy + ;; + 2) + Disconnect_WARP + ;; + 3) + Restart_WARP_Client + ;; + 4) + Uninstall_WARP_Client + ;; + *) + log ERROR "无效输入!" + sleep 2s + Menu_WARP_Client + ;; + esac +} + +Menu_WARP_WireGuard_Other() { + clear + echo -e " +${Menu_Title} + + ${FontColor_Green_Bold}0${FontColor_Suffix}. 返回主菜单 + - + ${FontColor_Green_Bold}1${FontColor_Suffix}. 置换 IPv4 为 WARP 网络 + ${FontColor_Green_Bold}2${FontColor_Suffix}. 置换 IPv6 为 WARP 网络 + ${FontColor_Green_Bold}3${FontColor_Suffix}. 置换 IPv4/IPv6 为 WARP 网络 (IPv4 节点) + ${FontColor_Green_Bold}4${FontColor_Suffix}. 置换 IPv4/IPv6 为 WARP 网络 (IPv6 节点) + ${FontColor_Green_Bold}5${FontColor_Suffix}. 添加 WARP IPv4 网络,置换 IPv6 为 WARP 网络 + ${FontColor_Green_Bold}6${FontColor_Suffix}. 添加 WARP IPv6 网络,置换 IPv4 为 WARP 网络 +" + unset MenuNumber + read -p "请输入选项: " MenuNumber + echo + case ${MenuNumber} in + 0) + Start_Menu + ;; + 1) + Change_WARP_IPv4 + ;; + 2) + Change_WARP_IPv6 + ;; + 3) + Change_WARP_DualStack_IPv4Out + ;; + 4) + Change_WARP_DualStack_IPv6Out + ;; + 5) + Add_WARP_IPv4__Change_WARP_IPv6 + ;; + 6) + Add_WARP_IPv6__Change_WARP_IPv4 + ;; + *) + log ERROR "无效输入!" + sleep 2s + Menu_DualStack + ;; + esac +} + +Menu_WARP_WireGuard() { + clear + echo -e " +${Menu_Title} + + ------------------------- + WireGuard 状态 : ${WireGuard_Status_zh} + IPv4 网络状态 : ${WARP_IPv4_Status_zh} + IPv6 网络状态 : ${WARP_IPv6_Status_zh} + ------------------------- + +管理 WARP WireGuard: + + ${FontColor_Green_Bold}0${FontColor_Suffix}. 返回主菜单 + - + ${FontColor_Green_Bold}1${FontColor_Suffix}. 查看 WARP WireGuard 日志 + ${FontColor_Green_Bold}2${FontColor_Suffix}. 重启 WARP WireGuard 服务 + ${FontColor_Green_Bold}3${FontColor_Suffix}. 关闭 WARP WireGuard 网络 +" + unset MenuNumber + read -p "请输入选项: " MenuNumber + echo + case ${MenuNumber} in + 0) + Start_Menu + ;; + 1) + Print_WireGuard_Log + ;; + 2) + Restart_WireGuard + ;; + 3) + Disable_WireGuard + ;; + *) + log ERROR "无效输入!" + sleep 2s + Menu_Other + ;; + esac +} + +Start_Menu() { + log INFO "正在检查状态..." + Check_ALL_Status + clear + echo -e " +${Menu_Title} + + ------------------------- + WARP 客户端状态 : ${WARP_Client_Status_zh} + SOCKS5 代理端口 : ${WARP_Proxy_Status_zh} + ------------------------- + WireGuard 状态 : ${WireGuard_Status_zh} + IPv4 网络状态 : ${WARP_IPv4_Status_zh} + IPv6 网络状态 : ${WARP_IPv6_Status_zh} + ------------------------- + + ${FontColor_Green_Bold}1${FontColor_Suffix}. 自动配置 WARP 官方客户端 SOCKS5 代理 + ${FontColor_Green_Bold}2${FontColor_Suffix}. 管理 WARP 官方客户端 + - + ${FontColor_Green_Bold}3${FontColor_Suffix}. 自动配置 WARP WireGuard IPv4 网络 + ${FontColor_Green_Bold}4${FontColor_Suffix}. 自动配置 WARP WireGuard IPv6 网络 + ${FontColor_Green_Bold}5${FontColor_Suffix}. 自动配置 WARP WireGuard 双栈全局网络 + ${FontColor_Green_Bold}6${FontColor_Suffix}. 选择其它 WARP WireGuard 配置方案 + ${FontColor_Green_Bold}7${FontColor_Suffix}. 管理 WARP WireGuard 网络 +" + unset MenuNumber + read -p "请输入选项: " MenuNumber + echo + case ${MenuNumber} in + 1) + Enable_WARP_Client_Proxy + ;; + 2) + Menu_WARP_Client + ;; + 3) + Set_WARP_IPv4 + ;; + 4) + Set_WARP_IPv6 + ;; + 5) + Set_WARP_DualStack + ;; + 6) + Menu_WARP_WireGuard_Other + ;; + 7) + Menu_WARP_WireGuard + ;; + *) + log ERROR "无效输入!" + sleep 2s + Start_Menu + ;; + esac +} + +Print_Usage() { + echo -e " +Cloudflare WARP configuration script + +USAGE: + bash <(curl -fsSL git.io/warp.sh) [SUBCOMMAND] + +SUBCOMMANDS: + install Install Cloudflare WARP Official Linux Client + uninstall uninstall Cloudflare WARP Official Linux Client + restart Restart Cloudflare WARP Official Linux Client + proxy Enable WARP Client Proxy Mode (default SOCKS5 port: 40000) + unproxy Disable WARP Client Proxy Mode + wg Configuration WARP Non-Global Network (with WireGuard), set fwmark or interface IP Address to use the WARP network + wg4 Configuration WARP IPv4 Global Network (with WireGuard), all IPv4 outbound data over the WARP network + wg6 Configuration WARP IPv6 Global Network (with WireGuard), all IPv6 outbound data over the WARP network + wgd Configuration WARP Dual Stack Global Network (with WireGuard), all outbound data over the WARP network + rewg Restart WARP WireGuard service + unwg Disable WARP WireGuard service + status Prints status information + version Prints version information + help Prints this message or the help of the given subcommand(s) + menu Chinese special features menu +" +} + +if [ $# -ge 1 ]; then + Get_System_Info + case ${1} in + install) + Install_WARP_Client + ;; + uninstall) + Uninstall_WARP_Client + ;; + restart) + Restart_WARP_Client + ;; + proxy | socks5 | s5) + Enable_WARP_Client_Proxy + ;; + unproxy | unsocks5 | uns5) + Disconnect_WARP + ;; + wg) + Set_WARP_DualStack_nonGlobal + ;; + wg4 | 4) + Set_WARP_IPv4 + ;; + wg6 | 6) + Set_WARP_IPv6 + ;; + wgd | d) + Set_WARP_DualStack + ;; + rewg) + Restart_WireGuard + ;; + unwg) + Disable_WireGuard + ;; + status) + Print_ALL_Status + ;; + help) + Print_Usage + ;; + version) + echo "${shVersion}" + ;; + menu) + Start_Menu + ;; + *) + log ERROR "Invalid Parameters: $*" + Print_Usage + exit 1 + ;; + esac +else + Print_Usage +fi diff --git "a/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/\347\247\221\345\255\246\344\270\212\347\275\221.md" "b/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/\347\247\221\345\255\246\344\270\212\347\275\221.md" new file mode 100644 index 0000000..b83f014 --- /dev/null +++ "b/oldMd/\347\247\221\345\255\246\344\270\212\347\275\221/\347\247\221\345\255\246\344\270\212\347\275\221.md" @@ -0,0 +1,226 @@ +# 科学上网 + +使用 v2ray、nginx、cdn 转发流量,放置 IP 被墙 + +# 一、坏境 + +**vps**:CentOS 8 + +centos 8 修改镜像源, https://techglimpse.com/solve-failed-synchronize-cache-repo-appstream/ + +# 二、v2ray + +使用 v2ray 转发流量 + +## 2.1 安装 + +> 脚本地址: https://github.com/v2fly/fhs-install-v2ray + +**脚本:** + +> https://raw.githubusercontent.com/v2fly/fhs-**install**-v2ray/**master**/**install**-release.sh + +**设置开机自启动** + +> Systemctl enable v2ray + +**服务** + +> Service v2ray restart + +## 2.2 配置 + +**默认配置路径** + +> /usr/local/etc/v2ray/ + +**修改配置文件** + +生成 UUID,使用[UUID 工具](https://www.v2fly.org/awesome/tools.html) + +```json +{ + "log": { + "access": "/var/log/v2ray/access.log", + "error": "/var/log/v2ray/error.log", + "loglevel": "info" + }, + "inbounds": [ + { + "port": 8888, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "8af2f929-4d2a-4866-998e-ca4d75b80e97" + } + ] + } + }, + { + "port": 1234, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "90f5bc59-f47a-4229-b221-6e2630e20e7d" + } + ] + }, + "streamSettings": { + "network": "ws", + "wsSettings": { + "path": "/ray" + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom" + }, + { + "protocol": "freedom" + }, + { + "protocol": "socks", + "settings": { + "servers": [ + { + "address": "127.0.0.1", + "port": 40000 + } + ] + }, + "tag": "warp" + } + ], + "routing": { + "strategy": "rules", + "settings": { + "rules": [ + { + "type": "field", + "domain": ["google.com"], + "outboundTag": "warp" + }, + { + "type": "field", + "ip": ["geoip:private"], + "outboundTag": "blocked" + } + ] + } + } +} +``` + +**`warp.sh`** + +功能:去除 google 的人机器验证 + +使用脚本[warp.sh](./warp.sh)安装,安装成功后,会监听端口 40000,修改上面的配置生效 + +[warp 指导文档](https://cmsblog.cn/1288.html) + +> bash <(curl -fsSL git.io/warp.sh) proxy + +# 三、nginx + +## 3.1 安装 + +安装命令 + +> yum install nginx -y +> +> systemctl enable nginx // 设置开机自启动 +> +> service nginx restart // 重启服务 + +默认安装位置: + +> /etc/nginx + +## 3.2 生成 SSL 证书 + +下文中提及到域名`【test.com】`替换为自己的域名 + +> yum -y install epel-release +> yum -y install certbot +> certbot certonly --standalone -d test.com + +最终生成的证书的存放目录 + +> /etc/letsencrypt/live/test.com/ + +新建站点 + +> vi /etc/nginx/conf.d/v2ray.conf + +```nginx + +server { + listen 443 ssl; + server_name test.com; + + ssl_certificate /etc/letsencrypt/live/test.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/test.com/privkey.pem; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; + + error_page 497 https://$host$request_uri; + + location /ray { +​ proxy_pass http://127.0.0.1:1234; +​ proxy_redirect off; +​ proxy_http_version 1.1; +​ proxy_set_header Upgrade $http_upgrade; +​ proxy_set_header Connection "upgrade"; +​ proxy_set_header Host $http_host; + } +} + +``` + +或者自签名证书: + +``` +openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ./nginx-selfsigned.key -out ./nginx-selfsigned.crt +``` + +# 四、启用 BBR + +CentOS 8 可以直接启用 bbr,不需要额外升级内核 + +> echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf +> +> echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf +> +> sysctl -p +> +> reboot + +重启后,验证 bbr + +> sysctl -n net.ipv4.tcp_congestion_control // 输出 bbr +> +> lsmod | grep bbr // 输出 tcp_bbr + +# 五、域名申请 + +在[freenom](https://www.freenom.com/zh/index.html?lang=zh)可以免费申请为期一年的域名 + +# 六、CDN + +可以使用[cloudflare](https://www.cloudflare.com/zh-cn/)提供的 NS,避免 IP 被墙后无法使用。因为需要 cloudflare 做 DNS 解析,比直接使用 IP 速度要慢点 + +# 参考文档 + +- https://www.v2fly.org/guide/start.html +- https://guide.v2fly.org/ +- https://www.haah.net/archives/4551.html +- https://cmsblog.cn/1288.html +- https://techglimpse.com/solve-failed-synchronize-cache-repo-appstream/ diff --git a/package.json b/package.json new file mode 100644 index 0000000..0a5b597 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "resume", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "docs:dev": "vitepress dev config", + "docs:build": "vitepress build config", + "docs:preview": "vitepress preview config" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@types/node": "^20.11.20", + "mermaid": "^10.8.0", + "vitepress": "1.0.0-rc.44", + "vitepress-plugin-mermaid": "^2.0.16" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..072747d --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1840 @@ +lockfileVersion: 5.4 + +specifiers: + '@types/node': ^20.11.20 + mermaid: ^10.8.0 + vitepress: 1.0.0-rc.44 + vitepress-plugin-mermaid: ^2.0.16 + +devDependencies: + '@types/node': 20.11.20 + mermaid: 10.8.0 + vitepress: 1.0.0-rc.44_@types+node@20.11.20 + vitepress-plugin-mermaid: 2.0.16_iny2wsvlmfkmhoxybj5iqouo24 + +packages: + + /@algolia/autocomplete-core/1.9.3_algoliasearch@4.22.1: + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3_algoliasearch@4.22.1 + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.22.1 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: true + + /@algolia/autocomplete-plugin-algolia-insights/1.9.3_algoliasearch@4.22.1: + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + dependencies: + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.22.1 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + dev: true + + /@algolia/autocomplete-preset-algolia/1.9.3_algoliasearch@4.22.1: + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/autocomplete-shared': 1.9.3_algoliasearch@4.22.1 + algoliasearch: 4.22.1 + dev: true + + /@algolia/autocomplete-shared/1.9.3_algoliasearch@4.22.1: + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + algoliasearch: 4.22.1 + dev: true + + /@algolia/cache-browser-local-storage/4.22.1: + resolution: {integrity: sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==} + dependencies: + '@algolia/cache-common': 4.22.1 + dev: true + + /@algolia/cache-common/4.22.1: + resolution: {integrity: sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==} + dev: true + + /@algolia/cache-in-memory/4.22.1: + resolution: {integrity: sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==} + dependencies: + '@algolia/cache-common': 4.22.1 + dev: true + + /@algolia/client-account/4.22.1: + resolution: {integrity: sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/client-search': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /@algolia/client-analytics/4.22.1: + resolution: {integrity: sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/client-search': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /@algolia/client-common/4.22.1: + resolution: {integrity: sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==} + dependencies: + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /@algolia/client-personalization/4.22.1: + resolution: {integrity: sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /@algolia/client-search/4.22.1: + resolution: {integrity: sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==} + dependencies: + '@algolia/client-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /@algolia/logger-common/4.22.1: + resolution: {integrity: sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==} + dev: true + + /@algolia/logger-console/4.22.1: + resolution: {integrity: sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==} + dependencies: + '@algolia/logger-common': 4.22.1 + dev: true + + /@algolia/requester-browser-xhr/4.22.1: + resolution: {integrity: sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==} + dependencies: + '@algolia/requester-common': 4.22.1 + dev: true + + /@algolia/requester-common/4.22.1: + resolution: {integrity: sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==} + dev: true + + /@algolia/requester-node-http/4.22.1: + resolution: {integrity: sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==} + dependencies: + '@algolia/requester-common': 4.22.1 + dev: true + + /@algolia/transporter/4.22.1: + resolution: {integrity: sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==} + dependencies: + '@algolia/cache-common': 4.22.1 + '@algolia/logger-common': 4.22.1 + '@algolia/requester-common': 4.22.1 + dev: true + + /@babel/helper-string-parser/7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier/7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser/7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/types/7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@braintree/sanitize-url/6.0.4: + resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} + dev: true + + /@docsearch/css/3.5.2: + resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} + dev: true + + /@docsearch/js/3.5.2: + resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} + dependencies: + '@docsearch/react': 3.5.2 + preact: 10.19.6 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + dev: true + + /@docsearch/react/3.5.2: + resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + dependencies: + '@algolia/autocomplete-core': 1.9.3_algoliasearch@4.22.1 + '@algolia/autocomplete-preset-algolia': 1.9.3_algoliasearch@4.22.1 + '@docsearch/css': 3.5.2 + algoliasearch: 4.22.1 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + + /@esbuild/aix-ppc64/0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm/0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@jridgewell/sourcemap-codec/1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@mermaid-js/mermaid-mindmap/9.3.0: + resolution: {integrity: sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==} + requiresBuild: true + dependencies: + '@braintree/sanitize-url': 6.0.4 + cytoscape: 3.28.1 + cytoscape-cose-bilkent: 4.1.0_cytoscape@3.28.1 + cytoscape-fcose: 2.2.0_cytoscape@3.28.1 + d3: 7.8.5 + khroma: 2.1.0 + non-layered-tidy-tree-layout: 2.0.2 + dev: true + optional: true + + /@rollup/rollup-android-arm-eabi/4.12.0: + resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64/4.12.0: + resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64/4.12.0: + resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64/4.12.0: + resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf/4.12.0: + resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu/4.12.0: + resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl/4.12.0: + resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu/4.12.0: + resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu/4.12.0: + resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl/4.12.0: + resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc/4.12.0: + resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc/4.12.0: + resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc/4.12.0: + resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@shikijs/core/1.1.7: + resolution: {integrity: sha512-gTYLUIuD1UbZp/11qozD3fWpUTuMqPSf3svDMMrL0UmlGU7D9dPw/V1FonwAorCUJBltaaESxq90jrSjQyGixg==} + dev: true + + /@shikijs/transformers/1.1.7: + resolution: {integrity: sha512-lXz011ao4+rvweps/9h3CchBfzb1U5OtP5D51Tqc9lQYdLblWMIxQxH6Ybe1GeGINcEVM4goMyPrI0JvlIp4UQ==} + dependencies: + shiki: 1.1.7 + dev: true + + /@types/d3-scale-chromatic/3.0.3: + resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} + dev: true + + /@types/d3-scale/4.0.8: + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} + dependencies: + '@types/d3-time': 3.0.3 + dev: true + + /@types/d3-time/3.0.3: + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} + dev: true + + /@types/debug/4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + + /@types/estree/1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/linkify-it/3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: true + + /@types/markdown-it/13.0.7: + resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: true + + /@types/mdast/3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: true + + /@types/mdurl/1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: true + + /@types/ms/0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + + /@types/node/20.11.20: + resolution: {integrity: sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/unist/2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: true + + /@types/web-bluetooth/0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + dev: true + + /@vitejs/plugin-vue/5.0.4_vite@5.1.4+vue@3.4.19: + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.1.4_@types+node@20.11.20 + vue: 3.4.19 + dev: true + + /@vue/compiler-core/3.4.19: + resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/shared': 3.4.19 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom/3.4.19: + resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==} + dependencies: + '@vue/compiler-core': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/compiler-sfc/3.4.19: + resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==} + dependencies: + '@babel/parser': 7.23.9 + '@vue/compiler-core': 3.4.19 + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + estree-walker: 2.0.2 + magic-string: 0.30.7 + postcss: 8.4.35 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr/3.4.19: + resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==} + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/devtools-api/7.0.15_vue@3.4.19: + resolution: {integrity: sha512-kgEYWosDyWpS1vFSuJNNWUnHkP+VkL3Y+9mw+rf7ex41SwbYL/WdC3KXqAtjiSrEs7r/FrHmUTh0BkINJPFkbA==} + dependencies: + '@vue/devtools-kit': 7.0.15_vue@3.4.19 + transitivePeerDependencies: + - vue + dev: true + + /@vue/devtools-kit/7.0.15_vue@3.4.19: + resolution: {integrity: sha512-dT7OeCe1LUCIhHIb/yRR6Hn+XHh73r1o78onqCrxEKHdoZwBItiIeVnmJZPEUDFstIxfs+tJL231mySk3laTow==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-shared': 7.0.15 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.19 + dev: true + + /@vue/devtools-shared/7.0.15: + resolution: {integrity: sha512-fpfvMVvS7aDgO7x2JPFiTQ1MHcCc63/bE7yTgs278gMBybuO9b3hdiZ/k0Pw1rN+RefaU9yQiFA+5CCFc1D+6w==} + dependencies: + rfdc: 1.3.1 + dev: true + + /@vue/reactivity/3.4.19: + resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==} + dependencies: + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-core/3.4.19: + resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==} + dependencies: + '@vue/reactivity': 3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /@vue/runtime-dom/3.4.19: + resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==} + dependencies: + '@vue/runtime-core': 3.4.19 + '@vue/shared': 3.4.19 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer/3.4.19_vue@3.4.19: + resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==} + peerDependencies: + vue: 3.4.19 + dependencies: + '@vue/compiler-ssr': 3.4.19 + '@vue/shared': 3.4.19 + vue: 3.4.19 + dev: true + + /@vue/shared/3.4.19: + resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==} + dev: true + + /@vueuse/core/10.8.0_vue@3.4.19: + resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.8.0 + '@vueuse/shared': 10.8.0_vue@3.4.19 + vue-demi: 0.14.7_vue@3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/integrations/10.8.0_i3nf75f3bnczjt7dnj4ueuaqbm: + resolution: {integrity: sha512-sw3P/7cXOfNLQfERp7P0IJ2ODjLE2C3BGXpBQJQkS309c1jbJak9yu4EnY70WaZjkj53aeWSFU6BbHrUxXJ7SA==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.8.0_vue@3.4.19 + '@vueuse/shared': 10.8.0_vue@3.4.19 + focus-trap: 7.5.4 + vue-demi: 0.14.7_vue@3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata/10.8.0: + resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==} + dev: true + + /@vueuse/shared/10.8.0_vue@3.4.19: + resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} + dependencies: + vue-demi: 0.14.7_vue@3.4.19 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /algoliasearch/4.22.1: + resolution: {integrity: sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==} + dependencies: + '@algolia/cache-browser-local-storage': 4.22.1 + '@algolia/cache-common': 4.22.1 + '@algolia/cache-in-memory': 4.22.1 + '@algolia/client-account': 4.22.1 + '@algolia/client-analytics': 4.22.1 + '@algolia/client-common': 4.22.1 + '@algolia/client-personalization': 4.22.1 + '@algolia/client-search': 4.22.1 + '@algolia/logger-common': 4.22.1 + '@algolia/logger-console': 4.22.1 + '@algolia/requester-browser-xhr': 4.22.1 + '@algolia/requester-common': 4.22.1 + '@algolia/requester-node-http': 4.22.1 + '@algolia/transporter': 4.22.1 + dev: true + + /character-entities/2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + + /commander/7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /cose-base/1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + dependencies: + layout-base: 1.0.2 + dev: true + + /cose-base/2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + dependencies: + layout-base: 2.0.1 + dev: true + optional: true + + /csstype/3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + + /cytoscape-cose-bilkent/4.1.0_cytoscape@3.28.1: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + dependencies: + cose-base: 1.0.3 + cytoscape: 3.28.1 + dev: true + + /cytoscape-fcose/2.2.0_cytoscape@3.28.1: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + dependencies: + cose-base: 2.2.0 + cytoscape: 3.28.1 + dev: true + optional: true + + /cytoscape/3.28.1: + resolution: {integrity: sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==} + engines: {node: '>=0.10'} + dependencies: + heap: 0.2.7 + lodash: 4.17.21 + dev: true + + /d3-array/2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + dependencies: + internmap: 1.0.1 + dev: true + + /d3-array/3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + dependencies: + internmap: 2.0.3 + dev: true + + /d3-axis/3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + dev: true + + /d3-brush/3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: true + + /d3-chord/3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + dependencies: + d3-path: 3.1.0 + dev: true + + /d3-color/3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + dev: true + + /d3-contour/4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: true + + /d3-delaunay/6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + dependencies: + delaunator: 5.0.1 + dev: true + + /d3-dispatch/3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + dev: true + + /d3-drag/3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + dev: true + + /d3-dsv/3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + dev: true + + /d3-ease/3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + dev: true + + /d3-fetch/3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + dependencies: + d3-dsv: 3.0.1 + dev: true + + /d3-force/3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + dev: true + + /d3-format/3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + dev: true + + /d3-geo/3.1.0: + resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: true + + /d3-hierarchy/3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + dev: true + + /d3-interpolate/3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + dev: true + + /d3-path/1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + dev: true + + /d3-path/3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + dev: true + + /d3-polygon/3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + dev: true + + /d3-quadtree/3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + dev: true + + /d3-random/3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + dev: true + + /d3-sankey/0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + dev: true + + /d3-scale-chromatic/3.0.0: + resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==} + engines: {node: '>=12'} + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: true + + /d3-scale/4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + dev: true + + /d3-selection/3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + dev: true + + /d3-shape/1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + dependencies: + d3-path: 1.0.9 + dev: true + + /d3-shape/3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + dependencies: + d3-path: 3.1.0 + dev: true + + /d3-time-format/4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + dependencies: + d3-time: 3.1.0 + dev: true + + /d3-time/3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + dev: true + + /d3-timer/3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + dev: true + + /d3-transition/3.0.1_d3-selection@3.0.0: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + dev: true + + /d3-zoom/3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: true + + /d3/7.8.5: + resolution: {integrity: sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==} + engines: {node: '>=12'} + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.0 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1_d3-selection@3.0.0 + d3-zoom: 3.0.0 + dev: true + + /dagre-d3-es/7.0.10: + resolution: {integrity: sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A==} + dependencies: + d3: 7.8.5 + lodash-es: 4.17.21 + dev: true + + /dayjs/1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decode-named-character-reference/1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: true + + /delaunator/5.0.1: + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + dependencies: + robust-predicates: 3.0.2 + dev: true + + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + + /diff/5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dev: true + + /dompurify/3.0.9: + resolution: {integrity: sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==} + dev: true + + /elkjs/0.9.2: + resolution: {integrity: sha512-2Y/RaA1pdgSHpY0YG4TYuYCD2wh97CRvu22eLG3Kz0pgQ/6KbIFTxsTnDc4MH/6hFlg2L/9qXrDMG0nMjP63iw==} + dev: true + + /entities/4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /esbuild/0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /focus-trap/7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + dev: true + + /fsevents/2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /heap/0.2.7: + resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} + dev: true + + /hookable/5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + dev: true + + /iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /internmap/1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + dev: true + + /internmap/2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + dev: true + + /khroma/2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + dev: true + + /kleur/4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /layout-base/1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + dev: true + + /layout-base/2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + dev: true + optional: true + + /lodash-es/4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /magic-string/0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /mark.js/8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + dev: true + + /mdast-util-from-markdown/1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string/3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.15 + dev: true + + /mermaid/10.8.0: + resolution: {integrity: sha512-9CzfSreRjdDJxX796+jW4zjEq0DVw5xVF0nWsqff8OTbrt+ml0TZ5PyYUjjUZJa2NYxYJZZXewEquxGiM8qZEA==} + dependencies: + '@braintree/sanitize-url': 6.0.4 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.3 + cytoscape: 3.28.1 + cytoscape-cose-bilkent: 4.1.0_cytoscape@3.28.1 + d3: 7.8.5 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.10 + dayjs: 1.11.10 + dompurify: 3.0.9 + elkjs: 0.9.2 + khroma: 2.1.0 + lodash-es: 4.17.21 + mdast-util-from-markdown: 1.3.1 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.3.1 + ts-dedent: 2.2.0 + uuid: 9.0.1 + web-worker: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromark-core-commonmark/1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-factory-destination/1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-label/1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-factory-space/1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-title/1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-factory-whitespace/1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-character/1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-chunked/1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-classify-character/1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-combine-extensions/1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-decode-numeric-character-reference/1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-decode-string/1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-encode/1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: true + + /micromark-util-html-tag-name/1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: true + + /micromark-util-normalize-identifier/1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-resolve-all/1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: true + + /micromark-util-sanitize-uri/1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: true + + /micromark-util-subtokenize/1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: true + + /micromark-util-symbol/1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: true + + /micromark-util-types/1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: true + + /micromark/3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /minisearch/6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} + dev: true + + /mitt/3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /nanoid/3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /non-layered-tidy-tree-layout/2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + dev: true + + /perfect-debounce/1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /postcss/8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /preact/10.19.6: + resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==} + dev: true + + /rfdc/1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + dev: true + + /robust-predicates/3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + dev: true + + /rollup/4.12.0: + resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.12.0 + '@rollup/rollup-android-arm64': 4.12.0 + '@rollup/rollup-darwin-arm64': 4.12.0 + '@rollup/rollup-darwin-x64': 4.12.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 + '@rollup/rollup-linux-arm64-gnu': 4.12.0 + '@rollup/rollup-linux-arm64-musl': 4.12.0 + '@rollup/rollup-linux-riscv64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-gnu': 4.12.0 + '@rollup/rollup-linux-x64-musl': 4.12.0 + '@rollup/rollup-win32-arm64-msvc': 4.12.0 + '@rollup/rollup-win32-ia32-msvc': 4.12.0 + '@rollup/rollup-win32-x64-msvc': 4.12.0 + fsevents: 2.3.3 + dev: true + + /rw/1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + dev: true + + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: true + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /shiki/1.1.7: + resolution: {integrity: sha512-9kUTMjZtcPH3i7vHunA6EraTPpPOITYTdA5uMrvsJRexktqP0s7P3s9HVK80b4pP42FRVe03D7fT3NmJv2yYhw==} + dependencies: + '@shikijs/core': 1.1.7 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /speakingurl/14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + dev: true + + /stylis/4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: true + + /tabbable/6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /ts-dedent/2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + dev: true + + /undici-types/5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unist-util-stringify-position/3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.10 + dev: true + + /uuid/9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: true + + /uvu/0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.2.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: true + + /vite/5.1.4_@types+node@20.11.20: + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.11.20 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.12.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitepress-plugin-mermaid/2.0.16_iny2wsvlmfkmhoxybj5iqouo24: + resolution: {integrity: sha512-sW0Eu4+1EzRdwZBMGjzwKDsbQiuJIxCy8BlMw7Ur88p9fXalrFYKqZ3wYWLxsFTBipeooFIeanef/xw1P+v7vQ==} + peerDependencies: + mermaid: '10' + vitepress: ^1.0.0 || ^1.0.0-alpha + dependencies: + mermaid: 10.8.0 + vitepress: 1.0.0-rc.44_@types+node@20.11.20 + optionalDependencies: + '@mermaid-js/mermaid-mindmap': 9.3.0 + dev: true + + /vitepress/1.0.0-rc.44_@types+node@20.11.20: + resolution: {integrity: sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + postcss: ^8.4.35 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + dependencies: + '@docsearch/css': 3.5.2 + '@docsearch/js': 3.5.2 + '@shikijs/core': 1.1.7 + '@shikijs/transformers': 1.1.7 + '@types/markdown-it': 13.0.7 + '@vitejs/plugin-vue': 5.0.4_vite@5.1.4+vue@3.4.19 + '@vue/devtools-api': 7.0.15_vue@3.4.19 + '@vueuse/core': 10.8.0_vue@3.4.19 + '@vueuse/integrations': 10.8.0_i3nf75f3bnczjt7dnj4ueuaqbm + focus-trap: 7.5.4 + mark.js: 8.11.1 + minisearch: 6.3.0 + shiki: 1.1.7 + vite: 5.1.4_@types+node@20.11.20 + vue: 3.4.19 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + dev: true + + /vue-demi/0.14.7_vue@3.4.19: + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.19 + dev: true + + /vue/3.4.19: + resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.19 + '@vue/compiler-sfc': 3.4.19 + '@vue/runtime-dom': 3.4.19 + '@vue/server-renderer': 3.4.19_vue@3.4.19 + '@vue/shared': 3.4.19 + dev: true + + /web-worker/1.3.0: + resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} + dev: true diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..abab24b --- /dev/null +++ b/readme.md @@ -0,0 +1,15 @@ +# swlws.github.io + +```bash +# install + +pnpm install --shamefully-hoist + +# dev + +pnpm docs:dev + +# build + +pnpm docs:build +``` diff --git a/script/image_handler.js b/script/image_handler.js new file mode 100644 index 0000000..839562e --- /dev/null +++ b/script/image_handler.js @@ -0,0 +1,66 @@ +const fs = require("fs"); +const path = require("path"); +const { execFileSync } = require("child_process"); + +const PROJECT_DIR = path.resolve(__dirname, ".."); +const IMG_TYPES = [".jpg", ".png", ".jpeg"]; +const BIN_CWEBP = path.resolve(PROJECT_DIR, "bin", "cwebp"); + +const { argv } = process; +if (argv.length !== 3) { + console.error("Must Type Target Image Dir"); + process.exit(1); +} +const TARGET_IMAGE_DIR = argv[2]; + +function validate_image_path() { + const img_dir = path.join(PROJECT_DIR, TARGET_IMAGE_DIR); + + if (!fs.existsSync(img_dir)) { + console.error("Invalidate Image Dir"); + process.exit(1); + } + + if (!img_dir.includes(PROJECT_DIR)) { + console.error("Invalidate Image Dir"); + process.exit(1); + } + + const stat = fs.statSync(img_dir); + if (!stat.isDirectory()) { + console.error("Invalidate Image Dir"); + process.exit(1); + } +} + +function to_webp() { + const img_dir = path.join(PROJECT_DIR, TARGET_IMAGE_DIR); + const files = fs.readdirSync(img_dir); + for (const file of files) { + const extname = path.extname(file); + if (!IMG_TYPES.includes(extname)) continue; + + try { + // 转化为 webp 格式 + execFileSync( + BIN_CWEBP, + `-q 80 ${file} -o ${file.replace(extname, ".webp")}`.split(" "), + { + cwd: img_dir, + } + ); + + // 移除旧图片 + fs.unlinkSync(path.resolve(img_dir, file)); + } catch (e) { + console.error(e); + } + } +} + +function main() { + validate_image_path(); + to_webp(); +} + +main(); diff --git a/script/image_handler.md b/script/image_handler.md new file mode 100644 index 0000000..6fa5596 --- /dev/null +++ b/script/image_handler.md @@ -0,0 +1,7 @@ +# readme.md + +```bash +# 命令后面跟相对路径 + +pnpm image ./md/weekly/001/img +``` diff --git a/src/components/helloWorld/index.vue b/src/components/helloWorld/index.vue new file mode 100644 index 0000000..d7da602 --- /dev/null +++ b/src/components/helloWorld/index.vue @@ -0,0 +1,11 @@ + + +