diff --git a/.gitignore b/.gitignore index 2d513a0101b9703c4606c9c0ad11e9c95effdba8..9ef82c157e7607fbe757fba0eb383c1db2c2e47a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ /.idea/ /target/ +/codeview/.idea/ +/codeview/dist/ +/codeview/node_modules/ +/codeview/package-lock.json diff --git a/README.md b/README.md index 2225a0fdfc64c2f811fd151c80a52190e1533cb7..a116468915e96ea97529170196b91fa512d3abd5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ > 一个文档在线预览的中间件 > 可通过简单的配置即可集成到springboot中 -> 支持word,excel,ppt,pdf,图片,视频,音频,markdown等格式文件的在线预览 +> 支持word,excel,ppt,pdf,图片,视频,音频,markdown,代码,网页等格式文件的在线预览 ## [代码示例](https://gitee.com/wb04307201/file-preview-demo) @@ -34,7 +34,6 @@ ## 第三步 在启动类上加上`@EnableFilePreview`注解 ```java - @EnableFilePreview @SpringBootApplication public class FilePreviewDemoApplication { @@ -55,8 +54,8 @@ public class FilePreviewDemoApplication { @Autowired FilePreviewService filePreviewService; - //预览文件转换 - FilePreviewInfo filePreviewInfo=filePreviewService.covert(file.getInputStream(),file.getOriginalFilename()); + //预览文件转换 + FilePreviewInfo filePreviewInfo=filePreviewService.covert(file.getInputStream(),file.getOriginalFilename()); ``` ### 在针对word,excel,ppt文件的处理上,支持3种模式 @@ -114,45 +113,63 @@ file: callback: http://ip:port/file/preview/onlyoffice/callback #当前服务的ip:port ``` +#### libreoffice online +[libreoffice online](https://zh-cn.libreoffice.org/download/libreoffice-online/) + +#### Collabora Online +[Collabora Online](https://www.collaboraoffice.com/) +[docs](https://sdk.collaboraonline.com/docs/installation/CODE_Docker_image.html) + ## 第六步 预览文件信息 +[代码高亮](https://blog.csdn.net/q1025387665a/article/details/128630096) + > 可通过第四步返回的文件信息中的id > 访问http://ip:port/file/preview?id=??进行文件预览 > 如果配置了context-path,请在地址中同样添加 -> 截图为使用onlyoffice进行预览 - -![img.png](img.png) -![img_2.png](img_2.png) -![img_4.png](img_4.png) -![img_5.png](img_5.png) -![img_6.png](img_6.png) -![img_8.png](img_8.png) +> 使用了一些组件帮助预览文件内容,截图为使用onlyoffice进行office文件预览 + +| 文件类型 | 预览组件 | 截图 | +|----------------|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| word/excel/ppt | [jodconverter](https://github.com/sbraconnier/jodconverter/) | | +| word/excel/ppt | [Spire.Office](https://www.e-iceblue.com/) | | +| word/excel/ppt | [onlyoffice](https://www.onlyoffice.com/zh/) | | +| pdf | [PDF.js](https://mozilla.github.io/pdf.js/) | | +| audio | [audio.js](http://kolber.github.io/audiojs/) | | +| video | [videojs](https://videojs.com/) | | +| markdonw | [Marked](https://marked.js.org/) | | +| 代码 | [CodeMirror](https://codemirror.net/) | | ## 其他1:内置界面 + 上传的文件可通过http://ip:端口/file/preview/list进行查看 注意:如配置了context-path需要在地址中对应添加 ![img_9.png](img_9.png) ## 其他2:下载文件、删除文件 + > 可通过第四步返回的文件信息中的id > 访问http://ip:port/file/preview/download?id=??进行文件下载 > 访问http://ip:port/file/preview/delete?id=??进行文件删除 > 如果配置了context-path,请在地址中同样添加 -> 也可以调用IFilePreviewService服务中方法自行处理下载和删除 +> 也可以调用IFilePreviewService服务中方法自行处理下载和删除 ```java //获取文件bytes - byte[] bytes = filePreviewService.download(filePreviewInfo.getId()); - + byte[]bytes=filePreviewService.download(filePreviewInfo.getId()); + //删除预览文件 - Boolean result = filePreviewService.delete(filePreviewInfo.getId()); + Boolean result=filePreviewService.delete(filePreviewInfo.getId()); ``` + ## 其他3:实际使用中,可通过配置和实现接口方法将数据持久化到数据库中 + ```yaml file: preview: file-preview-record: cn.wubo.file.preview.demo.H2FilePriviewRecordImpl ``` + ```java public class H2FilePriviewRecordImpl implements IFilePreviewRecord { @@ -247,6 +264,7 @@ public class H2FilePriviewRecordImpl implements IFilePreviewRecord { ``` ## 其他4:实际使用中,可通过配置和实现接口方法将文件持久化到其他平台中 + ```yaml file: preview: @@ -345,7 +363,8 @@ public class H2FileStroageRecordImpl implements IFileStroageRecord { } } ``` -*注意: 文件存储这部分使用了[file-storage-spring-boot-starter](https://gitee.com/wb04307201/file-storage-spring-boot-starter)* +*注意: +文件存储这部分使用了[file-storage-spring-boot-starter](https://gitee.com/wb04307201/file-storage-spring-boot-starter)* #### ! *可能会扩展对压缩文件的支持* \ No newline at end of file diff --git a/codeview/README.md b/codeview/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b858f881172fc05c4957e7107ce9b616700369c8 --- /dev/null +++ b/codeview/README.md @@ -0,0 +1,4 @@ +# codeview + +使用vue,vue-codemirror,codemirror构建网页 +用于查看代码 \ No newline at end of file diff --git a/codeview/index.html b/codeview/index.html new file mode 100644 index 0000000000000000000000000000000000000000..deb13d1e557048b6a18b9af3a37e776403ce4663 --- /dev/null +++ b/codeview/index.html @@ -0,0 +1,17 @@ + + + + + + CodeMirror + + + + +
+ + + diff --git a/codeview/package.json b/codeview/package.json new file mode 100644 index 0000000000000000000000000000000000000000..250d876caa9754d04f26e78ab15b40c8e3890d13 --- /dev/null +++ b/codeview/package.json @@ -0,0 +1,38 @@ +{ + "name": "codeview", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@codemirror/lang-angular": "^0.1.0", + "@codemirror/lang-cpp": "^6.0.2", + "@codemirror/lang-css": "^6.1.1", + "@codemirror/lang-html": "^6.4.2", + "@codemirror/lang-java": "^6.0.1", + "@codemirror/lang-javascript": "^6.1.4", + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-lezer": "^6.0.1", + "@codemirror/lang-markdown": "^6.1.0", + "@codemirror/lang-php": "^6.0.1", + "@codemirror/lang-python": "^6.1.2", + "@codemirror/lang-rust": "^6.0.1", + "@codemirror/lang-sql": "^6.4.0", + "@codemirror/lang-vue": "^0.1.1", + "@codemirror/lang-wast": "^6.0.1", + "@codemirror/lang-xml": "^6.0.2", + "@codemirror/legacy-modes": "^6.3.1", + "@codemirror/merge": "^0.1.6", + "@codemirror/theme-one-dark": "^6.1.1", + "codemirror": "^6.0.1", + "vue": "^3.2.47", + "vue-codemirror": "^6.1.1" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.0.0", + "vite": "^4.1.4" + } +} diff --git a/codeview/src/App.vue b/codeview/src/App.vue new file mode 100644 index 0000000000000000000000000000000000000000..1b4871b42167a05f61359ed7895bd9dd11a92a3a --- /dev/null +++ b/codeview/src/App.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/codeview/src/assets/base.css b/codeview/src/assets/base.css new file mode 100644 index 0000000000000000000000000000000000000000..71dc55a3cb5a72589496743a327c738ead3e1c83 --- /dev/null +++ b/codeview/src/assets/base.css @@ -0,0 +1,74 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + position: relative; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/codeview/src/assets/main.css b/codeview/src/assets/main.css new file mode 100644 index 0000000000000000000000000000000000000000..cab6e30c33e5095bd051424824cffd69956f52f3 --- /dev/null +++ b/codeview/src/assets/main.css @@ -0,0 +1,8 @@ +@import './base.css'; + +#app { + /*padding: 1rem 1rem;*/ + /*box-sizing: border-box;*/ + width: 100%; + height: 100%; +} diff --git a/codeview/src/main.js b/codeview/src/main.js new file mode 100644 index 0000000000000000000000000000000000000000..90e6400b4d8ad8aba0c1caa53874eb4b81380648 --- /dev/null +++ b/codeview/src/main.js @@ -0,0 +1,6 @@ +import { createApp } from 'vue' +import App from './App.vue' + +import './assets/main.css' + +createApp(App).mount('#app') diff --git a/codeview/vite.config.js b/codeview/vite.config.js new file mode 100644 index 0000000000000000000000000000000000000000..de5cb31c632332a5867502004ce2ade73d9df29f --- /dev/null +++ b/codeview/vite.config.js @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) diff --git a/img_1.png b/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..69c4a5d4bcb3f43e9113bb2eea60e1da620ce0c1 Binary files /dev/null and b/img_1.png differ diff --git a/img_10.png b/img_10.png new file mode 100644 index 0000000000000000000000000000000000000000..996c9dc6aa7be85e12c53f89c7bd0db1c57c0d93 Binary files /dev/null and b/img_10.png differ diff --git a/img_11.png b/img_11.png new file mode 100644 index 0000000000000000000000000000000000000000..ca7077c4774e7b22fb01c2ea3f3f11cbd73e36df Binary files /dev/null and b/img_11.png differ diff --git a/pom.xml b/pom.xml index 028f8e73125c6d3dae93d36df9897b9b6e1ab26a..66a7f840d01d272b5b025be1eefa99989e39e733 100644 --- a/pom.xml +++ b/pom.xml @@ -130,10 +130,6 @@ e-iceblue https://repo.e-iceblue.cn/repository/maven-public/ - - jitpack.io - https://jitpack.io - diff --git a/src/main/java/cn/wubo/file/preview/servlet/OnlyOfficePreviewServlet.java b/src/main/java/cn/wubo/file/preview/servlet/OnlyOfficePreviewServlet.java index 70aa0ae75565b49ca21e3d7e4144fe61000234ac..13bbcaa7f79d6578c2eddcde656c21466b57c482 100644 --- a/src/main/java/cn/wubo/file/preview/servlet/OnlyOfficePreviewServlet.java +++ b/src/main/java/cn/wubo/file/preview/servlet/OnlyOfficePreviewServlet.java @@ -1,12 +1,12 @@ package cn.wubo.file.preview.servlet; -import cn.wubo.file.preview.utils.Page; import cn.wubo.file.preview.config.OnlyOfficeProperties; import cn.wubo.file.preview.core.FilePreviewInfo; import cn.wubo.file.preview.record.IFilePreviewRecord; import cn.wubo.file.preview.storage.IFileStorage; import cn.wubo.file.preview.utils.FileUtils; import cn.wubo.file.preview.utils.IoUtils; +import cn.wubo.file.preview.utils.Page; import lombok.extern.slf4j.Slf4j; import javax.servlet.ServletException; @@ -15,13 +15,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Base64; import java.util.HashMap; import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; @Slf4j public class OnlyOfficePreviewServlet extends HttpServlet { @@ -46,59 +41,85 @@ public class OnlyOfficePreviewServlet extends HttpServlet { log.debug("预览文件-----id:{}", id); FilePreviewInfo info = filePreviewRecord.findById(id); + Map data = new HashMap<>(); + String contextPath = req.getContextPath(); String extName = FileUtils.extName(info.getFileName()); String fileType = FileUtils.fileType(extName); - if ("word".equals(fileType) || "excel".equals(fileType) || "power point".equals(fileType) || "pdf".equals(fileType) || "txt".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, req.getContextPath()); - data.put("url", onlyOfficeProperties.getApijs()); - if ("word".equals(fileType) || "pdf".equals(fileType) || "txt".equals(fileType)) - data.put(DOCUMENT_TYPE, "word"); - else if ("excel".equals(fileType)) data.put(DOCUMENT_TYPE, "cell"); - else if ("power point".equals(fileType)) data.put(DOCUMENT_TYPE, "slide"); - data.put("fileType", "txt".equals(fileType) ? "txt" : extName); - data.put("key", info.getId()); - data.put("title", info.getOriginalFilename()); - data.put("downloadUrl", onlyOfficeProperties.getDownload() + "?id=" + info.getId()); - data.put("callbackUrl", onlyOfficeProperties.getCallback() + "?id=" + info.getId()); - data.put("lang", "zh"); - data.put("userid", "file preview"); - data.put("username", "file preview"); - Page onlyofficePage = new Page("onlyoffice.ftl", data, resp); - onlyofficePage.write(); - } else if ("markdown".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - - byte[] bytes = fileStorage.get(info); - Path path = Files.createTempFile("markdown", info.getFileName()); - Files.write(path, bytes); - - try (Stream lines = Files.lines(path)) { - data.put("content", new String(Base64.getEncoder().encode(lines.collect(Collectors.joining("\n")).getBytes()))); + switch (fileType) { + case "word": + case "excel": + case "power point": + case "txt": + data.put(CONTEXT_PATH, req.getContextPath()); + data.put("url", onlyOfficeProperties.getApijs()); + switch (fileType) { + case "word": + case "txt": + data.put(DOCUMENT_TYPE, "word"); + break; + case "excel": + data.put(DOCUMENT_TYPE, "cell"); + break; + case "power point": + data.put(DOCUMENT_TYPE, "slide"); + break; + } + data.put("fileType", "txt".equals(fileType) ? "txt" : extName); + data.put("key", info.getId()); + data.put("title", info.getOriginalFilename()); + data.put("downloadUrl", onlyOfficeProperties.getDownload() + "?id=" + info.getId()); + data.put("callbackUrl", onlyOfficeProperties.getCallback() + "?id=" + info.getId()); + data.put("lang", "zh"); + data.put("userid", "file preview"); + data.put("username", "file preview"); + Page onlyofficePage = new Page("onlyoffice.ftl", data, resp); + onlyofficePage.write(); + break; + case "markdown": { + data.put(CONTEXT_PATH, contextPath); + data.put("content", IoUtils.readByte(fileStorage.get(info), info.getFileName())); + Page markdownPage = new Page("markdown.ftl", data, resp); + markdownPage.write(); + break; } - Page markdownPage = new Page("markdown.ftl", data, resp); - markdownPage.write(); - } else if ("video".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); - Page markdownPage = new Page("video.ftl", data, resp); - markdownPage.write(); - } else if ("audio".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); - Page markdownPage = new Page("audio.ftl", data, resp); - markdownPage.write(); - } else { - resp.setContentType(FileUtils.getMimeType(info.getFileName())); - - - try (OutputStream os = resp.getOutputStream()) { - IoUtils.writeToStream(fileStorage.get(info), os); + case "sql": + case "cpp": + case "java": + case "xml": + case "javascript": + case "json": + case "css": + case "python": + data.put(CONTEXT_PATH, contextPath); + data.put("language", fileType); + data.put("content", IoUtils.readByte(fileStorage.get(info), info.getFileName())); + Page viewPage = new Page("code.ftl", data, resp); + viewPage.write(); + break; + case "video": { + data.put(CONTEXT_PATH, contextPath); + data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); + Page markdownPage = new Page("video.ftl", data, resp); + markdownPage.write(); + break; + } + case "audio": { + data.put(CONTEXT_PATH, contextPath); + data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); + Page markdownPage = new Page("audio.ftl", data, resp); + markdownPage.write(); + break; } + case "pdf": + resp.sendRedirect(String.format("%s/pdfjs/3.0.279/web/viewer.html?file=%s/file/preview/download?id=%s", contextPath, contextPath, info.getId())); + break; + default: + resp.setContentType(FileUtils.getMimeType(info.getFileName())); + try (OutputStream os = resp.getOutputStream()) { + IoUtils.writeToStream(fileStorage.get(info), os); + } + break; } log.debug("预览文件-----结束"); diff --git a/src/main/java/cn/wubo/file/preview/servlet/PreviewServlet.java b/src/main/java/cn/wubo/file/preview/servlet/PreviewServlet.java index 66ca55be3c1b6f2ee66ce3056cd775cc65d3efcf..e0c989161cd6b3e90f576b92ee4f06794e0abf4d 100644 --- a/src/main/java/cn/wubo/file/preview/servlet/PreviewServlet.java +++ b/src/main/java/cn/wubo/file/preview/servlet/PreviewServlet.java @@ -1,11 +1,11 @@ package cn.wubo.file.preview.servlet; -import cn.wubo.file.preview.utils.Page; import cn.wubo.file.preview.core.FilePreviewInfo; import cn.wubo.file.preview.record.IFilePreviewRecord; import cn.wubo.file.preview.storage.IFileStorage; import cn.wubo.file.preview.utils.FileUtils; import cn.wubo.file.preview.utils.IoUtils; +import cn.wubo.file.preview.utils.Page; import lombok.extern.slf4j.Slf4j; import javax.servlet.ServletException; @@ -14,13 +14,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Base64; import java.util.HashMap; import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; @Slf4j public class PreviewServlet extends HttpServlet { @@ -43,41 +38,56 @@ public class PreviewServlet extends HttpServlet { log.debug("预览文件-----id:{}", id); FilePreviewInfo info = filePreviewRecord.findById(id); + Map data = new HashMap<>(); + String contextPath = req.getContextPath(); String extName = FileUtils.extName(info.getFileName()); String fileType = FileUtils.fileType(extName); - if ("markdown".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - - byte[] bytes = fileStorage.get(info); - Path path = Files.createTempFile("markdown", info.getFileName()); - Files.write(path, bytes); - - try (Stream lines = Files.lines(path)) { - data.put("content", new String(Base64.getEncoder().encode(lines.collect(Collectors.joining("\n")).getBytes()))); + switch (fileType) { + case "markdown": { + data.put(CONTEXT_PATH, contextPath); + data.put("content", IoUtils.readByte(fileStorage.get(info), info.getFileName())); + Page markdownPage = new Page("markdown.ftl", data, resp); + markdownPage.write(); + break; + } + case "sql": + case "cpp": + case "java": + case "xml": + case "javascript": + case "json": + case "css": + case "python": + data.put(CONTEXT_PATH, contextPath); + data.put("language", fileType); + data.put("content", IoUtils.readByte(fileStorage.get(info), info.getFileName())); + Page viewPage = new Page("code.ftl", data, resp); + viewPage.write(); + break; + case "video": { + data.put(CONTEXT_PATH, contextPath); + data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); + Page markdownPage = new Page("video.ftl", data, resp); + markdownPage.write(); + break; } - Page markdownPage = new Page("markdown.ftl", data, resp); - markdownPage.write(); - } else if ("video".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); - Page markdownPage = new Page("video.ftl", data, resp); - markdownPage.write(); - } else if ("audio".equals(fileType)) { - Map data = new HashMap<>(); - data.put(CONTEXT_PATH, contextPath); - data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); - Page markdownPage = new Page("audio.ftl", data, resp); - markdownPage.write(); - } else if ("pdf".equals(fileType)) { - resp.sendRedirect(String.format("%s/pdfjs/3.0.279/web/viewer.html?file=%s/file/preview/download?id=%s", contextPath, contextPath, info.getId())); - } else { - resp.setContentType(FileUtils.getMimeType(info.getFileName())); - try (OutputStream os = resp.getOutputStream()) { - IoUtils.writeToStream(fileStorage.get(info), os); + case "audio": { + data.put(CONTEXT_PATH, contextPath); + data.put("url", contextPath + "/file/preview/download?id=" + info.getId()); + Page markdownPage = new Page("audio.ftl", data, resp); + markdownPage.write(); + break; } + case "pdf": + resp.sendRedirect(String.format("%s/pdfjs/3.0.279/web/viewer.html?file=%s/file/preview/download?id=%s", contextPath, contextPath, info.getId())); + break; + default: + resp.setContentType(FileUtils.getMimeType(info.getFileName())); + try (OutputStream os = resp.getOutputStream()) { + IoUtils.writeToStream(fileStorage.get(info), os); + } + break; } log.debug("预览文件-----结束"); diff --git a/src/main/java/cn/wubo/file/preview/utils/FileUtils.java b/src/main/java/cn/wubo/file/preview/utils/FileUtils.java index 9177bda293eb5946749f8684f97bed1a1f76987d..d4e734da6e4eeca49196b62cd3729298caf65e7a 100644 --- a/src/main/java/cn/wubo/file/preview/utils/FileUtils.java +++ b/src/main/java/cn/wubo/file/preview/utils/FileUtils.java @@ -158,18 +158,32 @@ public class FileUtils { return "html"; case "md": return "markdown"; - case "txt": case "sql": - case "log": + return "sql"; case "c": - case "conf": case "cpp": case "h": + return "cpp"; case "java": + return "java"; + case "xml": + return "xml"; + case "js": + return "javascript"; + case "json": + return "json"; + case "css": + return "css"; + case "py": + return "python"; + case "txt": + case "log": + case "conf": case "prop": case "rc": case "sh": - case "xml": + case "yaml": + case "properties": default: return "txt"; } @@ -196,11 +210,7 @@ public class FileUtils { String contentType = URLConnection.getFileNameMap().getContentTypeFor(filePath); if (null == contentType) { // 补充一些常用的mimeType - if (StringUtils.endsWithIgnoreCase(filePath, ".css")) { - contentType = "text/css"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".js")) { - contentType = "application/x-javascript"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".rar")) { + if (StringUtils.endsWithIgnoreCase(filePath, ".rar")) { contentType = "application/x-rar-compressed"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".7z")) { contentType = "application/x-7z-compressed"; @@ -216,14 +226,8 @@ public class FileUtils { contentType = "application/octet-stream"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".bmp")) { contentType = "image/bmp"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".c")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".class")) { contentType = "application/octet-stream"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".conf")) { - contentType = "text/plain"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".cpp")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".doc")) { contentType = "application/msword"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".docx")) { @@ -240,24 +244,18 @@ public class FileUtils { contentType = "application/x-gtar"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".gz")) { contentType = "application/x-gzip"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".h")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".htm")) { contentType = "text/html"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".html")) { contentType = "text/html"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".jar")) { contentType = "application/java-archive"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".java")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".jpeg")) { contentType = "image/jpeg"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".jpg")) { contentType = "image/jpeg"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".jpg")) { contentType = "image/jpeg"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".log")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".m3u")) { contentType = "audio/x-mpegurl"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".m4a")) { @@ -304,22 +302,14 @@ public class FileUtils { contentType = "application/vnd.ms-powerpoint"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".pptx")) { contentType = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".prop")) { - contentType = "text/plain"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".rc")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".rmvb")) { contentType = "audio/x-pn-realaudio"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".rtf")) { contentType = "application/rtf"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".sh")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".tar")) { contentType = "application/x-tar"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".tgz")) { contentType = "application/x-compressed"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".txt")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".wav")) { contentType = "audio/x-wav"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".wma")) { @@ -328,15 +318,45 @@ public class FileUtils { contentType = "audio/x-ms-wmv"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".wps")) { contentType = "application/vnd.ms-works"; - } else if (StringUtils.endsWithIgnoreCase(filePath, ".xml")) { - contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".z")) { contentType = "application/x-compress"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".zip")) { contentType = "application/x-zip-compressed"; + } + /* + else if (StringUtils.endsWithIgnoreCase(filePath, ".java")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".sh")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".txt")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".c")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".conf")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".cpp")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".h")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".log")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".prop")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".rc")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".xml")) { + contentType = "text/plain"; } else if (StringUtils.endsWithIgnoreCase(filePath, ".sql")) { contentType = "text/plain"; - } + } else if (StringUtils.endsWithIgnoreCase(filePath, ".json")) { + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".css")) { + //contentType = "text/css"; + contentType = "text/plain"; + } else if (StringUtils.endsWithIgnoreCase(filePath, ".js")) { + //contentType = "application/x-javascript"; + contentType = "text/plain"; + }*/ } // 补充 diff --git a/src/main/java/cn/wubo/file/preview/utils/IoUtils.java b/src/main/java/cn/wubo/file/preview/utils/IoUtils.java index ffe22ee88df4e64583aca1a7aef7723c3a99c9e8..589704335489234c7bed71eb1f1669e4e8d84262 100644 --- a/src/main/java/cn/wubo/file/preview/utils/IoUtils.java +++ b/src/main/java/cn/wubo/file/preview/utils/IoUtils.java @@ -3,6 +3,11 @@ package cn.wubo.file.preview.utils; import lombok.extern.slf4j.Slf4j; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Base64; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Slf4j public class IoUtils { @@ -62,4 +67,14 @@ public class IoUtils { } } } + + public static String readByte(byte[] bytes, String fileName) throws IOException { + Path path = Files.createTempFile(String.valueOf(System.currentTimeMillis()), fileName); + Files.write(path, bytes); + try (Stream lines = Files.lines(path)) { + return new String(Base64.getEncoder().encode(lines.collect(Collectors.joining("\n")).getBytes())); + } finally { + Files.delete(path); + } + } } diff --git a/src/main/resources/META-INF/resources/codemirror/6.0.1/index-599f5341.js b/src/main/resources/META-INF/resources/codemirror/6.0.1/index-599f5341.js new file mode 100644 index 0000000000000000000000000000000000000000..55782f4daa169ff9d18620fd15d36f48325095ad --- /dev/null +++ b/src/main/resources/META-INF/resources/codemirror/6.0.1/index-599f5341.js @@ -0,0 +1,36 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const n of r)if(n.type==="childList")for(const s of n.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function t(r){const n={};return r.integrity&&(n.integrity=r.integrity),r.referrerPolicy&&(n.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?n.credentials="include":r.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(r){if(r.ep)return;r.ep=!0;const n=t(r);fetch(r.href,n)}})();function El(O,e){const t=Object.create(null),i=O.split(",");for(let r=0;r!!t[r.toLowerCase()]:r=>!!t[r]}function Al(O){if(J(O)){const e={};for(let t=0;t{if(t){const i=t.split(lg);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Dl(O){let e="";if(Ke(O))e=O;else if(J(O))for(let t=0;t{},ug=()=>!1,$g=/^on[^a-z]/,Hs=O=>$g.test(O),Ml=O=>O.startsWith("onUpdate:"),ht=Object.assign,Nl=(O,e)=>{const t=O.indexOf(e);t>-1&&O.splice(t,1)},dg=Object.prototype.hasOwnProperty,re=(O,e)=>dg.call(O,e),J=Array.isArray,mr=O=>Fs(O)==="[object Map]",pg=O=>Fs(O)==="[object Set]",K=O=>typeof O=="function",Ke=O=>typeof O=="string",Ll=O=>typeof O=="symbol",ve=O=>O!==null&&typeof O=="object",Ju=O=>ve(O)&&K(O.then)&&K(O.catch),mg=Object.prototype.toString,Fs=O=>mg.call(O),Pg=O=>Fs(O).slice(8,-1),gg=O=>Fs(O)==="[object Object]",Bl=O=>Ke(O)&&O!=="NaN"&&O[0]!=="-"&&""+parseInt(O,10)===O,Bn=El(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ks=O=>{const e=Object.create(null);return t=>e[t]||(e[t]=O(t))},Sg=/-(\w)/g,aO=Ks(O=>O.replace(Sg,(e,t)=>t?t.toUpperCase():"")),Xg=/\B([A-Z])/g,Bi=Ks(O=>O.replace(Xg,"-$1").toLowerCase()),Js=Ks(O=>O.charAt(0).toUpperCase()+O.slice(1)),Wo=Ks(O=>O?`on${Js(O)}`:""),Yr=(O,e)=>!Object.is(O,e),To=(O,e)=>{for(let t=0;t{Object.defineProperty(O,e,{configurable:!0,enumerable:!1,value:t})},yg=O=>{const e=parseFloat(O);return isNaN(e)?O:e};let Qh;const xg=()=>Qh||(Qh=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let _t;class bg{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_t,!e&&_t&&(this.index=(_t.scopes||(_t.scopes=[])).push(this)-1)}get active(){return this._active}run(e){if(this._active){const t=_t;try{return _t=this,e()}finally{_t=t}}}on(){_t=this}off(){_t=this.parent}stop(e){if(this._active){let t,i;for(t=0,i=this.effects.length;t{const e=new Set(O);return e.w=0,e.n=0,e},e$=O=>(O.w&GO)>0,t$=O=>(O.n&GO)>0,Tg=({deps:O})=>{if(O.length)for(let e=0;e{const{deps:e}=O;if(e.length){let t=0;for(let i=0;i{(c==="length"||c>=a)&&o.push(l)})}else switch(t!==void 0&&o.push(s.get(t)),e){case"add":J(O)?Bl(t)&&o.push(s.get("length")):(o.push(s.get(li)),mr(O)&&o.push(s.get(ba)));break;case"delete":J(O)||(o.push(s.get(li)),mr(O)&&o.push(s.get(ba)));break;case"set":mr(O)&&o.push(s.get(li));break}if(o.length===1)o[0]&&wa(o[0]);else{const a=[];for(const l of o)l&&a.push(...l);wa(Hl(a))}}function wa(O,e){const t=J(O)?O:[...O];for(const i of t)i.computed&&$h(i);for(const i of t)i.computed||$h(i)}function $h(O,e){(O!==It||O.allowRecurse)&&(O.scheduler?O.scheduler():O.run())}const vg=El("__proto__,__v_isRef,__isVue"),r$=new Set(Object.getOwnPropertyNames(Symbol).filter(O=>O!=="arguments"&&O!=="caller").map(O=>Symbol[O]).filter(Ll)),qg=Kl(),kg=Kl(!1,!0),Zg=Kl(!0),dh=Rg();function Rg(){const O={};return["includes","indexOf","lastIndexOf"].forEach(e=>{O[e]=function(...t){const i=se(this);for(let n=0,s=this.length;n{O[e]=function(...t){Hi();const i=se(this)[e].apply(this,t);return Fi(),i}}),O}function Ug(O){const e=se(this);return dt(e,"has",O),e.hasOwnProperty(O)}function Kl(O=!1,e=!1){return function(i,r,n){if(r==="__v_isReactive")return!O;if(r==="__v_isReadonly")return O;if(r==="__v_isShallow")return e;if(r==="__v_raw"&&n===(O?e?Fg:l$:e?a$:o$).get(i))return i;const s=J(i);if(!O){if(s&&re(dh,r))return Reflect.get(dh,r,n);if(r==="hasOwnProperty")return Ug}const o=Reflect.get(i,r,n);return(Ll(r)?r$.has(r):vg(r))||(O||dt(i,"get",r),e)?o:Ot(o)?s&&Bl(r)?o:o.value:ve(o)?O?c$(o):tc(o):o}}const Vg=n$(),zg=n$(!0);function n$(O=!1){return function(t,i,r,n){let s=t[i];if(zi(s)&&Ot(s)&&!Ot(r))return!1;if(!O&&(!fs(r)&&!zi(r)&&(s=se(s),r=se(r)),!J(t)&&Ot(s)&&!Ot(r)))return s.value=r,!0;const o=J(t)&&Bl(i)?Number(i)O,eo=O=>Reflect.getPrototypeOf(O);function $n(O,e,t=!1,i=!1){O=O.__v_raw;const r=se(O),n=se(e);t||(e!==n&&dt(r,"get",e),dt(r,"get",n));const{has:s}=eo(r),o=i?Jl:t?ic:vr;if(s.call(r,e))return o(O.get(e));if(s.call(r,n))return o(O.get(n));O!==r&&O.get(e)}function dn(O,e=!1){const t=this.__v_raw,i=se(t),r=se(O);return e||(O!==r&&dt(i,"has",O),dt(i,"has",r)),O===r?t.has(O):t.has(O)||t.has(r)}function pn(O,e=!1){return O=O.__v_raw,!e&&dt(se(O),"iterate",li),Reflect.get(O,"size",O)}function ph(O){O=se(O);const e=se(this);return eo(e).has.call(e,O)||(e.add(O),SO(e,"add",O,O)),this}function mh(O,e){e=se(e);const t=se(this),{has:i,get:r}=eo(t);let n=i.call(t,O);n||(O=se(O),n=i.call(t,O));const s=r.call(t,O);return t.set(O,e),n?Yr(e,s)&&SO(t,"set",O,e):SO(t,"add",O,e),this}function Ph(O){const e=se(this),{has:t,get:i}=eo(e);let r=t.call(e,O);r||(O=se(O),r=t.call(e,O)),i&&i.call(e,O);const n=e.delete(O);return r&&SO(e,"delete",O,void 0),n}function gh(){const O=se(this),e=O.size!==0,t=O.clear();return e&&SO(O,"clear",void 0,void 0),t}function mn(O,e){return function(i,r){const n=this,s=n.__v_raw,o=se(s),a=e?Jl:O?ic:vr;return!O&&dt(o,"iterate",li),s.forEach((l,c)=>i.call(r,a(l),a(c),n))}}function Pn(O,e,t){return function(...i){const r=this.__v_raw,n=se(r),s=mr(n),o=O==="entries"||O===Symbol.iterator&&s,a=O==="keys"&&s,l=r[O](...i),c=t?Jl:e?ic:vr;return!e&&dt(n,"iterate",a?ba:li),{next(){const{value:h,done:Q}=l.next();return Q?{value:h,done:Q}:{value:o?[c(h[0]),c(h[1])]:c(h),done:Q}},[Symbol.iterator](){return this}}}}function wO(O){return function(...e){return O==="delete"?!1:this}}function Eg(){const O={get(n){return $n(this,n)},get size(){return pn(this)},has:dn,add:ph,set:mh,delete:Ph,clear:gh,forEach:mn(!1,!1)},e={get(n){return $n(this,n,!1,!0)},get size(){return pn(this)},has:dn,add:ph,set:mh,delete:Ph,clear:gh,forEach:mn(!1,!0)},t={get(n){return $n(this,n,!0)},get size(){return pn(this,!0)},has(n){return dn.call(this,n,!0)},add:wO("add"),set:wO("set"),delete:wO("delete"),clear:wO("clear"),forEach:mn(!0,!1)},i={get(n){return $n(this,n,!0,!0)},get size(){return pn(this,!0)},has(n){return dn.call(this,n,!0)},add:wO("add"),set:wO("set"),delete:wO("delete"),clear:wO("clear"),forEach:mn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(n=>{O[n]=Pn(n,!1,!1),t[n]=Pn(n,!0,!1),e[n]=Pn(n,!1,!0),i[n]=Pn(n,!0,!0)}),[O,t,e,i]}const[Ag,Dg,Mg,Ng]=Eg();function ec(O,e){const t=e?O?Ng:Mg:O?Dg:Ag;return(i,r,n)=>r==="__v_isReactive"?!O:r==="__v_isReadonly"?O:r==="__v_raw"?i:Reflect.get(re(t,r)&&r in i?t:i,r,n)}const Lg={get:ec(!1,!1)},Bg={get:ec(!1,!0)},Hg={get:ec(!0,!1)},o$=new WeakMap,a$=new WeakMap,l$=new WeakMap,Fg=new WeakMap;function Kg(O){switch(O){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Jg(O){return O.__v_skip||!Object.isExtensible(O)?0:Kg(Pg(O))}function tc(O){return zi(O)?O:Oc(O,!1,s$,Lg,o$)}function eS(O){return Oc(O,!1,Ig,Bg,a$)}function c$(O){return Oc(O,!0,Cg,Hg,l$)}function Oc(O,e,t,i,r){if(!ve(O)||O.__v_raw&&!(e&&O.__v_isReactive))return O;const n=r.get(O);if(n)return n;const s=Jg(O);if(s===0)return O;const o=new Proxy(O,s===2?i:t);return r.set(O,o),o}function Ti(O){return zi(O)?Ti(O.__v_raw):!!(O&&O.__v_isReactive)}function zi(O){return!!(O&&O.__v_isReadonly)}function fs(O){return!!(O&&O.__v_isShallow)}function h$(O){return Ti(O)||zi(O)}function se(O){const e=O&&O.__v_raw;return e?se(e):O}function f$(O){return hs(O,"__v_skip",!0),O}const vr=O=>ve(O)?tc(O):O,ic=O=>ve(O)?c$(O):O;function Q$(O){UO&&It&&(O=se(O),i$(O.dep||(O.dep=Hl())))}function u$(O,e){O=se(O);const t=O.dep;t&&wa(t)}function Ot(O){return!!(O&&O.__v_isRef===!0)}function Hn(O){return tS(O,!0)}function tS(O,e){return Ot(O)?O:new OS(O,e)}class OS{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:se(e),this._value=t?e:vr(e)}get value(){return Q$(this),this._value}set value(e){const t=this.__v_isShallow||fs(e)||zi(e);e=t?e:se(e),Yr(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:vr(e),u$(this))}}function iS(O){return Ot(O)?O.value:O}const rS={get:(O,e,t)=>iS(Reflect.get(O,e,t)),set:(O,e,t,i)=>{const r=O[e];return Ot(r)&&!Ot(t)?(r.value=t,!0):Reflect.set(O,e,t,i)}};function $$(O){return Ti(O)?O:new Proxy(O,rS)}var d$;class nS{constructor(e,t,i,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[d$]=!1,this._dirty=!0,this.effect=new Fl(e,()=>{this._dirty||(this._dirty=!0,u$(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=i}get value(){const e=se(this);return Q$(e),(e._dirty||!e._cacheable)&&(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}d$="__v_isReadonly";function sS(O,e,t=!1){let i,r;const n=K(O);return n?(i=O,r=Dt):(i=O.get,r=O.set),new nS(i,r,n||!r,t)}function VO(O,e,t,i){let r;try{r=i?O(...i):O()}catch(n){to(n,e,t)}return r}function Mt(O,e,t,i){if(K(O)){const n=VO(O,e,t,i);return n&&Ju(n)&&n.catch(s=>{to(s,e,t)}),n}const r=[];for(let n=0;n>>1;kr(tt[i])tO&&tt.splice(e,1)}function hS(O){J(O)?Yi.push(...O):(!$O||!$O.includes(O,O.allowRecurse?ti+1:ti))&&Yi.push(O),m$()}function Sh(O,e=qr?tO+1:0){for(;ekr(t)-kr(i)),ti=0;ti<$O.length;ti++)$O[ti]();$O=null,ti=0}}const kr=O=>O.id==null?1/0:O.id,fS=(O,e)=>{const t=kr(O)-kr(e);if(t===0){if(O.pre&&!e.pre)return-1;if(e.pre&&!O.pre)return 1}return t};function g$(O){Wa=!1,qr=!0,tt.sort(fS);const e=Dt;try{for(tO=0;tOKe(u)?u.trim():u)),h&&(r=t.map(yg))}let o,a=i[o=Wo(e)]||i[o=Wo(aO(e))];!a&&n&&(a=i[o=Wo(Bi(e))]),a&&Mt(a,O,6,r);const l=i[o+"Once"];if(l){if(!O.emitted)O.emitted={};else if(O.emitted[o])return;O.emitted[o]=!0,Mt(l,O,6,r)}}function S$(O,e,t=!1){const i=e.emitsCache,r=i.get(O);if(r!==void 0)return r;const n=O.emits;let s={},o=!1;if(!K(O)){const a=l=>{const c=S$(l,e,!0);c&&(o=!0,ht(s,c))};!t&&e.mixins.length&&e.mixins.forEach(a),O.extends&&a(O.extends),O.mixins&&O.mixins.forEach(a)}return!n&&!o?(ve(O)&&i.set(O,null),null):(J(n)?n.forEach(a=>s[a]=null):ht(s,n),ve(O)&&i.set(O,s),s)}function Oo(O,e){return!O||!Hs(e)?!1:(e=e.slice(2).replace(/Once$/,""),re(O,e[0].toLowerCase()+e.slice(1))||re(O,Bi(e))||re(O,e))}let Et=null,X$=null;function Qs(O){const e=Et;return Et=O,X$=O&&O.type.__scopeId||null,e}function uS(O,e=Et,t){if(!e||O._n)return O;const i=(...r)=>{i._d&&vh(-1);const n=Qs(e);let s;try{s=O(...r)}finally{Qs(n),i._d&&vh(1)}return s};return i._n=!0,i._c=!0,i._d=!0,i}function Yo(O){const{type:e,vnode:t,proxy:i,withProxy:r,props:n,propsOptions:[s],slots:o,attrs:a,emit:l,render:c,renderCache:h,data:Q,setupState:u,ctx:$,inheritAttrs:d}=O;let p,P;const y=Qs(O);try{if(t.shapeFlag&4){const b=r||i;p=eO(c.call(b,b,h,n,u,Q,$)),P=a}else{const b=e;p=eO(b.length>1?b(n,{attrs:a,slots:o,emit:l}):b(n,null)),P=e.props?a:$S(a)}}catch(b){Sr.length=0,to(b,O,1),p=Wt(Zr)}let x=p;if(P&&d!==!1){const b=Object.keys(P),{shapeFlag:Y}=x;b.length&&Y&7&&(s&&b.some(Ml)&&(P=dS(P,s)),x=_i(x,P))}return t.dirs&&(x=_i(x),x.dirs=x.dirs?x.dirs.concat(t.dirs):t.dirs),t.transition&&(x.transition=t.transition),p=x,Qs(y),p}const $S=O=>{let e;for(const t in O)(t==="class"||t==="style"||Hs(t))&&((e||(e={}))[t]=O[t]);return e},dS=(O,e)=>{const t={};for(const i in O)(!Ml(i)||!(i.slice(9)in e))&&(t[i]=O[i]);return t};function pS(O,e,t){const{props:i,children:r,component:n}=O,{props:s,children:o,patchFlag:a}=e,l=n.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&a>=0){if(a&1024)return!0;if(a&16)return i?Xh(i,s,l):!!s;if(a&8){const c=e.dynamicProps;for(let h=0;hO.__isSuspense;function gS(O,e){e&&e.pendingBranch?J(O)?e.effects.push(...O):e.effects.push(O):hS(O)}function SS(O,e){if(Ue){let t=Ue.provides;const i=Ue.parent&&Ue.parent.provides;i===t&&(t=Ue.provides=Object.create(i)),t[O]=e}}function Pr(O,e,t=!1){const i=Ue||Et;if(i){const r=i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides;if(r&&O in r)return r[O];if(arguments.length>1)return t&&K(e)?e.call(i.proxy):e}}const gn={};function jt(O,e,t){return y$(O,e,t)}function y$(O,e,{immediate:t,deep:i,flush:r,onTrack:n,onTrigger:s}=ye){const o=Wg()===(Ue==null?void 0:Ue.scope)?Ue:null;let a,l=!1,c=!1;if(Ot(O)?(a=()=>O.value,l=fs(O)):Ti(O)?(a=()=>O,i=!0):J(O)?(c=!0,l=O.some(x=>Ti(x)||fs(x)),a=()=>O.map(x=>{if(Ot(x))return x.value;if(Ti(x))return yi(x);if(K(x))return VO(x,o,2)})):K(O)?e?a=()=>VO(O,o,2):a=()=>{if(!(o&&o.isUnmounted))return h&&h(),Mt(O,o,3,[Q])}:a=Dt,e&&i){const x=a;a=()=>yi(x())}let h,Q=x=>{h=P.onStop=()=>{VO(x,o,4)}},u;if(Ur)if(Q=Dt,e?t&&Mt(e,o,3,[a(),c?[]:void 0,Q]):a(),r==="sync"){const x=PX();u=x.__watcherHandles||(x.__watcherHandles=[])}else return Dt;let $=c?new Array(O.length).fill(gn):gn;const d=()=>{if(P.active)if(e){const x=P.run();(i||l||(c?x.some((b,Y)=>Yr(b,$[Y])):Yr(x,$)))&&(h&&h(),Mt(e,o,3,[x,$===gn?void 0:c&&$[0]===gn?[]:$,Q]),$=x)}else P.run()};d.allowRecurse=!!e;let p;r==="sync"?p=d:r==="post"?p=()=>Qt(d,o&&o.suspense):(d.pre=!0,o&&(d.id=o.uid),p=()=>nc(d));const P=new Fl(a,p);e?t?d():$=P.run():r==="post"?Qt(P.run.bind(P),o&&o.suspense):P.run();const y=()=>{P.stop(),o&&o.scope&&Nl(o.scope.effects,P)};return u&&u.push(y),y}function XS(O,e,t){const i=this.proxy,r=Ke(O)?O.includes(".")?x$(i,O):()=>i[O]:O.bind(i,i);let n;K(e)?n=e:(n=e.handler,t=e);const s=Ue;ji(this);const o=y$(r,n.bind(i),t);return s?ji(s):ci(),o}function x$(O,e){const t=e.split(".");return()=>{let i=O;for(let r=0;r{yi(t,e)});else if(gg(O))for(const t in O)yi(O[t],e);return O}function b$(O){return K(O)?{setup:O,name:O.name}:O}const Fn=O=>!!O.type.__asyncLoader,w$=O=>O.type.__isKeepAlive;function yS(O,e){W$(O,"a",e)}function xS(O,e){W$(O,"da",e)}function W$(O,e,t=Ue){const i=O.__wdc||(O.__wdc=()=>{let r=t;for(;r;){if(r.isDeactivated)return;r=r.parent}return O()});if(io(e,i,t),t){let r=t.parent;for(;r&&r.parent;)w$(r.parent.vnode)&&bS(i,e,t,r),r=r.parent}}function bS(O,e,t,i){const r=io(e,O,i,!0);v$(()=>{Nl(i[e],r)},t)}function io(O,e,t=Ue,i=!1){if(t){const r=t[O]||(t[O]=[]),n=e.__weh||(e.__weh=(...s)=>{if(t.isUnmounted)return;Hi(),ji(t);const o=Mt(e,t,O,s);return ci(),Fi(),o});return i?r.unshift(n):r.push(n),n}}const yO=O=>(e,t=Ue)=>(!Ur||O==="sp")&&io(O,(...i)=>e(...i),t),wS=yO("bm"),T$=yO("m"),WS=yO("bu"),TS=yO("u"),Y$=yO("bum"),v$=yO("um"),YS=yO("sp"),vS=yO("rtg"),qS=yO("rtc");function kS(O,e=Ue){io("ec",O,e)}function BO(O,e,t,i){const r=O.dirs,n=e&&e.dirs;for(let s=0;sO?C$(O)?lc(O)||O.proxy:Ta(O.parent):null,gr=ht(Object.create(null),{$:O=>O,$el:O=>O.vnode.el,$data:O=>O.data,$props:O=>O.props,$attrs:O=>O.attrs,$slots:O=>O.slots,$refs:O=>O.refs,$parent:O=>Ta(O.parent),$root:O=>Ta(O.root),$emit:O=>O.emit,$options:O=>sc(O),$forceUpdate:O=>O.f||(O.f=()=>nc(O.update)),$nextTick:O=>O.n||(O.n=aS.bind(O.proxy)),$watch:O=>XS.bind(O)}),vo=(O,e)=>O!==ye&&!O.__isScriptSetup&&re(O,e),VS={get({_:O},e){const{ctx:t,setupState:i,data:r,props:n,accessCache:s,type:o,appContext:a}=O;let l;if(e[0]!=="$"){const u=s[e];if(u!==void 0)switch(u){case 1:return i[e];case 2:return r[e];case 4:return t[e];case 3:return n[e]}else{if(vo(i,e))return s[e]=1,i[e];if(r!==ye&&re(r,e))return s[e]=2,r[e];if((l=O.propsOptions[0])&&re(l,e))return s[e]=3,n[e];if(t!==ye&&re(t,e))return s[e]=4,t[e];Ya&&(s[e]=0)}}const c=gr[e];let h,Q;if(c)return e==="$attrs"&&dt(O,"get",e),c(O);if((h=o.__cssModules)&&(h=h[e]))return h;if(t!==ye&&re(t,e))return s[e]=4,t[e];if(Q=a.config.globalProperties,re(Q,e))return Q[e]},set({_:O},e,t){const{data:i,setupState:r,ctx:n}=O;return vo(r,e)?(r[e]=t,!0):i!==ye&&re(i,e)?(i[e]=t,!0):re(O.props,e)||e[0]==="$"&&e.slice(1)in O?!1:(n[e]=t,!0)},has({_:{data:O,setupState:e,accessCache:t,ctx:i,appContext:r,propsOptions:n}},s){let o;return!!t[s]||O!==ye&&re(O,s)||vo(e,s)||(o=n[0])&&re(o,s)||re(i,s)||re(gr,s)||re(r.config.globalProperties,s)},defineProperty(O,e,t){return t.get!=null?O._.accessCache[e]=0:re(t,"value")&&this.set(O,e,t.value,null),Reflect.defineProperty(O,e,t)}};let Ya=!0;function zS(O){const e=sc(O),t=O.proxy,i=O.ctx;Ya=!1,e.beforeCreate&&xh(e.beforeCreate,O,"bc");const{data:r,computed:n,methods:s,watch:o,provide:a,inject:l,created:c,beforeMount:h,mounted:Q,beforeUpdate:u,updated:$,activated:d,deactivated:p,beforeDestroy:P,beforeUnmount:y,destroyed:x,unmounted:b,render:Y,renderTracked:Z,renderTriggered:E,errorCaptured:Oe,serverPrefetch:H,expose:N,inheritAttrs:oe,components:Xe,directives:Te,filters:Ge}=e;if(l&&_S(l,i,null,O.appContext.config.unwrapInjectedRef),s)for(const ie in s){const F=s[ie];K(F)&&(i[ie]=F.bind(t))}if(r){const ie=r.call(t,t);ve(ie)&&(O.data=tc(ie))}if(Ya=!0,n)for(const ie in n){const F=n[ie],fe=K(F)?F.bind(t,t):K(F.get)?F.get.bind(t,t):Dt,be=!K(F)&&K(F.set)?F.set.bind(t):Dt,nt=E$({get:fe,set:be});Object.defineProperty(i,ie,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(o)for(const ie in o)k$(o[ie],i,t,ie);if(a){const ie=K(a)?a.call(t):a;Reflect.ownKeys(ie).forEach(F=>{SS(F,ie[F])})}c&&xh(c,O,"c");function ne(ie,F){J(F)?F.forEach(fe=>ie(fe.bind(t))):F&&ie(F.bind(t))}if(ne(wS,h),ne(T$,Q),ne(WS,u),ne(TS,$),ne(yS,d),ne(xS,p),ne(kS,Oe),ne(qS,Z),ne(vS,E),ne(Y$,y),ne(v$,b),ne(YS,H),J(N))if(N.length){const ie=O.exposed||(O.exposed={});N.forEach(F=>{Object.defineProperty(ie,F,{get:()=>t[F],set:fe=>t[F]=fe})})}else O.exposed||(O.exposed={});Y&&O.render===Dt&&(O.render=Y),oe!=null&&(O.inheritAttrs=oe),Xe&&(O.components=Xe),Te&&(O.directives=Te)}function _S(O,e,t=Dt,i=!1){J(O)&&(O=va(O));for(const r in O){const n=O[r];let s;ve(n)?"default"in n?s=Pr(n.from||r,n.default,!0):s=Pr(n.from||r):s=Pr(n),Ot(s)&&i?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):e[r]=s}}function xh(O,e,t){Mt(J(O)?O.map(i=>i.bind(e.proxy)):O.bind(e.proxy),e,t)}function k$(O,e,t,i){const r=i.includes(".")?x$(t,i):()=>t[i];if(Ke(O)){const n=e[O];K(n)&&jt(r,n)}else if(K(O))jt(r,O.bind(t));else if(ve(O))if(J(O))O.forEach(n=>k$(n,e,t,i));else{const n=K(O.handler)?O.handler.bind(t):e[O.handler];K(n)&&jt(r,n,O)}}function sc(O){const e=O.type,{mixins:t,extends:i}=e,{mixins:r,optionsCache:n,config:{optionMergeStrategies:s}}=O.appContext,o=n.get(e);let a;return o?a=o:!r.length&&!t&&!i?a=e:(a={},r.length&&r.forEach(l=>us(a,l,s,!0)),us(a,e,s)),ve(e)&&n.set(e,a),a}function us(O,e,t,i=!1){const{mixins:r,extends:n}=e;n&&us(O,n,t,!0),r&&r.forEach(s=>us(O,s,t,!0));for(const s in e)if(!(i&&s==="expose")){const o=jS[s]||t&&t[s];O[s]=o?o(O[s],e[s]):e[s]}return O}const jS={data:bh,props:JO,emits:JO,methods:JO,computed:JO,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:JO,directives:JO,watch:CS,provide:bh,inject:GS};function bh(O,e){return e?O?function(){return ht(K(O)?O.call(this,this):O,K(e)?e.call(this,this):e)}:e:O}function GS(O,e){return JO(va(O),va(e))}function va(O){if(J(O)){const e={};for(let t=0;t0)&&!(s&16)){if(s&8){const c=O.vnode.dynamicProps;for(let h=0;h{a=!0;const[Q,u]=R$(h,e,!0);ht(s,Q),u&&o.push(...u)};!t&&e.mixins.length&&e.mixins.forEach(c),O.extends&&c(O.extends),O.mixins&&O.mixins.forEach(c)}if(!n&&!a)return ve(O)&&i.set(O,Wi),Wi;if(J(n))for(let c=0;c-1,u[1]=d<0||$-1||re(u,"default"))&&o.push(h)}}}const l=[s,o];return ve(O)&&i.set(O,l),l}function wh(O){return O[0]!=="$"}function Wh(O){const e=O&&O.toString().match(/^\s*(function|class) (\w+)/);return e?e[2]:O===null?"null":""}function Th(O,e){return Wh(O)===Wh(e)}function Yh(O,e){return J(e)?e.findIndex(t=>Th(t,O)):K(e)&&Th(e,O)?0:-1}const U$=O=>O[0]==="_"||O==="$stable",oc=O=>J(O)?O.map(eO):[eO(O)],AS=(O,e,t)=>{if(e._n)return e;const i=uS((...r)=>oc(e(...r)),t);return i._c=!1,i},V$=(O,e,t)=>{const i=O._ctx;for(const r in O){if(U$(r))continue;const n=O[r];if(K(n))e[r]=AS(r,n,i);else if(n!=null){const s=oc(n);e[r]=()=>s}}},z$=(O,e)=>{const t=oc(e);O.slots.default=()=>t},DS=(O,e)=>{if(O.vnode.shapeFlag&32){const t=e._;t?(O.slots=se(e),hs(e,"_",t)):V$(e,O.slots={})}else O.slots={},e&&z$(O,e);hs(O.slots,no,1)},MS=(O,e,t)=>{const{vnode:i,slots:r}=O;let n=!0,s=ye;if(i.shapeFlag&32){const o=e._;o?t&&o===1?n=!1:(ht(r,e),!t&&o===1&&delete r._):(n=!e.$stable,V$(e,r)),s=e}else e&&(z$(O,e),s={default:1});if(n)for(const o in r)!U$(o)&&!(o in s)&&delete r[o]};function _$(){return{app:null,config:{isNativeTag:ug,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let NS=0;function LS(O,e){return function(i,r=null){K(i)||(i=Object.assign({},i)),r!=null&&!ve(r)&&(r=null);const n=_$(),s=new Set;let o=!1;const a=n.app={_uid:NS++,_component:i,_props:r,_container:null,_context:n,_instance:null,version:gX,get config(){return n.config},set config(l){},use(l,...c){return s.has(l)||(l&&K(l.install)?(s.add(l),l.install(a,...c)):K(l)&&(s.add(l),l(a,...c))),a},mixin(l){return n.mixins.includes(l)||n.mixins.push(l),a},component(l,c){return c?(n.components[l]=c,a):n.components[l]},directive(l,c){return c?(n.directives[l]=c,a):n.directives[l]},mount(l,c,h){if(!o){const Q=Wt(i,r);return Q.appContext=n,c&&e?e(Q,l):O(Q,l,h),o=!0,a._container=l,l.__vue_app__=a,lc(Q.component)||Q.component.proxy}},unmount(){o&&(O(null,a._container),delete a._container.__vue_app__)},provide(l,c){return n.provides[l]=c,a}};return a}}function ka(O,e,t,i,r=!1){if(J(O)){O.forEach((Q,u)=>ka(Q,e&&(J(e)?e[u]:e),t,i,r));return}if(Fn(i)&&!r)return;const n=i.shapeFlag&4?lc(i.component)||i.component.proxy:i.el,s=r?null:n,{i:o,r:a}=O,l=e&&e.r,c=o.refs===ye?o.refs={}:o.refs,h=o.setupState;if(l!=null&&l!==a&&(Ke(l)?(c[l]=null,re(h,l)&&(h[l]=null)):Ot(l)&&(l.value=null)),K(a))VO(a,o,12,[s,c]);else{const Q=Ke(a),u=Ot(a);if(Q||u){const $=()=>{if(O.f){const d=Q?re(h,a)?h[a]:c[a]:a.value;r?J(d)&&Nl(d,n):J(d)?d.includes(n)||d.push(n):Q?(c[a]=[n],re(h,a)&&(h[a]=c[a])):(a.value=[n],O.k&&(c[O.k]=a.value))}else Q?(c[a]=s,re(h,a)&&(h[a]=s)):u&&(a.value=s,O.k&&(c[O.k]=s))};s?($.id=-1,Qt($,t)):$()}}}const Qt=gS;function BS(O){return HS(O)}function HS(O,e){const t=xg();t.__VUE__=!0;const{insert:i,remove:r,patchProp:n,createElement:s,createText:o,createComment:a,setText:l,setElementText:c,parentNode:h,nextSibling:Q,setScopeId:u=Dt,insertStaticContent:$}=O,d=(m,g,S,W=null,w=null,k=null,V=!1,v=null,U=!!g.dynamicChildren)=>{if(m===g)return;m&&!Or(m,g)&&(W=un(m),Me(m,w,k,!0),m=null),g.patchFlag===-2&&(U=!1,g.dynamicChildren=null);const{type:T,ref:A,shapeFlag:G}=g;switch(T){case ro:p(m,g,S,W);break;case Zr:P(m,g,S,W);break;case qo:m==null&&y(g,S,W,V);break;case dO:Xe(m,g,S,W,w,k,V,v,U);break;default:G&1?Y(m,g,S,W,w,k,V,v,U):G&6?Te(m,g,S,W,w,k,V,v,U):(G&64||G&128)&&T.process(m,g,S,W,w,k,V,v,U,di)}A!=null&&w&&ka(A,m&&m.ref,k,g||m,!g)},p=(m,g,S,W)=>{if(m==null)i(g.el=o(g.children),S,W);else{const w=g.el=m.el;g.children!==m.children&&l(w,g.children)}},P=(m,g,S,W)=>{m==null?i(g.el=a(g.children||""),S,W):g.el=m.el},y=(m,g,S,W)=>{[m.el,m.anchor]=$(m.children,g,S,W,m.el,m.anchor)},x=({el:m,anchor:g},S,W)=>{let w;for(;m&&m!==g;)w=Q(m),i(m,S,W),m=w;i(g,S,W)},b=({el:m,anchor:g})=>{let S;for(;m&&m!==g;)S=Q(m),r(m),m=S;r(g)},Y=(m,g,S,W,w,k,V,v,U)=>{V=V||g.type==="svg",m==null?Z(g,S,W,w,k,V,v,U):H(m,g,w,k,V,v,U)},Z=(m,g,S,W,w,k,V,v)=>{let U,T;const{type:A,props:G,shapeFlag:D,transition:L,dirs:ee}=m;if(U=m.el=s(m.type,k,G&&G.is,G),D&8?c(U,m.children):D&16&&Oe(m.children,U,null,W,w,k&&A!=="foreignObject",V,v),ee&&BO(m,null,W,"created"),E(U,m,m.scopeId,V,W),G){for(const Qe in G)Qe!=="value"&&!Bn(Qe)&&n(U,Qe,null,G[Qe],k,m.children,W,w,uO);"value"in G&&n(U,"value",null,G.value),(T=G.onVnodeBeforeMount)&&Bt(T,W,m)}ee&&BO(m,null,W,"beforeMount");const pe=(!w||w&&!w.pendingBranch)&&L&&!L.persisted;pe&&L.beforeEnter(U),i(U,g,S),((T=G&&G.onVnodeMounted)||pe||ee)&&Qt(()=>{T&&Bt(T,W,m),pe&&L.enter(U),ee&&BO(m,null,W,"mounted")},w)},E=(m,g,S,W,w)=>{if(S&&u(m,S),W)for(let k=0;k{for(let T=U;T{const v=g.el=m.el;let{patchFlag:U,dynamicChildren:T,dirs:A}=g;U|=m.patchFlag&16;const G=m.props||ye,D=g.props||ye;let L;S&&HO(S,!1),(L=D.onVnodeBeforeUpdate)&&Bt(L,S,g,m),A&&BO(g,m,S,"beforeUpdate"),S&&HO(S,!0);const ee=w&&g.type!=="foreignObject";if(T?N(m.dynamicChildren,T,v,S,W,ee,k):V||F(m,g,v,null,S,W,ee,k,!1),U>0){if(U&16)oe(v,g,G,D,S,W,w);else if(U&2&&G.class!==D.class&&n(v,"class",null,D.class,w),U&4&&n(v,"style",G.style,D.style,w),U&8){const pe=g.dynamicProps;for(let Qe=0;Qe{L&&Bt(L,S,g,m),A&&BO(g,m,S,"updated")},W)},N=(m,g,S,W,w,k,V)=>{for(let v=0;v{if(S!==W){if(S!==ye)for(const v in S)!Bn(v)&&!(v in W)&&n(m,v,S[v],null,V,g.children,w,k,uO);for(const v in W){if(Bn(v))continue;const U=W[v],T=S[v];U!==T&&v!=="value"&&n(m,v,T,U,V,g.children,w,k,uO)}"value"in W&&n(m,"value",S.value,W.value)}},Xe=(m,g,S,W,w,k,V,v,U)=>{const T=g.el=m?m.el:o(""),A=g.anchor=m?m.anchor:o("");let{patchFlag:G,dynamicChildren:D,slotScopeIds:L}=g;L&&(v=v?v.concat(L):L),m==null?(i(T,S,W),i(A,S,W),Oe(g.children,S,A,w,k,V,v,U)):G>0&&G&64&&D&&m.dynamicChildren?(N(m.dynamicChildren,D,S,w,k,V,v),(g.key!=null||w&&g===w.subTree)&&j$(m,g,!0)):F(m,g,S,A,w,k,V,v,U)},Te=(m,g,S,W,w,k,V,v,U)=>{g.slotScopeIds=v,m==null?g.shapeFlag&512?w.ctx.activate(g,S,W,V,U):Ge(g,S,W,w,k,V,U):ke(m,g,U)},Ge=(m,g,S,W,w,k,V)=>{const v=m.component=cX(m,W,w);if(w$(m)&&(v.ctx.renderer=di),hX(v),v.asyncDep){if(w&&w.registerDep(v,ne),!m.el){const U=v.subTree=Wt(Zr);P(null,U,g,S)}return}ne(v,m,g,S,w,k,V)},ke=(m,g,S)=>{const W=g.component=m.component;if(pS(m,g,S))if(W.asyncDep&&!W.asyncResolved){ie(W,g,S);return}else W.next=g,cS(W.update),W.update();else g.el=m.el,W.vnode=g},ne=(m,g,S,W,w,k,V)=>{const v=()=>{if(m.isMounted){let{next:A,bu:G,u:D,parent:L,vnode:ee}=m,pe=A,Qe;HO(m,!1),A?(A.el=ee.el,ie(m,A,V)):A=ee,G&&To(G),(Qe=A.props&&A.props.onVnodeBeforeUpdate)&&Bt(Qe,L,A,ee),HO(m,!0);const Ze=Yo(m),Vt=m.subTree;m.subTree=Ze,d(Vt,Ze,h(Vt.el),un(Vt),m,w,k),A.el=Ze.el,pe===null&&mS(m,Ze.el),D&&Qt(D,w),(Qe=A.props&&A.props.onVnodeUpdated)&&Qt(()=>Bt(Qe,L,A,ee),w)}else{let A;const{el:G,props:D}=g,{bm:L,m:ee,parent:pe}=m,Qe=Fn(g);if(HO(m,!1),L&&To(L),!Qe&&(A=D&&D.onVnodeBeforeMount)&&Bt(A,pe,g),HO(m,!0),G&&wo){const Ze=()=>{m.subTree=Yo(m),wo(G,m.subTree,m,w,null)};Qe?g.type.__asyncLoader().then(()=>!m.isUnmounted&&Ze()):Ze()}else{const Ze=m.subTree=Yo(m);d(null,Ze,S,W,m,w,k),g.el=Ze.el}if(ee&&Qt(ee,w),!Qe&&(A=D&&D.onVnodeMounted)){const Ze=g;Qt(()=>Bt(A,pe,Ze),w)}(g.shapeFlag&256||pe&&Fn(pe.vnode)&&pe.vnode.shapeFlag&256)&&m.a&&Qt(m.a,w),m.isMounted=!0,g=S=W=null}},U=m.effect=new Fl(v,()=>nc(T),m.scope),T=m.update=()=>U.run();T.id=m.uid,HO(m,!0),T()},ie=(m,g,S)=>{g.component=m;const W=m.vnode.props;m.vnode=g,m.next=null,ES(m,g.props,W,S),MS(m,g.children,S),Hi(),Sh(),Fi()},F=(m,g,S,W,w,k,V,v,U=!1)=>{const T=m&&m.children,A=m?m.shapeFlag:0,G=g.children,{patchFlag:D,shapeFlag:L}=g;if(D>0){if(D&128){be(T,G,S,W,w,k,V,v,U);return}else if(D&256){fe(T,G,S,W,w,k,V,v,U);return}}L&8?(A&16&&uO(T,w,k),G!==T&&c(S,G)):A&16?L&16?be(T,G,S,W,w,k,V,v,U):uO(T,w,k,!0):(A&8&&c(S,""),L&16&&Oe(G,S,W,w,k,V,v,U))},fe=(m,g,S,W,w,k,V,v,U)=>{m=m||Wi,g=g||Wi;const T=m.length,A=g.length,G=Math.min(T,A);let D;for(D=0;DA?uO(m,w,k,!0,!1,G):Oe(g,S,W,w,k,V,v,U,G)},be=(m,g,S,W,w,k,V,v,U)=>{let T=0;const A=g.length;let G=m.length-1,D=A-1;for(;T<=G&&T<=D;){const L=m[T],ee=g[T]=U?TO(g[T]):eO(g[T]);if(Or(L,ee))d(L,ee,S,null,w,k,V,v,U);else break;T++}for(;T<=G&&T<=D;){const L=m[G],ee=g[D]=U?TO(g[D]):eO(g[D]);if(Or(L,ee))d(L,ee,S,null,w,k,V,v,U);else break;G--,D--}if(T>G){if(T<=D){const L=D+1,ee=LD)for(;T<=G;)Me(m[T],w,k,!0),T++;else{const L=T,ee=T,pe=new Map;for(T=ee;T<=D;T++){const mt=g[T]=U?TO(g[T]):eO(g[T]);mt.key!=null&&pe.set(mt.key,T)}let Qe,Ze=0;const Vt=D-ee+1;let pi=!1,ch=0;const tr=new Array(Vt);for(T=0;T=Vt){Me(mt,w,k,!0);continue}let Lt;if(mt.key!=null)Lt=pe.get(mt.key);else for(Qe=ee;Qe<=D;Qe++)if(tr[Qe-ee]===0&&Or(mt,g[Qe])){Lt=Qe;break}Lt===void 0?Me(mt,w,k,!0):(tr[Lt-ee]=T+1,Lt>=ch?ch=Lt:pi=!0,d(mt,g[Lt],S,null,w,k,V,v,U),Ze++)}const hh=pi?FS(tr):Wi;for(Qe=hh.length-1,T=Vt-1;T>=0;T--){const mt=ee+T,Lt=g[mt],fh=mt+1{const{el:k,type:V,transition:v,children:U,shapeFlag:T}=m;if(T&6){nt(m.component.subTree,g,S,W);return}if(T&128){m.suspense.move(g,S,W);return}if(T&64){V.move(m,g,S,di);return}if(V===dO){i(k,g,S);for(let G=0;Gv.enter(k),w);else{const{leave:G,delayLeave:D,afterLeave:L}=v,ee=()=>i(k,g,S),pe=()=>{G(k,()=>{ee(),L&&L()})};D?D(k,ee,pe):pe()}else i(k,g,S)},Me=(m,g,S,W=!1,w=!1)=>{const{type:k,props:V,ref:v,children:U,dynamicChildren:T,shapeFlag:A,patchFlag:G,dirs:D}=m;if(v!=null&&ka(v,null,S,m,!0),A&256){g.ctx.deactivate(m);return}const L=A&1&&D,ee=!Fn(m);let pe;if(ee&&(pe=V&&V.onVnodeBeforeUnmount)&&Bt(pe,g,m),A&6)og(m.component,S,W);else{if(A&128){m.suspense.unmount(S,W);return}L&&BO(m,null,g,"beforeUnmount"),A&64?m.type.remove(m,g,S,w,di,W):T&&(k!==dO||G>0&&G&64)?uO(T,g,S,!1,!0):(k===dO&&G&384||!w&&A&16)&&uO(U,g,S),W&&LO(m)}(ee&&(pe=V&&V.onVnodeUnmounted)||L)&&Qt(()=>{pe&&Bt(pe,g,m),L&&BO(m,null,g,"unmounted")},S)},LO=m=>{const{type:g,el:S,anchor:W,transition:w}=m;if(g===dO){Qn(S,W);return}if(g===qo){b(m);return}const k=()=>{r(S),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(m.shapeFlag&1&&w&&!w.persisted){const{leave:V,delayLeave:v}=w,U=()=>V(S,k);v?v(m.el,k,U):U()}else k()},Qn=(m,g)=>{let S;for(;m!==g;)S=Q(m),r(m),m=S;r(g)},og=(m,g,S)=>{const{bum:W,scope:w,update:k,subTree:V,um:v}=m;W&&To(W),w.stop(),k&&(k.active=!1,Me(V,m,g,S)),v&&Qt(v,g),Qt(()=>{m.isUnmounted=!0},g),g&&g.pendingBranch&&!g.isUnmounted&&m.asyncDep&&!m.asyncResolved&&m.suspenseId===g.pendingId&&(g.deps--,g.deps===0&&g.resolve())},uO=(m,g,S,W=!1,w=!1,k=0)=>{for(let V=k;Vm.shapeFlag&6?un(m.component.subTree):m.shapeFlag&128?m.suspense.next():Q(m.anchor||m.el),lh=(m,g,S)=>{m==null?g._vnode&&Me(g._vnode,null,null,!0):d(g._vnode||null,m,g,null,null,null,S),Sh(),P$(),g._vnode=m},di={p:d,um:Me,m:nt,r:LO,mt:Ge,mc:Oe,pc:F,pbc:N,n:un,o:O};let bo,wo;return e&&([bo,wo]=e(di)),{render:lh,hydrate:bo,createApp:LS(lh,bo)}}function HO({effect:O,update:e},t){O.allowRecurse=e.allowRecurse=t}function j$(O,e,t=!1){const i=O.children,r=e.children;if(J(i)&&J(r))for(let n=0;n>1,O[t[o]]0&&(e[i]=t[n-1]),t[n]=i)}}for(n=t.length,s=t[n-1];n-- >0;)t[n]=s,s=e[s];return t}const KS=O=>O.__isTeleport,dO=Symbol(void 0),ro=Symbol(void 0),Zr=Symbol(void 0),qo=Symbol(void 0),Sr=[];let At=null;function JS(O=!1){Sr.push(At=O?null:[])}function eX(){Sr.pop(),At=Sr[Sr.length-1]||null}let Rr=1;function vh(O){Rr+=O}function tX(O){return O.dynamicChildren=Rr>0?At||Wi:null,eX(),Rr>0&&At&&At.push(O),O}function OX(O,e,t,i,r){return tX(Wt(O,e,t,i,r,!0))}function Za(O){return O?O.__v_isVNode===!0:!1}function Or(O,e){return O.type===e.type&&O.key===e.key}const no="__vInternal",G$=({key:O})=>O??null,Kn=({ref:O,ref_key:e,ref_for:t})=>O!=null?Ke(O)||Ot(O)||K(O)?{i:Et,r:O,k:e,f:!!t}:O:null;function iX(O,e=null,t=null,i=0,r=null,n=O===dO?0:1,s=!1,o=!1){const a={__v_isVNode:!0,__v_skip:!0,type:O,props:e,key:e&&G$(e),ref:e&&Kn(e),scopeId:X$,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:n,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Et};return o?(ac(a,t),n&128&&O.normalize(a)):t&&(a.shapeFlag|=Ke(t)?8:16),Rr>0&&!s&&At&&(a.patchFlag>0||n&6)&&a.patchFlag!==32&&At.push(a),a}const Wt=rX;function rX(O,e=null,t=null,i=0,r=null,n=!1){if((!O||O===RS)&&(O=Zr),Za(O)){const o=_i(O,e,!0);return t&&ac(o,t),Rr>0&&!n&&At&&(o.shapeFlag&6?At[At.indexOf(O)]=o:At.push(o)),o.patchFlag|=-2,o}if(dX(O)&&(O=O.__vccOpts),e){e=nX(e);let{class:o,style:a}=e;o&&!Ke(o)&&(e.class=Dl(o)),ve(a)&&(h$(a)&&!J(a)&&(a=ht({},a)),e.style=Al(a))}const s=Ke(O)?1:PS(O)?128:KS(O)?64:ve(O)?4:K(O)?2:0;return iX(O,e,t,i,r,s,n,!0)}function nX(O){return O?h$(O)||no in O?ht({},O):O:null}function _i(O,e,t=!1){const{props:i,ref:r,patchFlag:n,children:s}=O,o=e?oX(i||{},e):i;return{__v_isVNode:!0,__v_skip:!0,type:O.type,props:o,key:o&&G$(o),ref:e&&e.ref?t&&r?J(r)?r.concat(Kn(e)):[r,Kn(e)]:Kn(e):r,scopeId:O.scopeId,slotScopeIds:O.slotScopeIds,children:s,target:O.target,targetAnchor:O.targetAnchor,staticCount:O.staticCount,shapeFlag:O.shapeFlag,patchFlag:e&&O.type!==dO?n===-1?16:n|16:n,dynamicProps:O.dynamicProps,dynamicChildren:O.dynamicChildren,appContext:O.appContext,dirs:O.dirs,transition:O.transition,component:O.component,suspense:O.suspense,ssContent:O.ssContent&&_i(O.ssContent),ssFallback:O.ssFallback&&_i(O.ssFallback),el:O.el,anchor:O.anchor,ctx:O.ctx,ce:O.ce}}function sX(O=" ",e=0){return Wt(ro,null,O,e)}function eO(O){return O==null||typeof O=="boolean"?Wt(Zr):J(O)?Wt(dO,null,O.slice()):typeof O=="object"?TO(O):Wt(ro,null,String(O))}function TO(O){return O.el===null&&O.patchFlag!==-1||O.memo?O:_i(O)}function ac(O,e){let t=0;const{shapeFlag:i}=O;if(e==null)e=null;else if(J(e))t=16;else if(typeof e=="object")if(i&65){const r=e.default;r&&(r._c&&(r._d=!1),ac(O,r()),r._c&&(r._d=!0));return}else{t=32;const r=e._;!r&&!(no in e)?e._ctx=Et:r===3&&Et&&(Et.slots._===1?e._=1:(e._=2,O.patchFlag|=1024))}else K(e)?(e={default:e,_ctx:Et},t=32):(e=String(e),i&64?(t=16,e=[sX(e)]):t=8);O.children=e,O.shapeFlag|=t}function oX(...O){const e={};for(let t=0;t{Ue=O,O.scope.on()},ci=()=>{Ue&&Ue.scope.off(),Ue=null};function C$(O){return O.vnode.shapeFlag&4}let Ur=!1;function hX(O,e=!1){Ur=e;const{props:t,children:i}=O.vnode,r=C$(O);IS(O,t,r,e),DS(O,i);const n=r?fX(O,e):void 0;return Ur=!1,n}function fX(O,e){const t=O.type;O.accessCache=Object.create(null),O.proxy=f$(new Proxy(O.ctx,VS));const{setup:i}=t;if(i){const r=O.setupContext=i.length>1?uX(O):null;ji(O),Hi();const n=VO(i,O,0,[O.props,r]);if(Fi(),ci(),Ju(n)){if(n.then(ci,ci),e)return n.then(s=>{qh(O,s,e)}).catch(s=>{to(s,O,0)});O.asyncDep=n}else qh(O,n,e)}else I$(O,e)}function qh(O,e,t){K(e)?O.type.__ssrInlineRender?O.ssrRender=e:O.render=e:ve(e)&&(O.setupState=$$(e)),I$(O,t)}let kh;function I$(O,e,t){const i=O.type;if(!O.render){if(!e&&kh&&!i.render){const r=i.template||sc(O).template;if(r){const{isCustomElement:n,compilerOptions:s}=O.appContext.config,{delimiters:o,compilerOptions:a}=i,l=ht(ht({isCustomElement:n,delimiters:o},s),a);i.render=kh(r,l)}}O.render=i.render||Dt}ji(O),Hi(),zS(O),Fi(),ci()}function QX(O){return new Proxy(O.attrs,{get(e,t){return dt(O,"get","$attrs"),e[t]}})}function uX(O){const e=i=>{O.exposed=i||{}};let t;return{get attrs(){return t||(t=QX(O))},slots:O.slots,emit:O.emit,expose:e}}function lc(O){if(O.exposed)return O.exposeProxy||(O.exposeProxy=new Proxy($$(f$(O.exposed)),{get(e,t){if(t in e)return e[t];if(t in gr)return gr[t](O)},has(e,t){return t in e||t in gr}}))}function $X(O,e=!0){return K(O)?O.displayName||O.name:O.name||e&&O.__name}function dX(O){return K(O)&&"__vccOpts"in O}const E$=(O,e)=>sS(O,e,Ur);function pX(O,e,t){const i=arguments.length;return i===2?ve(e)&&!J(e)?Za(e)?Wt(O,null,[e]):Wt(O,e):Wt(O,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&Za(t)&&(t=[t]),Wt(O,e,t))}const mX=Symbol(""),PX=()=>Pr(mX),gX="3.2.47",SX="http://www.w3.org/2000/svg",Oi=typeof document<"u"?document:null,Zh=Oi&&Oi.createElement("template"),XX={insert:(O,e,t)=>{e.insertBefore(O,t||null)},remove:O=>{const e=O.parentNode;e&&e.removeChild(O)},createElement:(O,e,t,i)=>{const r=e?Oi.createElementNS(SX,O):Oi.createElement(O,t?{is:t}:void 0);return O==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:O=>Oi.createTextNode(O),createComment:O=>Oi.createComment(O),setText:(O,e)=>{O.nodeValue=e},setElementText:(O,e)=>{O.textContent=e},parentNode:O=>O.parentNode,nextSibling:O=>O.nextSibling,querySelector:O=>Oi.querySelector(O),setScopeId(O,e){O.setAttribute(e,"")},insertStaticContent(O,e,t,i,r,n){const s=t?t.previousSibling:e.lastChild;if(r&&(r===n||r.nextSibling))for(;e.insertBefore(r.cloneNode(!0),t),!(r===n||!(r=r.nextSibling)););else{Zh.innerHTML=i?`${O}`:O;const o=Zh.content;if(i){const a=o.firstChild;for(;a.firstChild;)o.appendChild(a.firstChild);o.removeChild(a)}e.insertBefore(o,t)}return[s?s.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}};function yX(O,e,t){const i=O._vtc;i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?O.removeAttribute("class"):t?O.setAttribute("class",e):O.className=e}function xX(O,e,t){const i=O.style,r=Ke(t);if(t&&!r){if(e&&!Ke(e))for(const n in e)t[n]==null&&Ra(i,n,"");for(const n in t)Ra(i,n,t[n])}else{const n=i.display;r?e!==t&&(i.cssText=t):e&&O.removeAttribute("style"),"_vod"in O&&(i.display=n)}}const Rh=/\s*!important$/;function Ra(O,e,t){if(J(t))t.forEach(i=>Ra(O,e,i));else if(t==null&&(t=""),e.startsWith("--"))O.setProperty(e,t);else{const i=bX(O,e);Rh.test(t)?O.setProperty(Bi(i),t.replace(Rh,""),"important"):O[i]=t}}const Uh=["Webkit","Moz","ms"],ko={};function bX(O,e){const t=ko[e];if(t)return t;let i=aO(e);if(i!=="filter"&&i in O)return ko[e]=i;i=Js(i);for(let r=0;rZo||(kX.then(()=>Zo=0),Zo=Date.now());function RX(O,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;Mt(UX(i,t.value),e,5,[i])};return t.value=O,t.attached=ZX(),t}function UX(O,e){if(J(e)){const t=O.stopImmediatePropagation;return O.stopImmediatePropagation=()=>{t.call(O),O._stopped=!0},e.map(i=>r=>!r._stopped&&i&&i(r))}else return e}const _h=/^on[a-z]/,VX=(O,e,t,i,r=!1,n,s,o,a)=>{e==="class"?yX(O,i,r):e==="style"?xX(O,t,i):Hs(e)?Ml(e)||vX(O,e,t,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):zX(O,e,i,r))?WX(O,e,i,n,s,o,a):(e==="true-value"?O._trueValue=i:e==="false-value"&&(O._falseValue=i),wX(O,e,i,r))};function zX(O,e,t,i){return i?!!(e==="innerHTML"||e==="textContent"||e in O&&_h.test(e)&&K(t)):e==="spellcheck"||e==="draggable"||e==="translate"||e==="form"||e==="list"&&O.tagName==="INPUT"||e==="type"&&O.tagName==="TEXTAREA"||_h.test(e)&&Ke(t)?!1:e in O}const _X=ht({patchProp:VX},XX);let jh;function jX(){return jh||(jh=BS(_X))}const GX=(...O)=>{const e=jX().createApp(...O),{mount:t}=e;return e.mount=i=>{const r=CX(i);if(!r)return;const n=e._component;!K(n)&&!n.render&&!n.template&&(n.template=r.innerHTML),r.innerHTML="";const s=t(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},e};function CX(O){return Ke(O)?document.querySelector(O):O}let le=class A${constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let r=[];return this.decompose(0,e,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(t,this.length,r,1),OO.from(r,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),OO.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),r=new Xr(this),n=new Xr(e);for(let s=t,o=t;;){if(r.next(s),n.next(s),s=0,r.lineBreak!=n.lineBreak||r.done!=n.done||r.value!=n.value)return!1;if(o+=r.value.length,r.done||o>=i)return!0}}iter(e=1){return new Xr(this,e)}iterRange(e,t=this.length){return new D$(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;i=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new M$(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?A$.empty:e.length<=32?new Ye(e):OO.from(Ye.split(e,[]))}};class Ye extends le{constructor(e,t=IX(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.text[n],o=r+s.length;if((t?i:o)>=e)return new EX(r,o,i,s);r=o+1,i++}}decompose(e,t,i,r){let n=e<=0&&t>=this.length?this:new Ye(Gh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let s=i.pop(),o=Jn(n.text,s.text.slice(),0,n.length);if(o.length<=32)i.push(new Ye(o,s.length+n.length));else{let a=o.length>>1;i.push(new Ye(o.slice(0,a)),new Ye(o.slice(a)))}}else i.push(n)}replace(e,t,i){if(!(i instanceof Ye))return super.replace(e,t,i);let r=Jn(this.text,Jn(i.text,Gh(this.text,0,e)),t),n=this.length+i.length-(t-e);return r.length<=32?new Ye(r,n):OO.from(Ye.split(r,[]),n)}sliceString(e,t=this.length,i=` +`){let r="";for(let n=0,s=0;n<=t&&se&&s&&(r+=i),en&&(r+=o.slice(Math.max(0,e-n),t-n)),n=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],r=-1;for(let n of e)i.push(n),r+=n.length+1,i.length==32&&(t.push(new Ye(i,r)),i=[],r=-1);return r>-1&&t.push(new Ye(i,r)),t}}class OO extends le{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,r){for(let n=0;;n++){let s=this.children[n],o=r+s.length,a=i+s.lines-1;if((t?a:o)>=e)return s.lineInner(e,t,i,r);r=o+1,i=a+1}}decompose(e,t,i,r){for(let n=0,s=0;s<=t&&n=s){let l=r&((s<=e?1:0)|(a>=t?2:0));s>=e&&a<=t&&!l?i.push(o):o.decompose(e-s,t-s,i,l)}s=a+1}}replace(e,t,i){if(i.lines=n&&t<=o){let a=s.replace(e-n,t-n,i),l=this.lines-s.lines+a.lines;if(a.lines>5-1&&a.lines>l>>5+1){let c=this.children.slice();return c[r]=a,new OO(c,this.length-(t-e)+i.length)}return super.replace(n,o,a)}n=o+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` +`){let r="";for(let n=0,s=0;ne&&n&&(r+=i),es&&(r+=o.sliceString(e-s,t-s,i)),s=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof OO))return 0;let i=0,[r,n,s,o]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,n+=t){if(r==s||n==o)return i;let a=this.children[r],l=e.children[n];if(a!=l)return i+a.scanIdentical(l,t);i+=a.length+1}}static from(e,t=e.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let u of e)i+=u.lines;if(i<32){let u=[];for(let $ of e)$.flatten(u);return new Ye(u,t)}let r=Math.max(32,i>>5),n=r<<1,s=r>>1,o=[],a=0,l=-1,c=[];function h(u){let $;if(u.lines>n&&u instanceof OO)for(let d of u.children)h(d);else u.lines>s&&(a>s||!a)?(Q(),o.push(u)):u instanceof Ye&&a&&($=c[c.length-1])instanceof Ye&&u.lines+$.lines<=32?(a+=u.lines,l+=u.length+1,c[c.length-1]=new Ye($.text.concat(u.text),$.length+1+u.length)):(a+u.lines>r&&Q(),a+=u.lines,l+=u.length+1,c.push(u))}function Q(){a!=0&&(o.push(c.length==1?c[0]:OO.from(c,l)),l=-1,a=c.length=0)}for(let u of e)h(u);return Q(),o.length==1?o[0]:new OO(o,t)}}le.empty=new Ye([""],0);function IX(O){let e=-1;for(let t of O)e+=t.length+1;return e}function Jn(O,e,t=0,i=1e9){for(let r=0,n=0,s=!0;n=t&&(a>i&&(o=o.slice(0,i-r)),r0?1:(e instanceof Ye?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],n=this.offsets[i],s=n>>1,o=r instanceof Ye?r.text.length:r.children.length;if(s==(t>0?o:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((n&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(r instanceof Ye){let a=r.text[s+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[s+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Ye?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class D${constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Xr(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=i?r:t<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class M${constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:r}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(le.prototype[Symbol.iterator]=function(){return this.iter()},Xr.prototype[Symbol.iterator]=D$.prototype[Symbol.iterator]=M$.prototype[Symbol.iterator]=function(){return this});let EX=class{constructor(e,t,i,r){this.from=e,this.to=t,this.number=i,this.text=r}get length(){return this.to-this.from}},vi="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(O=>O?parseInt(O,36):1);for(let O=1;OO)return vi[e-1]<=O;return!1}function Ch(O){return O>=127462&&O<=127487}const Ih=8205;function at(O,e,t=!0,i=!0){return(t?N$:DX)(O,e,i)}function N$(O,e,t){if(e==O.length)return e;e&&L$(O.charCodeAt(e))&&B$(O.charCodeAt(e-1))&&e--;let i=Be(O,e);for(e+=wt(i);e=0&&Ch(Be(O,s));)n++,s-=2;if(n%2==0)break;e+=2}else break}return e}function DX(O,e,t){for(;e>0;){let i=N$(O,e-2,t);if(i=56320&&O<57344}function B$(O){return O>=55296&&O<56320}function Be(O,e){let t=O.charCodeAt(e);if(!B$(t)||e+1==O.length)return t;let i=O.charCodeAt(e+1);return L$(i)?(t-55296<<10)+(i-56320)+65536:t}function cc(O){return O<=65535?String.fromCharCode(O):(O-=65536,String.fromCharCode((O>>10)+55296,(O&1023)+56320))}function wt(O){return O<65536?1:2}const Ua=/\r\n?|\n/;var Fe=function(O){return O[O.Simple=0]="Simple",O[O.TrackDel=1]="TrackDel",O[O.TrackBefore=2]="TrackBefore",O[O.TrackAfter=3]="TrackAfter",O}(Fe||(Fe={}));class sO{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return n+(e-r);n+=o}else{if(i!=Fe.Simple&&l>=e&&(i==Fe.TrackDel&&re||i==Fe.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!o)return e==r||t<0?n:n+a;n+=a}r=l}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return n}touchesRange(e,t=e){for(let i=0,r=0;i=0&&r<=t&&o>=e)return rt?"cover":!0;r=o}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new sO(e)}static create(e){return new sO(e)}}class Ve extends sO{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Va(this,(t,i,r,n,s)=>e=e.replace(r,r+(i-t),s),!1),e}mapDesc(e,t=!1){return za(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let r=0,n=0;r=0){t[r]=o,t[r+1]=s;let a=r>>1;for(;i.length0&&kO(i,t,n.text),n.forward(c),o+=c}let l=e[s++];for(;o>1].toJSON()))}return e}static of(e,t,i){let r=[],n=[],s=0,o=null;function a(c=!1){if(!c&&!r.length)return;sQ||h<0||Q>t)throw new RangeError(`Invalid change range ${h} to ${Q} (in doc of length ${t})`);let $=u?typeof u=="string"?le.of(u.split(i||Ua)):u:le.empty,d=$.length;if(h==Q&&d==0)return;hs&&et(r,h-s,-1),et(r,Q-h,d),kO(n,r,$),s=Q}}return l(e),a(!o),o}static empty(e){return new Ve(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let r=0;ro&&typeof s!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(n.length==1)t.push(n[0],0);else{for(;i.length=0&&t<=0&&t==O[r+1]?O[r]+=e:e==0&&O[r]==0?O[r+1]+=t:i?(O[r]+=e,O[r+1]+=t):O.push(e,t)}function kO(O,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||s==O.sections.length||O.sections[s+1]<0);)o=O.sections[s++],a=O.sections[s++];e(r,l,n,c,h),r=l,n=c}}}function za(O,e,t,i=!1){let r=[],n=i?[]:null,s=new Vr(O),o=new Vr(e);for(let a=-1;;)if(s.ins==-1&&o.ins==-1){let l=Math.min(s.len,o.len);et(r,l,-1),s.forward(l),o.forward(l)}else if(o.ins>=0&&(s.ins<0||a==s.i||s.off==0&&(o.len=0&&a=0){let l=0,c=s.len;for(;c;)if(o.ins==-1){let h=Math.min(c,o.len);l+=h,c-=h,o.forward(h)}else if(o.ins==0&&o.lena||s.ins>=0&&s.len>a)&&(o||i.length>l),n.forward2(a),s.forward(a)}}}}class Vr{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?le.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?le.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class si{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let i,r;return this.empty?i=r=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new si(i,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return X.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return X.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return X.range(e.anchor,e.head)}static create(e,t,i){return new si(e,t,i)}}class X{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:X.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;te.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new X(e.ranges.map(t=>si.fromJSON(t)),e.main)}static single(e,t=e){return new X([X.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;re?4:0)|n)}static normalized(e,t=0){let i=e[t];e.sort((r,n)=>r.from-n.from),t=e.indexOf(i);for(let r=1;rn.head?X.range(a,o):X.range(o,a))}}return new X(e,t)}}function F$(O,e){for(let t of O.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let hc=0;class _{constructor(e,t,i,r,n){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=r,this.id=hc++,this.default=e([]),this.extensions=typeof n=="function"?n(this):n}static define(e={}){return new _(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:fc),!!e.static,e.enables)}of(e){return new es([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new es(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new es(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function fc(O,e){return O==e||O.length==e.length&&O.every((t,i)=>t===e[i])}class es{constructor(e,t,i,r){this.dependencies=e,this.facet=t,this.type=i,this.value=r,this.id=hc++}dynamicSlot(e){var t;let i=this.value,r=this.facet.compareInput,n=this.id,s=e[n]>>1,o=this.type==2,a=!1,l=!1,c=[];for(let h of this.dependencies)h=="doc"?a=!0:h=="selection"?l=!0:((t=e[h.id])!==null&&t!==void 0?t:1)&1||c.push(e[h.id]);return{create(h){return h.values[s]=i(h),1},update(h,Q){if(a&&Q.docChanged||l&&(Q.docChanged||Q.selection)||_a(h,c)){let u=i(h);if(o?!Eh(u,h.values[s],r):!r(u,h.values[s]))return h.values[s]=u,1}return 0},reconfigure:(h,Q)=>{let u,$=Q.config.address[n];if($!=null){let d=ds(Q,$);if(this.dependencies.every(p=>p instanceof _?Q.facet(p)===h.facet(p):p instanceof Ae?Q.field(p,!1)==h.field(p,!1):!0)||(o?Eh(u=i(h),d,r):r(u=i(h),d)))return h.values[s]=d,0}else u=i(h);return h.values[s]=u,1}}}}function Eh(O,e,t){if(O.length!=e.length)return!1;for(let i=0;iO[a.id]),r=t.map(a=>a.type),n=i.filter(a=>!(a&1)),s=O[e.id]>>1;function o(a){let l=[];for(let c=0;ci===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Ah).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,r)=>{let n=i.values[t],s=this.updateF(n,r);return this.compareF(n,s)?0:(i.values[t]=s,1)},reconfigure:(i,r)=>r.config.address[this.id]!=null?(i.values[t]=r.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Ah.of({field:this,create:e})]}get extension(){return this}}const ii={lowest:4,low:3,default:2,high:1,highest:0};function ir(O){return e=>new K$(e,O)}const MO={highest:ir(ii.highest),high:ir(ii.high),default:ir(ii.default),low:ir(ii.low),lowest:ir(ii.lowest)};class K${constructor(e,t){this.inner=e,this.prec=t}}class On{of(e){return new ja(this,e)}reconfigure(e){return On.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class ja{constructor(e,t){this.compartment=e,this.inner=t}}class $s{constructor(e,t,i,r,n,s){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=r,this.staticValues=n,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let r=[],n=Object.create(null),s=new Map;for(let Q of NX(e,t,s))Q instanceof Ae?r.push(Q):(n[Q.facet.id]||(n[Q.facet.id]=[])).push(Q);let o=Object.create(null),a=[],l=[];for(let Q of r)o[Q.id]=l.length<<1,l.push(u=>Q.slot(u));let c=i==null?void 0:i.config.facets;for(let Q in n){let u=n[Q],$=u[0].facet,d=c&&c[Q]||[];if(u.every(p=>p.type==0))if(o[$.id]=a.length<<1|1,fc(d,u))a.push(i.facet($));else{let p=$.combine(u.map(P=>P.value));a.push(i&&$.compare(p,i.facet($))?i.facet($):p)}else{for(let p of u)p.type==0?(o[p.id]=a.length<<1|1,a.push(p.value)):(o[p.id]=l.length<<1,l.push(P=>p.dynamicSlot(P)));o[$.id]=l.length<<1,l.push(p=>MX(p,$,u))}}let h=l.map(Q=>Q(o));return new $s(e,s,h,o,a,n)}}function NX(O,e,t){let i=[[],[],[],[],[]],r=new Map;function n(s,o){let a=r.get(s);if(a!=null){if(a<=o)return;let l=i[a].indexOf(s);l>-1&&i[a].splice(l,1),s instanceof ja&&t.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let l of s)n(l,o);else if(s instanceof ja){if(t.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let l=e.get(s.compartment)||s.inner;t.set(s.compartment,l),n(l,o)}else if(s instanceof K$)n(s.inner,s.prec);else if(s instanceof Ae)i[o].push(s),s.provides&&n(s.provides,o);else if(s instanceof es)i[o].push(s),s.facet.extensions&&n(s.facet.extensions,ii.default);else{let l=s.extension;if(!l)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);n(l,o)}}return n(O,ii.default),i.reduce((s,o)=>s.concat(o))}function yr(O,e){if(e&1)return 2;let t=e>>1,i=O.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;O.status[t]=4;let r=O.computeSlot(O,O.config.dynamicSlots[t]);return O.status[t]=2|r}function ds(O,e){return e&1?O.config.staticValues[e>>1]:O.values[e>>1]}const J$=_.define(),ed=_.define({combine:O=>O.some(e=>e),static:!0}),td=_.define({combine:O=>O.length?O[0]:void 0,static:!0}),Od=_.define(),id=_.define(),rd=_.define(),nd=_.define({combine:O=>O.length?O[0]:!1});class xO{constructor(e,t){this.type=e,this.value=t}static define(){return new LX}}class LX{of(e){return new xO(this,e)}}class BX{constructor(e){this.map=e}of(e){return new B(this,e)}}class B{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new B(this.type,t)}is(e){return this.type==e}static define(e={}){return new BX(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let r of e){let n=r.map(t);n&&i.push(n)}return i}}B.reconfigure=B.define();B.appendConfig=B.define();class ze{constructor(e,t,i,r,n,s){this.startState=e,this.changes=t,this.selection=i,this.effects=r,this.annotations=n,this.scrollIntoView=s,this._doc=null,this._state=null,i&&F$(i,t.newLength),n.some(o=>o.type==ze.time)||(this.annotations=n.concat(ze.time.of(Date.now())))}static create(e,t,i,r,n,s){return new ze(e,t,i,r,n,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(ze.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}ze.time=xO.define();ze.userEvent=xO.define();ze.addToHistory=xO.define();ze.remote=xO.define();function HX(O,e){let t=[];for(let i=0,r=0;;){let n,s;if(i=O[i]))n=O[i++],s=O[i++];else if(r=0;r--){let n=i[r](O);n instanceof ze?O=n:Array.isArray(n)&&n.length==1&&n[0]instanceof ze?O=n[0]:O=od(e,qi(n),!1)}return O}function KX(O){let e=O.startState,t=e.facet(rd),i=O;for(let r=t.length-1;r>=0;r--){let n=t[r](O);n&&Object.keys(n).length&&(i=sd(i,Ga(e,n,O.changes.newLength),!0))}return i==O?O:ze.create(e,O.changes,O.selection,i.effects,i.annotations,i.scrollIntoView)}const JX=[];function qi(O){return O==null?JX:Array.isArray(O)?O:[O]}var xe=function(O){return O[O.Word=0]="Word",O[O.Space=1]="Space",O[O.Other=2]="Other",O}(xe||(xe={}));const ey=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Ca;try{Ca=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ty(O){if(Ca)return Ca.test(O);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||ey.test(t)))return!0}return!1}function Oy(O){return e=>{if(!/\S/.test(e))return xe.Space;if(ty(e))return xe.Word;for(let t=0;t-1)return xe.Word;return xe.Other}}class te{constructor(e,t,i,r,n,s){this.config=e,this.doc=t,this.selection=i,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=n,s&&(s._state=this);for(let o=0;or.set(a,o)),t=null),r.set(s.value.compartment,s.value.extension)):s.is(B.reconfigure)?(t=null,i=s.value):s.is(B.appendConfig)&&(t=null,i=qi(i).concat(s.value));let n;t?n=e.startState.values.slice():(t=$s.resolve(i,r,this),n=new te(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(o,a)=>a.reconfigure(o,this),null).values),new te(t,e.newDoc,e.newSelection,n,(s,o)=>o.update(s,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:X.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),r=this.changes(i.changes),n=[i.range],s=qi(i.effects);for(let o=1;os.spec.fromJSON(o,a)))}}return te.create({doc:e.doc,selection:X.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=$s.resolve(e.extensions||[],new Map),i=e.doc instanceof le?e.doc:le.of((e.doc||"").split(t.staticFacet(te.lineSeparator)||Ua)),r=e.selection?e.selection instanceof X?e.selection:X.single(e.selection.anchor,e.selection.head):X.single(0);return F$(r,i.length),t.staticFacet(ed)||(r=r.asSingle()),new te(t,i,r,t.dynamicSlots.map(()=>null),(n,s)=>s.create(n),null)}get tabSize(){return this.facet(te.tabSize)}get lineBreak(){return this.facet(te.lineSeparator)||` +`}get readOnly(){return this.facet(nd)}phrase(e,...t){for(let i of this.facet(te.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,r)=>{if(r=="$")return"$";let n=+(r||1);return!n||n>t.length?i:t[n-1]})),e}languageDataAt(e,t,i=-1){let r=[];for(let n of this.facet(J$))for(let s of n(this,t,i))Object.prototype.hasOwnProperty.call(s,e)&&r.push(s[e]);return r}charCategorizer(e){return Oy(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:r}=this.doc.lineAt(e),n=this.charCategorizer(e),s=e-i,o=e-i;for(;s>0;){let a=at(t,s,!1);if(n(t.slice(a,s))!=xe.Word)break;s=a}for(;oO.length?O[0]:4});te.lineSeparator=td;te.readOnly=nd;te.phrases=_.define({compare(O,e){let t=Object.keys(O),i=Object.keys(e);return t.length==i.length&&t.every(r=>O[r]==e[r])}});te.languageData=J$;te.changeFilter=Od;te.transactionFilter=id;te.transactionExtender=rd;On.reconfigure=B.define();function cO(O,e,t={}){let i={};for(let r of O)for(let n of Object.keys(r)){let s=r[n],o=i[n];if(o===void 0)i[n]=s;else if(!(o===s||s===void 0))if(Object.hasOwnProperty.call(t,n))i[n]=t[n](o,s);else throw new Error("Config merge conflict for field "+n)}for(let r in e)i[r]===void 0&&(i[r]=e[r]);return i}class fi{eq(e){return this==e}range(e,t=e){return Ia.create(e,t,this)}}fi.prototype.startSide=fi.prototype.endSide=0;fi.prototype.point=!1;fi.prototype.mapMode=Fe.TrackDel;let Ia=class ad{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new ad(e,t,i)}};function Ea(O,e){return O.from-e.from||O.value.startSide-e.value.startSide}class Qc{constructor(e,t,i,r){this.from=e,this.to=t,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,r=0){let n=i?this.to:this.from;for(let s=r,o=n.length;;){if(s==o)return s;let a=s+o>>1,l=n[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==s)return l>=0?s:o;l>=0?o=a:s=a+1}}between(e,t,i,r){for(let n=this.findIndex(t,-1e9,!0),s=this.findIndex(i,1e9,!1,n);nu||Q==u&&l.startSide>0&&l.endSide<=0)continue;(u-Q||l.endSide-l.startSide)<0||(s<0&&(s=Q),l.point&&(o=Math.max(o,u-Q)),i.push(l),r.push(Q-s),n.push(u-s))}return{mapped:i.length?new Qc(r,n,i,o):null,pos:s}}}class ce{constructor(e,t,i,r){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=r}static create(e,t,i,r){return new ce(e,t,i,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:r=0,filterTo:n=this.length}=e,s=e.filter;if(t.length==0&&!s)return this;if(i&&(t=t.slice().sort(Ea)),this.isEmpty)return t.length?ce.of(t):this;let o=new ld(this,null,-1).goto(0),a=0,l=[],c=new CO;for(;o.value||a=0){let h=t[a++];c.addInner(h.from,h.to,h.value)||l.push(h)}else o.rangeIndex==1&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||no.to||n=n&&e<=n+s.length&&s.between(n,e-n,t-n,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return zr.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return zr.from(e).goto(t)}static compare(e,t,i,r,n=-1){let s=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),o=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=n),a=Dh(s,o,i),l=new rr(s,a,n),c=new rr(o,a,n);i.iterGaps((h,Q,u)=>Mh(l,h,c,Q,u,r)),i.empty&&i.length==0&&Mh(l,0,c,0,0,r)}static eq(e,t,i=0,r){r==null&&(r=1e9-1);let n=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),s=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(n.length!=s.length)return!1;if(!n.length)return!0;let o=Dh(n,s),a=new rr(n,o,0).goto(i),l=new rr(s,o,0).goto(i);for(;;){if(a.to!=l.to||!Aa(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>r)return!0;a.next(),l.next()}}static spans(e,t,i,r,n=-1){let s=new rr(e,null,n).goto(t),o=t,a=s.openStart;for(;;){let l=Math.min(s.to,i);if(s.point){let c=s.activeForPoint(s.to),h=s.pointFromo&&(r.span(o,l,s.active,a),a=s.openEnd(l));if(s.to>i)return a+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(e,t=!1){let i=new CO;for(let r of e instanceof Ia?[e]:t?iy(e):e)i.add(r.from,r.to,r.value);return i.finish()}}ce.empty=new ce([],[],null,-1);function iy(O){if(O.length>1)for(let e=O[0],t=1;t0)return O.slice().sort(Ea);e=i}return O}ce.empty.nextLayer=ce.empty;class CO{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Qc(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new CO)).add(e,t,i)}addInner(e,t,i){let r=e-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(ce.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=ce.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Dh(O,e,t){let i=new Map;for(let n of O)for(let s=0;s=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new ld(s,t,i,n));return r.length==1?r[0]:new zr(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ro(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)Ro(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ro(this.heap,0)}}}function Ro(O,e){for(let t=O[e];;){let i=(e<<1)+1;if(i>=O.length)break;let r=O[i];if(i+1=0&&(r=O[i+1],i++),t.compare(r)<0)break;O[i]=t,O[e]=r,e=i}}class rr{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=zr.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Sn(this.active,e),Sn(this.activeTo,e),Sn(this.activeRank,e),this.minActive=Nh(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:r,rank:n}=this.cursor;for(;t-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&Sn(i,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let n=this.cursor.value;if(!n.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[r]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Mh(O,e,t,i,r,n){O.goto(e),t.goto(i);let s=i+r,o=i,a=i-e;for(;;){let l=O.to+a-t.to||O.endSide-t.endSide,c=l<0?O.to+a:t.to,h=Math.min(c,s);if(O.point||t.point?O.point&&t.point&&(O.point==t.point||O.point.eq(t.point))&&Aa(O.activeForPoint(O.to+a),t.activeForPoint(t.to))||n.comparePoint(o,h,O.point,t.point):h>o&&!Aa(O.active,t.active)&&n.compareRange(o,h,O.active,t.active),c>s)break;o=c,l<=0&&O.next(),l>=0&&t.next()}}function Aa(O,e){if(O.length!=e.length)return!1;for(let t=0;t=e;i--)O[i+1]=O[i];O[e]=t}function Nh(O,e){let t=-1,i=1e9;for(let r=0;r=e)return r;if(r==O.length)break;n+=O.charCodeAt(r)==9?t-n%t:1,r=at(O,r)}return i===!0?-1:O.length}const Ma="ͼ",Lh=typeof Symbol>"u"?"__"+Ma:Symbol.for(Ma),Na=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Bh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class IO{constructor(e,t){this.rules=[];let{finish:i}=t||{};function r(s){return/^@/.test(s)?[s]:s.split(/,\s*/)}function n(s,o,a,l){let c=[],h=/^@(\w+)\b/.exec(s[0]),Q=h&&h[1]=="keyframes";if(h&&o==null)return a.push(s[0]+";");for(let u in o){let $=o[u];if(/&/.test(u))n(u.split(/,\s*/).map(d=>s.map(p=>d.replace(/&/,p))).reduce((d,p)=>d.concat(p)),$,a);else if($&&typeof $=="object"){if(!h)throw new RangeError("The value of a property ("+u+") should be a primitive value.");n(r(u),$,c,Q)}else $!=null&&c.push(u.replace(/_.*/,"").replace(/[A-Z]/g,d=>"-"+d.toLowerCase())+": "+$+";")}(c.length||Q)&&a.push((i&&!h&&!l?s.map(i):s).join(", ")+" {"+c.join(" ")+"}")}for(let s in e)n(r(s),e[s],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Bh[Lh]||1;return Bh[Lh]=e+1,Ma+e.toString(36)}static mount(e,t){(e[Na]||new ry(e)).mount(Array.isArray(t)?t:[t])}}let yn=null;class ry{constructor(e){if(!e.head&&e.adoptedStyleSheets&&typeof CSSStyleSheet<"u"){if(yn)return e.adoptedStyleSheets=[yn.sheet].concat(e.adoptedStyleSheets),e[Na]=yn;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),yn=this}else{this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild)}this.modules=[],e[Na]=this}mount(e){let t=this.sheet,i=0,r=0;for(let n=0;n-1&&(this.modules.splice(o,1),r--,o=-1),o==-1){if(this.modules.splice(r++,0,s),t)for(let a=0;a",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Hh=typeof navigator<"u"&&/Chrome\/(\d+)/.exec(navigator.userAgent),ny=typeof navigator<"u"&&/Mac/.test(navigator.platform),sy=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),oy=ny||Hh&&+Hh[1]<57;for(var He=0;He<10;He++)EO[48+He]=EO[96+He]=String(He);for(var He=1;He<=24;He++)EO[He+111]="F"+He;for(var He=65;He<=90;He++)EO[He]=String.fromCharCode(He+32),_r[He]=String.fromCharCode(He);for(var Uo in EO)_r.hasOwnProperty(Uo)||(_r[Uo]=EO[Uo]);function ay(O){var e=oy&&(O.ctrlKey||O.altKey||O.metaKey)||sy&&O.shiftKey&&O.key&&O.key.length==1||O.key=="Unidentified",t=!e&&O.key||(O.shiftKey?_r:EO)[O.keyCode]||O.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function ps(O){let e;return O.nodeType==11?e=O.getSelection?O:O.ownerDocument:e=O,e.getSelection()}function Gi(O,e){return e?O==e||O.contains(e.nodeType!=1?e.parentNode:e):!1}function ly(O){let e=O.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function ts(O,e){if(!e.anchorNode)return!1;try{return Gi(O,e.anchorNode)}catch{return!1}}function jr(O){return O.nodeType==3?Ci(O,0,O.nodeValue.length).getClientRects():O.nodeType==1?O.getClientRects():[]}function ms(O,e,t,i){return t?Fh(O,e,t,i,-1)||Fh(O,e,t,i,1):!1}function Ps(O){for(var e=0;;e++)if(O=O.previousSibling,!O)return e}function Fh(O,e,t,i,r){for(;;){if(O==t&&e==i)return!0;if(e==(r<0?0:Gr(O))){if(O.nodeName=="DIV")return!1;let n=O.parentNode;if(!n||n.nodeType!=1)return!1;e=Ps(O)+(r<0?0:1),O=n}else if(O.nodeType==1){if(O=O.childNodes[e+(r<0?-1:0)],O.nodeType==1&&O.contentEditable=="false")return!1;e=r<0?Gr(O):0}else return!1}}function Gr(O){return O.nodeType==3?O.nodeValue.length:O.childNodes.length}const cd={left:0,right:0,top:0,bottom:0};function uc(O,e){let t=e?O.left:O.right;return{left:t,right:t,top:O.top,bottom:O.bottom}}function cy(O){return{left:0,right:O.innerWidth,top:0,bottom:O.innerHeight}}function hy(O,e,t,i,r,n,s,o){let a=O.ownerDocument,l=a.defaultView||window;for(let c=O;c;)if(c.nodeType==1){let h,Q=c==a.body;if(Q)h=cy(l);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let d=c.getBoundingClientRect();h={left:d.left,right:d.left+c.clientWidth,top:d.top,bottom:d.top+c.clientHeight}}let u=0,$=0;if(r=="nearest")e.top0&&e.bottom>h.bottom+$&&($=e.bottom-h.bottom+$+s)):e.bottom>h.bottom&&($=e.bottom-h.bottom+s,t<0&&e.top-$0&&e.right>h.right+u&&(u=e.right-h.right+u+n)):e.right>h.right&&(u=e.right-h.right+n,t<0&&e.leftt.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}class Qy{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,i,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=r}}let mi=null;function hd(O){if(O.setActive)return O.setActive();if(mi)return O.focus(mi);let e=[];for(let t=O;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(O.focus(mi==null?{get preventScroll(){return mi={preventScroll:!0},!0}}:void 0),!mi){mi=!1;for(let t=0;tt)return h.domBoundsAround(e,t,l);if(Q>=e&&r==-1&&(r=a,n=l),l>t&&h.dom.parentNode==this.dom){s=a,o=c;break}c=Q,l=Q+h.breakAfter}return{from:n,to:o<0?i+this.length:o,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),t.dirty&1)return;t.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=$c){this.markDirty();for(let r=e;rthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ud(O,e,t,i,r,n,s,o,a){let{children:l}=O,c=l.length?l[e]:null,h=n.length?n[n.length-1]:null,Q=h?h.breakAfter:s;if(!(e==i&&c&&!s&&!Q&&n.length<2&&c.merge(t,r,n.length?h:null,t==0,o,a))){if(i0&&(!s&&n.length&&c.merge(t,c.length,n[0],!1,o,0)?c.breakAfter=n.shift().breakAfter:(t2);var j={mac:Of||/Mac/.test(Xt.platform),windows:/Win/.test(Xt.platform),linux:/Linux|X11/.test(Xt.platform),ie:so,ie_version:dd?La.documentMode||6:Ha?+Ha[1]:Ba?+Ba[1]:0,gecko:ef,gecko_version:ef?+(/Firefox\/(\d+)/.exec(Xt.userAgent)||[0,0])[1]:0,chrome:!!Vo,chrome_version:Vo?+Vo[1]:0,ios:Of,android:/Android\b/.test(Xt.userAgent),webkit:tf,safari:pd,webkit_version:tf?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:La.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const dy=256;class AO extends Se{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return i&&(!(i instanceof AO)||this.length-(t-e)+i.length>dy)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new AO(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new it(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return Fa(this.dom,e,t)}}class lO extends Se{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let r of t)r.setParent(this)}setAttrs(e){if(fd(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e,t){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,r,n,s){return i&&(!(i instanceof lO&&i.mark.eq(this.mark))||e&&n<=0||te&&t.push(i=e&&(r=n),i=a,n++}let s=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new lO(this.mark,t,s)}domAtPos(e){return gd(this,e)}coordsAt(e,t){return Xd(this,e,t)}}function Fa(O,e,t){let i=O.nodeValue.length;e>i&&(e=i);let r=e,n=e,s=0;e==0&&t<0||e==i&&t>=0?j.chrome||j.gecko||(e?(r--,s=1):n=0)?0:o.length-1];return j.safari&&!s&&a.width==0&&(a=Array.prototype.find.call(o,l=>l.width)||a),s?uc(a,s<0):a||null}class ZO extends Se{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}static create(e,t,i){return new(e.customView||ZO)(e,t,i)}split(e){let t=ZO.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,r,n,s){return i&&(!(i instanceof ZO)||!this.widget.compare(i.widget)||e>0&&n<=0||t0?i.length-1:0;r=i[n],!(e>0?n==0:n==i.length-1||r.top0?-1:1);return this.length?r:uc(r,this.side>0)}get isEditable(){return!1}get isWidget(){return!0}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}}class md extends ZO{domAtPos(e){let{topView:t,text:i}=this.widget;return t?Ka(e,0,t,i,(r,n)=>r.domAtPos(n),r=>new it(i,Math.min(r,i.nodeValue.length))):new it(i,Math.min(e,i.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,t){let{topView:i,text:r}=this.widget;return i?Pd(e,t,i,r):Math.min(t,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,t){let{topView:i,text:r}=this.widget;return i?Ka(e,t,i,r,(n,s,o)=>n.coordsAt(s,o),(n,s)=>Fa(r,n,s)):Fa(r,e,t)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}}function Ka(O,e,t,i,r,n){if(t instanceof lO){for(let s=t.dom.firstChild;s;s=s.nextSibling){let o=Se.get(s);if(!o)return n(O,e);let a=Gi(s,i),l=o.length+(a?i.nodeValue.length:0);if(O0?-1:1);return i&&i.topt.top?{left:t.left,right:t.right,top:i.top,bottom:i.bottom}:t}get overrideDOMText(){return le.empty}}AO.prototype.children=ZO.prototype.children=Ii.prototype.children=$c;function py(O,e){let t=O.parent,i=t?t.children.indexOf(O):-1;for(;t&&i>=0;)if(e<0?i>0:in&&e0;n--){let s=i[n-1];if(s.dom.parentNode==t)return s.domAtPos(s.length)}for(let n=r;n0&&e instanceof lO&&r.length&&(i=r[r.length-1])instanceof lO&&i.mark.eq(e.mark)?Sd(i,e.children[0],t-1):(r.push(e),e.setParent(O)),O.length+=e.length}function Xd(O,e,t){let i=null,r=-1,n=null,s=-1;function o(l,c){for(let h=0,Q=0;h=c&&(u.children.length?o(u,c-Q):!n&&($>c||Q==$&&u.getSide()>0)?(n=u,s=c-Q):(Q0?3e8:-4e8:t>0?1e8:-1e8,new Qi(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,r;if(e.isBlockGap)i=-5e8,r=4e8;else{let{start:n,end:s}=yd(e,t);i=(n?t?-3e8:-1:5e8)-1,r=(s?t?2e8:1:-6e8)+1}return new Qi(e,i,r,t,e.widget||null,!0)}static line(e){return new nn(e)}static set(e,t=!1){return ce.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}I.none=ce.empty;class oo extends I{constructor(e){let{start:t,end:i}=yd(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof oo&&this.tagName==e.tagName&&this.class==e.class&&dc(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}oo.prototype.point=!1;class nn extends I{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof nn&&this.spec.class==e.spec.class&&dc(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}nn.prototype.mapMode=Fe.TrackBefore;nn.prototype.point=!0;class Qi extends I{constructor(e,t,i,r,n,s){super(t,i,n,e),this.block=r,this.isReplace=s,this.mapMode=r?t<=0?Fe.TrackBefore:Fe.TrackAfter:Fe.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof Qi&&Py(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}Qi.prototype.point=!0;function yd(O,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=O;return t==null&&(t=O.inclusive),i==null&&(i=O.inclusive),{start:t??e,end:i??e}}function Py(O,e){return O==e||!!(O&&e&&O.compare(e))}function tl(O,e,t,i=0){let r=t.length-1;r>=0&&t[r]+i>=O?t[r]=Math.max(t[r],e):t.push(O,e)}class lt extends Se{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,r,n,s){if(i){if(!(i instanceof lt))return!1;this.dom||i.transferDOM(this)}return r&&this.setDeco(i?i.attrs:null),$d(this,e,t,i?i.children:[],n,s),!0}split(e){let t=new lt;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i,off:r}=this.childPos(e);r&&(t.append(this.children[i].split(r),0),this.children[i].merge(r,this.children[i].length,null,!1,0,0),i++);for(let n=i;n0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){dc(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Sd(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Ja(t,this.attrs||{})),i&&(this.attrs=Ja({class:i},this.attrs||{}))}domAtPos(e){return gd(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e,t){var i;this.dom?this.dirty&4&&(fd(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(el(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&Se.get(r)instanceof lO;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((i=Se.get(r))===null||i===void 0?void 0:i.isEditable)==!1&&(!j.ios||!this.children.some(n=>n instanceof AO))){let n=document.createElement("BR");n.cmIgnore=!0,this.dom.appendChild(n)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0;for(let t of this.children){if(!(t instanceof AO)||/[^ -~]/.test(t.text))return null;let i=jr(t.dom);if(i.length!=1)return null;e+=i[0].width}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}:null}coordsAt(e,t){return Xd(this,e,t)}become(e){return!1}get type(){return $e.Text}static find(e,t){for(let i=0,r=0;i=t){if(n instanceof lt)return n;if(s>t)break}r=s+n.breakAfter}return null}}class hi extends Se{constructor(e,t,i){super(),this.widget=e,this.length=t,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,r,n,s){return i&&(!(i instanceof hi)||!this.widget.compare(i.widget)||e>0&&n<=0||t0;){if(this.textOff==this.text.length){let{value:n,lineBreak:s,done:o}=this.cursor.next(this.skip);if(this.skip=0,o)throw new Error("Ran out of text content when drawing inline views");if(s){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=n,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(xn(new AO(this.text.slice(this.textOff,this.textOff+r)),t),i),this.atCursorPos=!0,this.textOff+=r,e-=r,i=0}}span(e,t,i,r){this.buildText(t-e,i,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,i,r,n,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Qi){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=t-e;if(i instanceof Qi)if(i.block){let{type:a}=i;a==$e.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new hi(i.widget||new rf("div"),o,a))}else{let a=ZO.create(i.widget||new rf("span"),o,o?0:i.startSide),l=this.atCursorPos&&!a.isEditable&&n<=r.length&&(e0),c=!a.isEditable&&(er.length||i.startSide<=0),h=this.getLine();this.pendingBuffer==2&&!l&&(this.pendingBuffer=0),this.flushBuffer(r),l&&(h.append(xn(new Ii(1),r),n),n=r.length+Math.max(0,n-r.length)),h.append(xn(a,r),n),this.atCursorPos=c,this.pendingBuffer=c?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=n)}static build(e,t,i,r,n){let s=new pc(e,t,i,n);return s.openEnd=ce.spans(r,t,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function xn(O,e){for(let t of e)O=new lO(t,[O],O.length);return O}class rf extends hO{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const xd=_.define(),bd=_.define(),wd=_.define(),Wd=_.define(),Ol=_.define(),Td=_.define(),Yd=_.define(),vd=_.define({combine:O=>O.some(e=>e)}),qd=_.define({combine:O=>O.some(e=>e)});class gs{constructor(e,t="nearest",i="nearest",r=5,n=5){this.range=e,this.y=t,this.x=i,this.yMargin=r,this.xMargin=n}map(e){return e.empty?this:new gs(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}}const nf=B.define({map:(O,e)=>O.map(e)});function xt(O,e,t){let i=O.facet(Wd);i.length?i[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}const ao=_.define({combine:O=>O.length?O[0]:!0});let gy=0;const Qr=_.define();class qe{constructor(e,t,i,r){this.id=e,this.create=t,this.domEventHandlers=i,this.extension=r(this)}static define(e,t){const{eventHandlers:i,provide:r,decorations:n}=t||{};return new qe(gy++,e,i,s=>{let o=[Qr.of(s)];return n&&o.push(Cr.of(a=>{let l=a.plugin(s);return l?n(l):I.none})),r&&o.push(r(s)),o})}static fromClass(e,t){return qe.define(i=>new e(i),t)}}class zo{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(xt(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){xt(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){xt(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const kd=_.define(),mc=_.define(),Cr=_.define(),Zd=_.define(),Rd=_.define(),ur=_.define();class oO{constructor(e,t,i,r){this.fromA=e,this.toA=t,this.fromB=i,this.toB=r}join(e){return new oO(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>i.toA)){if(r.toAc)break;n+=2}if(!a)return i;new oO(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),s=a.toA,o=a.toB}}}class Ss{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=Ve.empty(this.startState.doc.length);for(let n of i)this.changes=this.changes.compose(n.changes);let r=[];this.changes.iterChangedRanges((n,s,o,a)=>r.push(new oO(n,s,o,a))),this.changedRanges=r}static create(e,t,i){return new Ss(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var We=function(O){return O[O.LTR=0]="LTR",O[O.RTL=1]="RTL",O}(We||(We={}));const il=We.LTR,Sy=We.RTL;function Ud(O){let e=[];for(let t=0;t=t){if(o.level==i)return s;(n<0||(r!=0?r<0?o.fromt:e[n].level>o.level))&&(n=s)}}if(n<0)throw new RangeError("Index out of range");return n}}const we=[];function wy(O,e){let t=O.length,i=e==il?1:2,r=e==il?2:1;if(!O||i==1&&!by.test(O))return Vd(t);for(let s=0,o=i,a=i;s=0;Q-=3)if(Ht[Q+1]==-c){let u=Ht[Q+2],$=u&2?i:u&4?u&1?r:i:0;$&&(we[s]=we[Ht[Q]]=$),o=Q;break}}else{if(Ht.length==189)break;Ht[o++]=s,Ht[o++]=l,Ht[o++]=a}else if((h=we[s])==2||h==1){let Q=h==i;a=Q?0:1;for(let u=o-3;u>=0;u-=3){let $=Ht[u+2];if($&2)break;if(Q)Ht[u+2]|=2;else{if($&4)break;Ht[u+2]|=4}}}for(let s=0;so;){let c=l,h=we[--l]!=2;for(;l>o&&h==(we[l-1]!=2);)l--;n.push(new Zi(l,c,h?2:1))}else n.push(new Zi(o,s,0))}else for(let s=0;s1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=s-1);i=n+s}}readNode(e){if(e.cmIgnore)return;let t=Se.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let r=i.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+Math.min(t,i.offset))}}function sf(O){return O.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(O.nodeName)}class of{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class af extends Se{constructor(e){super(),this.view=e,this.compositionDeco=I.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new lt],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new oO(0,0,0,e.state.doc.length)],0)}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:s,toA:o})=>othis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=I.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=Yy(this.view,e.changes)),(j.ie||j.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,r=this.updateDeco(),n=Zy(i,r,e.changes);return t=oO.extendWithRanges(t,n),this.dirty==0&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t);let{observer:i}=this.view;i.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let n=j.chrome||j.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,n),this.dirty=0,n&&(n.written||i.selectionRange.focusNode!=n.node)&&(this.forceSelection=!0),this.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to=0?e[r]:null;if(!n)break;let{fromA:s,toA:o,fromB:a,toB:l}=n,{content:c,breakAtStart:h,openStart:Q,openEnd:u}=pc.build(this.view.state.doc,a,l,this.decorations,this.dynamicDecorationMap),{i:$,off:d}=i.findPos(o,1),{i:p,off:P}=i.findPos(s,-1);ud(this,p,P,$,d,c,h,Q,u)}}updateSelection(e=!1,t=!1){if((e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange(),!(t||this.mayControlSelection()))return;let i=this.forceSelection;this.forceSelection=!1;let r=this.view.state.selection.main,n=this.domAtPos(r.anchor),s=r.empty?n:this.domAtPos(r.head);if(j.gecko&&r.empty&&Ty(n)){let a=document.createTextNode("");this.view.observer.ignore(()=>n.node.insertBefore(a,n.node.childNodes[n.offset]||null)),n=s=new it(a,0),i=!0}let o=this.view.observer.selectionRange;(i||!o.focusNode||!ms(n.node,n.offset,o.anchorNode,o.anchorOffset)||!ms(s.node,s.offset,o.focusNode,o.focusOffset))&&(this.view.observer.ignore(()=>{j.android&&j.chrome&&this.dom.contains(o.focusNode)&&Ry(o.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let a=ps(this.view.root);if(a)if(r.empty){if(j.gecko){let l=qy(n.node,n.offset);if(l&&l!=3){let c=Gd(n.node,n.offset,l==1?1:-1);c&&(n=new it(c,l==1?0:c.nodeValue.length))}}a.collapse(n.node,n.offset),r.bidiLevel!=null&&o.cursorBidiLevel!=null&&(o.cursorBidiLevel=r.bidiLevel)}else if(a.extend){a.collapse(n.node,n.offset);try{a.extend(s.node,s.offset)}catch{}}else{let l=document.createRange();r.anchor>r.head&&([n,s]=[s,n]),l.setEnd(s.node,s.offset),l.setStart(n.node,n.offset),a.removeAllRanges(),a.addRange(l)}}),this.view.observer.setSelectionRange(n,s)),this.impreciseAnchor=n.precise?null:new it(o.anchorNode,o.anchorOffset),this.impreciseHead=s.precise?null:new it(o.focusNode,o.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:e}=this,t=e.state.selection.main,i=ps(e.root),{anchorNode:r,anchorOffset:n}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let s=lt.find(this,t.head);if(!s)return;let o=s.posAtStart;if(t.head==o||t.head==o+s.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&i.collapse(r,n)}mayControlSelection(){let e=this.view.root.activeElement;return e==this.dom||ts(this.dom,this.view.observer.selectionRange)&&!(e&&this.dom.contains(e))}nearest(e){for(let t=e;t;){let i=Se.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;ts||e==s&&n.type!=$e.WidgetBefore&&n.type!=$e.WidgetAfter&&(!r||t==2||this.children[r-1].breakAfter||this.children[r-1].type==$e.WidgetBefore&&t>-2))return n.coordsAt(e-s,t);i=s}}measureVisibleLineHeights(e){let t=[],{from:i,to:r}=e,n=this.view.contentDOM.clientWidth,s=n>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==We.LTR;for(let l=0,c=0;cr)break;if(l>=i){let u=h.dom.getBoundingClientRect();if(t.push(u.height),s){let $=h.dom.lastChild,d=$?jr($):[];if(d.length){let p=d[d.length-1],P=a?p.right-u.left:u.right-p.left;P>o&&(o=P,this.minWidth=n,this.minWidthFrom=l,this.minWidthTo=Q)}}}l=Q+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?We.RTL:We.LTR}measureTextSize(){for(let r of this.children)if(r instanceof lt){let n=r.measureTextSize();if(n)return n}let e=document.createElement("div"),t,i;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let r=jr(e.firstChild)[0];t=e.getBoundingClientRect().height,i=r?r.width/27:7,e.remove()}),{lineHeight:t,charWidth:i}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Qd(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,r=0;;r++){let n=r==t.viewports.length?null:t.viewports[r],s=n?n.from-1:this.length;if(s>i){let o=t.lineBlockAt(s).bottom-t.lineBlockAt(i).top;e.push(I.replace({widget:new lf(o),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!n)break;i=n.to+1}return I.set(e)}updateDeco(){let e=this.view.state.facet(Cr).map((t,i)=>(this.dynamicDecorationMap[i]=typeof t=="function")?t(this.view):t);for(let t=e.length;tt.anchor?-1:1),r;if(!i)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,r.left),top:Math.min(i.top,r.top),right:Math.max(i.right,r.right),bottom:Math.max(i.bottom,r.bottom)});let n=0,s=0,o=0,a=0;for(let c of this.view.state.facet(Rd).map(h=>h(this.view)))if(c){let{left:h,right:Q,top:u,bottom:$}=c;h!=null&&(n=Math.max(n,h)),Q!=null&&(s=Math.max(s,Q)),u!=null&&(o=Math.max(o,u)),$!=null&&(a=Math.max(a,$))}let l={left:i.left-n,top:i.top-o,right:i.right+s,bottom:i.bottom+a};hy(this.view.scrollDOM,l,t.head0&&t<=0)O=O.childNodes[e-1],e=Gr(O);else if(O.nodeType==1&&e=0)O=O.childNodes[e],e=0;else return null}}function qy(O,e){return O.nodeType!=1?0:(e&&O.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let l=at(r.text,s,!1);if(i(r.text.slice(l,s))!=a)break;s=l}for(;oO?e.left-O:Math.max(0,O-e.right)}function zy(O,e){return e.top>O?e.top-O:Math.max(0,O-e.bottom)}function _o(O,e){return O.tope.top+1}function cf(O,e){return eO.bottom?{top:O.top,left:O.left,right:O.right,bottom:e}:O}function nl(O,e,t){let i,r,n,s,o=!1,a,l,c,h;for(let $=O.firstChild;$;$=$.nextSibling){let d=jr($);for(let p=0;px||s==x&&n>y){i=$,r=P,n=y,s=x;let b=x?t0?p0)}y==0?t>P.bottom&&(!c||c.bottomP.top)&&(l=$,h=P):c&&_o(c,P)?c=hf(c,P.bottom):h&&_o(h,P)&&(h=cf(h,P.top))}}if(c&&c.bottom>=t?(i=a,r=c):h&&h.top<=t&&(i=l,r=h),!i)return{node:O,offset:0};let Q=Math.max(r.left,Math.min(r.right,e));if(i.nodeType==3)return ff(i,Q,t);if(o&&i.contentEditable!="false")return nl(i,Q,t);let u=Array.prototype.indexOf.call(O.childNodes,i)+(e>=(r.left+r.right)/2?1:0);return{node:O,offset:u}}function ff(O,e,t){let i=O.nodeValue.length,r=-1,n=1e9,s=0;for(let o=0;ot?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&h=(c.left+c.right)/2,u=Q;if((j.chrome||j.gecko)&&Ci(O,o).getBoundingClientRect().left==c.right&&(u=!Q),h<=0)return{node:O,offset:o+(u?1:0)};r=o+(u?1:0),n=h}}}return{node:O,offset:r>-1?r:s>0?O.nodeValue.length:0}}function Cd(O,e,t,i=-1){var r,n;let s=O.contentDOM.getBoundingClientRect(),o=s.top+O.viewState.paddingTop,a,{docHeight:l}=O.viewState,{x:c,y:h}=e,Q=h-o;if(Q<0)return 0;if(Q>l)return O.state.doc.length;for(let b=O.defaultLineHeight/2,Y=!1;a=O.elementAtHeight(Q),a.type!=$e.Text;)for(;Q=i>0?a.bottom+b:a.top-b,!(Q>=0&&Q<=l);){if(Y)return t?null:0;Y=!0,i=-i}h=o+Q;let u=a.from;if(uO.viewport.to)return O.viewport.to==O.state.doc.length?O.state.doc.length:t?null:Qf(O,s,a,c,h);let $=O.dom.ownerDocument,d=O.root.elementFromPoint?O.root:$,p=d.elementFromPoint(c,h);p&&!O.contentDOM.contains(p)&&(p=null),p||(c=Math.max(s.left+1,Math.min(s.right-1,c)),p=d.elementFromPoint(c,h),p&&!O.contentDOM.contains(p)&&(p=null));let P,y=-1;if(p&&((r=O.docView.nearest(p))===null||r===void 0?void 0:r.isEditable)!=!1){if($.caretPositionFromPoint){let b=$.caretPositionFromPoint(c,h);b&&({offsetNode:P,offset:y}=b)}else if($.caretRangeFromPoint){let b=$.caretRangeFromPoint(c,h);b&&({startContainer:P,startOffset:y}=b,(!O.contentDOM.contains(P)||j.safari&&_y(P,y,c)||j.chrome&&jy(P,y,c))&&(P=void 0))}}if(!P||!O.docView.dom.contains(P)){let b=lt.find(O.docView,u);if(!b)return Q>a.top+a.height/2?a.to:a.from;({node:P,offset:y}=nl(b.dom,c,h))}let x=O.docView.nearest(P);if(!x)return null;if(x.isWidget&&((n=x.dom)===null||n===void 0?void 0:n.nodeType)==1){let b=x.dom.getBoundingClientRect();return e.yO.defaultLineHeight*1.5){let o=Math.floor((r-t.top)/O.defaultLineHeight);n+=o*O.viewState.heightOracle.lineLength}let s=O.state.sliceDoc(t.from,t.to);return t.from+Da(s,n,O.state.tabSize)}function _y(O,e,t){let i;if(O.nodeType!=3||e!=(i=O.nodeValue.length))return!1;for(let r=O.nextSibling;r;r=r.nextSibling)if(r.nodeType!=1||r.nodeName!="BR")return!1;return Ci(O,i-1,i).getBoundingClientRect().left>t}function jy(O,e,t){if(e!=0)return!1;for(let r=O;;){let n=r.parentNode;if(!n||n.nodeType!=1||n.firstChild!=r)return!1;if(n.classList.contains("cm-line"))break;r=n}let i=O.nodeType==1?O.getBoundingClientRect():Ci(O,0,Math.max(O.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function Gy(O,e,t,i){let r=O.state.doc.lineAt(e.head),n=!i||!O.lineWrapping?null:O.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(n){let a=O.dom.getBoundingClientRect(),l=O.textDirectionAt(r.from),c=O.posAtCoords({x:t==(l==We.LTR)?a.right-1:a.left+1,y:(n.top+n.bottom)/2});if(c!=null)return X.cursor(c,t?-1:1)}let s=lt.find(O.docView,e.head),o=s?t?s.posAtEnd:s.posAtStart:t?r.to:r.from;return X.cursor(o,t?-1:1)}function uf(O,e,t,i){let r=O.state.doc.lineAt(e.head),n=O.bidiSpans(r),s=O.textDirectionAt(r.from);for(let o=e,a=null;;){let l=Wy(r,n,s,o,t),c=zd;if(!l){if(r.number==(t?O.state.doc.lines:1))return o;c=` +`,r=O.state.doc.line(r.number+(t?1:-1)),n=O.bidiSpans(r),l=X.cursor(t?r.from:r.to)}if(a){if(!a(c))return o}else{if(!i)return l;a=i(c)}o=l}}function Cy(O,e,t){let i=O.state.charCategorizer(e),r=i(t);return n=>{let s=i(n);return r==xe.Space&&(r=s),r==s}}function Iy(O,e,t,i){let r=e.head,n=t?1:-1;if(r==(t?O.state.doc.length:0))return X.cursor(r,e.assoc);let s=e.goalColumn,o,a=O.contentDOM.getBoundingClientRect(),l=O.coordsAtPos(r),c=O.documentTop;if(l)s==null&&(s=l.left-a.left),o=n<0?l.top:l.bottom;else{let u=O.viewState.lineBlockAt(r);s==null&&(s=Math.min(a.right-a.left,O.defaultCharacterWidth*(r-u.from))),o=(n<0?u.top:u.bottom)+c}let h=a.left+s,Q=i??O.defaultLineHeight>>1;for(let u=0;;u+=10){let $=o+(Q+u)*n,d=Cd(O,{x:h,y:$},!1,n);if($a.bottom||(n<0?dr))return X.cursor(d,e.assoc,void 0,s)}}function jo(O,e,t){let i=O.state.facet(Zd).map(r=>r(O));for(;;){let r=!1;for(let n of i)n.between(t.from-1,t.from+1,(s,o,a)=>{t.from>s&&t.fromt.from?X.cursor(s,1):X.cursor(o,-1),r=!0)});if(!r)return t}}class Ey{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.mouseSelection=null;let t=(i,r)=>{this.ignoreDuringComposition(r)||r.type=="keydown"&&this.keydown(e,r)||(this.mustFlushObserver(r)&&e.observer.forceFlush(),this.runCustomHandlers(r.type,e,r)?r.preventDefault():i(e,r))};for(let i in _e){let r=_e[i];e.contentDOM.addEventListener(i,n=>{$f(e,n)&&t(r,n)},sl[i]),this.registeredEvents.push(i)}e.scrollDOM.addEventListener("mousedown",i=>{i.target==e.scrollDOM&&i.clientY>e.contentDOM.getBoundingClientRect().bottom&&t(_e.mousedown,i)}),j.chrome&&j.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,j.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var i;let r;this.customHandlers=[];for(let n of t)if(r=(i=n.update(e).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:n.value,handlers:r});for(let s in r)this.registeredEvents.indexOf(s)<0&&s!="scroll"&&(this.registeredEvents.push(s),e.contentDOM.addEventListener(s,o=>{$f(e,o)&&this.runCustomHandlers(s,e,o)&&o.preventDefault()}))}}runCustomHandlers(e,t,i){for(let r of this.customHandlers){let n=r.handlers[e];if(n)try{if(n.call(r.plugin,i,t)||i.defaultPrevented)return!0}catch(s){xt(t.state,s)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let i of this.customHandlers){let r=i.handlers.scroll;if(r)try{r.call(i.plugin,t,e)}catch(n){xt(e.state,n)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()r.keyCode==t.keyCode))&&!t.ctrlKey||Ay.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=i||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,ki(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:j.safari&&!j.ios&&Date.now()-this.compositionEndedAt<100?(this.compositionEndedAt=0,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const Id=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Ay="dthko",Ed=[16,17,18,20,91,92,224,225];function bn(O){return O*.7+8}class Dy{constructor(e,t,i,r){this.view=e,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=fy(e.contentDOM);let n=e.contentDOM.ownerDocument;n.addEventListener("mousemove",this.move=this.move.bind(this)),n.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(te.allowMultipleSelections)&&My(e,t),this.dragMove=Ny(e,t),this.dragging=Ly(e,t)&&Nd(t)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging!==!1)return;this.select(this.lastEvent=e);let i=0,r=0,n=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};e.clientX<=n.left?i=-bn(n.left-e.clientX):e.clientX>=n.right&&(i=bn(e.clientX-n.right)),e.clientY<=n.top?r=-bn(n.top-e.clientY):e.clientY>=n.bottom&&(r=bn(e.clientY-n.bottom)),this.setScrollSpeed(i,r)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}select(e){let t=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!t.eq(this.view.state.selection)||t.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function My(O,e){let t=O.state.facet(xd);return t.length?t[0](e):j.mac?e.metaKey:e.ctrlKey}function Ny(O,e){let t=O.state.facet(bd);return t.length?t[0](e):j.mac?!e.altKey:!e.ctrlKey}function Ly(O,e){let{main:t}=O.state.selection;if(t.empty)return!1;let i=ps(O.root);if(!i||i.rangeCount==0)return!0;let r=i.getRangeAt(0).getClientRects();for(let n=0;n=e.clientX&&s.top<=e.clientY&&s.bottom>=e.clientY)return!0}return!1}function $f(O,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=O.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=Se.get(t))&&i.ignoreEvent(e))return!1;return!0}const _e=Object.create(null),sl=Object.create(null),Ad=j.ie&&j.ie_version<15||j.ios&&j.webkit_version<604;function By(O){let e=O.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{O.focus(),t.remove(),Dd(O,t.value)},50)}function Dd(O,e){let{state:t}=O,i,r=1,n=t.toText(e),s=n.lines==t.selection.ranges.length;if(ol!=null&&t.selection.ranges.every(a=>a.empty)&&ol==n.toString()){let a=-1;i=t.changeByRange(l=>{let c=t.doc.lineAt(l.from);if(c.from==a)return{range:l};a=c.from;let h=t.toText((s?n.line(r++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:h},range:X.cursor(l.from+h.length)}})}else s?i=t.changeByRange(a=>{let l=n.line(r++);return{changes:{from:a.from,to:a.to,insert:l.text},range:X.cursor(a.from+l.length)}}):i=t.replaceSelection(n);O.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}_e.keydown=(O,e)=>{O.inputState.setSelectionOrigin("select"),e.keyCode==27?O.inputState.lastEscPress=Date.now():Ed.indexOf(e.keyCode)<0&&(O.inputState.lastEscPress=0)};_e.touchstart=(O,e)=>{O.inputState.lastTouchTime=Date.now(),O.inputState.setSelectionOrigin("select.pointer")};_e.touchmove=O=>{O.inputState.setSelectionOrigin("select.pointer")};sl.touchstart=sl.touchmove={passive:!0};_e.mousedown=(O,e)=>{if(O.observer.flush(),O.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let i of O.state.facet(wd))if(t=i(O,e),t)break;if(!t&&e.button==0&&(t=Ky(O,e)),t){let i=O.root.activeElement!=O.contentDOM;O.inputState.startMouseSelection(new Dy(O,e,t,i)),i&&O.observer.ignore(()=>hd(O.contentDOM)),O.inputState.mouseSelection&&O.inputState.mouseSelection.start(e)}};function df(O,e,t,i){if(i==1)return X.cursor(e,t);if(i==2)return Uy(O.state,e,t);{let r=lt.find(O.docView,e),n=O.state.doc.lineAt(r?r.posAtEnd:e),s=r?r.posAtStart:n.from,o=r?r.posAtEnd:n.to;return oO>=e.top&&O<=e.bottom,pf=(O,e,t)=>Md(e,t)&&O>=t.left&&O<=t.right;function Hy(O,e,t,i){let r=lt.find(O.docView,e);if(!r)return 1;let n=e-r.posAtStart;if(n==0)return 1;if(n==r.length)return-1;let s=r.coordsAt(n,-1);if(s&&pf(t,i,s))return-1;let o=r.coordsAt(n,1);return o&&pf(t,i,o)?1:s&&Md(i,s)?-1:1}function mf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:Hy(O,t,e.clientX,e.clientY)}}const Fy=j.ie&&j.ie_version<=11;let Pf=null,gf=0,Sf=0;function Nd(O){if(!Fy)return O.detail;let e=Pf,t=Sf;return Pf=O,Sf=Date.now(),gf=!e||t>Date.now()-400&&Math.abs(e.clientX-O.clientX)<2&&Math.abs(e.clientY-O.clientY)<2?(gf+1)%3:1}function Ky(O,e){let t=mf(O,e),i=Nd(e),r=O.state.selection;return{update(n){n.docChanged&&(t.pos=n.changes.mapPos(t.pos),r=r.map(n.changes))},get(n,s,o){let a=mf(O,n),l=df(O,a.pos,a.bias,i);if(t.pos!=a.pos&&!s){let c=df(O,t.pos,t.bias,i),h=Math.min(c.from,l.from),Q=Math.max(c.to,l.to);l=h1&&r.ranges.some(c=>c.eq(l))?Jy(r,l):o?r.addRange(l):X.create([l])}}}function Jy(O,e){for(let t=0;;t++)if(O.ranges[t].eq(e))return X.create(O.ranges.slice(0,t).concat(O.ranges.slice(t+1)),O.mainIndex==t?0:O.mainIndex-(O.mainIndex>t?1:0))}_e.dragstart=(O,e)=>{let{selection:{main:t}}=O.state,{mouseSelection:i}=O.inputState;i&&(i.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",O.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function Xf(O,e,t,i){if(!t)return;let r=O.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:n}=O.inputState,s=i&&n&&n.dragging&&n.dragMove?{from:n.dragging.from,to:n.dragging.to}:null,o={from:r,insert:t},a=O.state.changes(s?[s,o]:o);O.focus(),O.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:s?"move.drop":"input.drop"})}_e.drop=(O,e)=>{if(!e.dataTransfer)return;if(O.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let i=Array(t.length),r=0,n=()=>{++r==t.length&&Xf(O,e,i.filter(s=>s!=null).join(O.state.lineBreak),!1)};for(let s=0;s{/[\x00-\x08\x0e-\x1f]{2}/.test(o.result)||(i[s]=o.result),n()},o.readAsText(t[s])}}else Xf(O,e,e.dataTransfer.getData("Text"),!0)};_e.paste=(O,e)=>{if(O.state.readOnly)return e.preventDefault();O.observer.flush();let t=Ad?null:e.clipboardData;t?(Dd(O,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):By(O)};function e1(O,e){let t=O.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),O.focus()},50)}function t1(O){let e=[],t=[],i=!1;for(let r of O.selection.ranges)r.empty||(e.push(O.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:n}of O.selection.ranges){let s=O.doc.lineAt(n);s.number>r&&(e.push(s.text),t.push({from:s.from,to:Math.min(O.doc.length,s.to+1)})),r=s.number}i=!0}return{text:e.join(O.lineBreak),ranges:t,linewise:i}}let ol=null;_e.copy=_e.cut=(O,e)=>{let{text:t,ranges:i,linewise:r}=t1(O.state);if(!t&&!r)return;ol=r?t:null;let n=Ad?null:e.clipboardData;n?(e.preventDefault(),n.clearData(),n.setData("text/plain",t)):e1(O,t),e.type=="cut"&&!O.state.readOnly&&O.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})};const Ld=xO.define();function Bd(O,e){let t=[];for(let i of O.facet(Yd)){let r=i(O,e);r&&t.push(r)}return t?O.update({effects:t,annotations:Ld.of(!0)}):null}function Hd(O){setTimeout(()=>{let e=O.hasFocus;if(e!=O.inputState.notifiedFocused){let t=Bd(O.state,e);t?O.dispatch(t):O.update([])}},10)}_e.focus=O=>{O.inputState.lastFocusTime=Date.now(),!O.scrollDOM.scrollTop&&(O.inputState.lastScrollTop||O.inputState.lastScrollLeft)&&(O.scrollDOM.scrollTop=O.inputState.lastScrollTop,O.scrollDOM.scrollLeft=O.inputState.lastScrollLeft),Hd(O)};_e.blur=O=>{O.observer.clearSelectionRange(),Hd(O)};_e.compositionstart=_e.compositionupdate=O=>{O.inputState.compositionFirstChange==null&&(O.inputState.compositionFirstChange=!0),O.inputState.composing<0&&(O.inputState.composing=0)};_e.compositionend=O=>{O.inputState.composing=-1,O.inputState.compositionEndedAt=Date.now(),O.inputState.compositionFirstChange=null,j.chrome&&j.android&&O.observer.flushSoon(),setTimeout(()=>{O.inputState.composing<0&&O.docView.compositionDeco.size&&O.update([])},50)};_e.contextmenu=O=>{O.inputState.lastContextMenu=Date.now()};_e.beforeinput=(O,e)=>{var t;let i;if(j.chrome&&j.android&&(i=Id.find(r=>r.inputType==e.inputType))&&(O.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let r=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var n;(((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0)>r+10&&O.hasFocus&&(O.contentDOM.blur(),O.focus())},100)}};const yf=["pre-wrap","normal","pre-line","break-spaces"];class O1{constructor(e){this.lineWrapping=e,this.doc=le.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return yf.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,o=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=i,this.lineLength=r,o){this.heightSamples={};for(let a=0;a0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>Os&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return ct.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,r){let n=this,s=i.doc;for(let o=r.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:c,toB:h}=r[o],Q=n.lineAt(a,ge.ByPosNoHeight,i.setDoc(t),0,0),u=Q.to>=l?Q:n.lineAt(l,ge.ByPosNoHeight,i,0,0);for(h+=u.to-l,l=u.to;o>0&&Q.from<=r[o-1].toA;)a=r[o-1].fromA,c=r[o-1].fromB,o--,an*2){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),i+=1+o.break,r-=o.size}else if(n>r*2){let o=e[i];o.break?e.splice(i,1,o.left,null,o.right):e.splice(i,1,o.left,o.right),i+=2+o.break,n-=o.size}else break;else if(r=n&&s(this.blockAt(0,i,r,n))}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more&&this.setHeight(e,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class St extends Fd{constructor(e,t){super(e,t,$e.Text),this.collapsed=0,this.widgetHeight=0}replace(e,t,i){let r=i[0];return i.length==1&&(r instanceof St||r instanceof Le&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof Le?r=new St(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):ct.of(i)}updateHeight(e,t=0,i=!1,r){return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Le extends ct{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,n=r-i+1,s,o=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*n);s=a/n,o=(this.height-a)/(this.length-n-1)}else s=this.height/n;return{firstLine:i,lastLine:r,perLine:s,perChar:o}}blockAt(e,t,i,r){let{firstLine:n,lastLine:s,perLine:o,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let l=r+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),c=t.doc.lineAt(l),h=o+c.length*a,Q=Math.max(i,e-h/2);return new PO(c.from,c.length,Q,h,$e.Text)}else{let l=Math.max(0,Math.min(s-n,Math.floor((e-i)/o))),{from:c,length:h}=t.doc.line(n+l);return new PO(c,h,i+o*l,o,$e.Text)}}lineAt(e,t,i,r,n){if(t==ge.ByHeight)return this.blockAt(e,i,r,n);if(t==ge.ByPosNoHeight){let{from:u,to:$}=i.doc.lineAt(e);return new PO(u,$-u,0,0,$e.Text)}let{firstLine:s,perLine:o,perChar:a}=this.heightMetrics(i,n),l=i.doc.lineAt(e),c=o+l.length*a,h=l.number-s,Q=r+o*h+a*(l.from-n-h);return new PO(l.from,l.length,Math.max(r,Math.min(Q,r+this.height-c)),c,$e.Text)}forEachLine(e,t,i,r,n,s){e=Math.max(e,n),t=Math.min(t,n+this.length);let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(i,n);for(let c=e,h=r;c<=t;){let Q=i.doc.lineAt(c);if(c==e){let $=Q.number-o;h+=a*$+l*(e-n-$)}let u=a+l*Q.length;s(new PO(Q.from,Q.length,h,u,$e.Text)),h+=u,c=Q.to+1}}replace(e,t,i){let r=this.length-t;if(r>0){let n=i[i.length-1];n instanceof Le?i[i.length-1]=new Le(n.length+r):i.push(null,new Le(r-1))}if(e>0){let n=i[0];n instanceof Le?i[0]=new Le(e+n.length):i.unshift(new Le(e-1),null)}return ct.of(i)}decomposeLeft(e,t){t.push(new Le(e-1),null)}decomposeRight(e,t){t.push(null,new Le(this.length-e-1))}updateHeight(e,t=0,i=!1,r){let n=t+this.length;if(r&&r.from<=t+this.length&&r.more){let s=[],o=Math.max(t,r.from),a=-1;for(r.from>t&&s.push(new Le(r.from-t-1).updateHeight(e,t));o<=n&&r.more;){let c=e.doc.lineAt(o).length;s.length&&s.push(null);let h=r.heights[r.index++];a==-1?a=h:Math.abs(h-a)>=Os&&(a=-2);let Q=new St(c,h);Q.outdated=!1,s.push(Q),o+=c+1}o<=n&&s.push(null,new Le(n-o).updateHeight(e,o));let l=ct.of(s);return(a<0||Math.abs(l.height-this.height)>=Os||Math.abs(a-this.heightMetrics(e,t).perLine)>=Os)&&(e.heightChanged=!0),l}else(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class r1 extends ct{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,r){let n=i+this.left.height;return eo))return l;let c=t==ge.ByPosNoHeight?ge.ByPosNoHeight:ge.ByPos;return a?l.join(this.right.lineAt(o,c,i,s,o)):this.left.lineAt(o,c,i,r,n).join(l)}forEachLine(e,t,i,r,n,s){let o=r+this.left.height,a=n+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,o,a,s);else{let l=this.lineAt(a,ge.ByPos,i,r,n);e=e&&l.from<=t&&s(l),t>l.to&&this.right.forEachLine(l.to+1,t,i,o,a,s)}}replace(e,t,i){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,i));let n=[];e>0&&this.decomposeLeft(e,n);let s=n.length;for(let o of i)n.push(o);if(e>0&&xf(n,s-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,r=i+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?ct.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,r){let{left:n,right:s}=this,o=t+n.length+this.break,a=null;return r&&r.from<=t+n.length&&r.more?a=n=n.updateHeight(e,t,i,r):n.updateHeight(e,t,i),r&&r.from<=o+s.length&&r.more?a=s=s.updateHeight(e,o,i,r):s.updateHeight(e,o,i),a?this.balanced(n,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function xf(O,e){let t,i;O[e]==null&&(t=O[e-1])instanceof Le&&(i=O[e+1])instanceof Le&&O.splice(e-1,3,new Le(t.length+1+i.length))}const n1=5;class Pc{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof St?r.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new St(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=n1)&&this.addLineDeco(r,n)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new St(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new Le(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof St)return e;let t=new St(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type==$e.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=$e.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof St)&&!this.isCovered?this.nodes.push(new St(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&h.overflow!="visible"){let Q=c.getBoundingClientRect();n=Math.max(n,Q.left),s=Math.min(s,Q.right),o=Math.max(o,Q.top),a=l==O.parentNode?Q.bottom:Math.min(a,Q.bottom)}l=h.position=="absolute"||h.position=="fixed"?c.offsetParent:c.parentNode}else if(l.nodeType==11)l=l.host;else break;return{left:n-t.left,right:Math.max(n,s)-t.left,top:o-(t.top+e),bottom:Math.max(o,a)-(t.top+e)}}function l1(O,e){let t=O.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Go{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new O1(t),this.stateDeco=e.facet(Cr).filter(i=>typeof i!="function"),this.heightMap=ct.empty().applyChanges(this.stateDeco,le.empty,this.heightOracle.setDoc(e.doc),[new oO(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=I.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let r=i?t.head:t.anchor;if(!e.some(({from:n,to:s})=>r>=n&&r<=s)){let{from:n,to:s}=this.lineBlockAt(r);e.push(new wn(n,s))}}this.viewports=e.sort((i,r)=>i.from-r.from),this.scaler=this.heightMap.height<=7e6?wf:new Q1(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:$r(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Cr).filter(l=>typeof l!="function");let r=e.changedRanges,n=oO.extendWithRanges(r,s1(i,this.stateDeco,e?e.changes:Ve.empty(this.state.doc.length))),s=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),n),this.heightMap.height!=s&&(e.flags|=2);let o=n.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heado.to)||!this.viewportIsAppropriate(o))&&(o=this.getViewport(0,t));let a=!e.changes.empty||e.flags&2||o.from!=this.viewport.from||o.to!=this.viewport.to;this.viewport=o,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(qd)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),r=this.heightOracle,n=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?We.RTL:We.LTR;let s=this.heightOracle.mustRefreshForWrapping(n),o=t.getBoundingClientRect(),a=s||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let l=0,c=0,h=parseInt(i.paddingTop)||0,Q=parseInt(i.paddingBottom)||0;(this.paddingTop!=h||this.paddingBottom!=Q)&&(this.paddingTop=h,this.paddingBottom=Q,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let u=(this.printing?l1:a1)(t,this.paddingTop),$=u.top-this.pixelViewport.top,d=u.bottom-this.pixelViewport.bottom;this.pixelViewport=u;let p=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(p!=this.inView&&(this.inView=p,p&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let P=o.width;if((this.contentDOMWidth!=P||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let x=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(x)&&(s=!0),s||r.lineWrapping&&Math.abs(P-this.contentDOMWidth)>r.charWidth){let{lineHeight:b,charWidth:Y}=e.docView.measureTextSize();s=b>0&&r.refresh(n,b,Y,P/Y,x),s&&(e.docView.minWidth=0,l|=8)}$>0&&d>0?c=Math.max($,d):$<0&&d<0&&(c=Math.min($,d)),r.heightChanged=!1;for(let b of this.viewports){let Y=b.from==this.viewport.from?x:e.docView.measureVisibleLineHeights(b);this.heightMap=(s?ct.empty().applyChanges(this.stateDeco,le.empty,this.heightOracle,[new oO(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,s,new i1(b.from,Y))}r.heightChanged&&(l|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(l&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(s?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,n=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,a=new wn(r.lineAt(s-i*1e3,ge.ByHeight,n,0,0).from,r.lineAt(o+(1-i)*1e3,ge.ByHeight,n,0,0).to);if(t){let{head:l}=t.range;if(la.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=r.lineAt(l,ge.ByPos,n,0,0),Q;t.y=="center"?Q=(h.top+h.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&l=o+Math.max(10,Math.min(i,250)))&&r>s-2*1e3&&n>1,s=r<<1;if(this.defaultTextDirection!=We.LTR&&!i)return[];let o=[],a=(l,c,h,Q)=>{if(c-ll&&pp.from>=h.from&&p.to<=h.to&&Math.abs(p.from-l)p.fromP));if(!d){if(cp.from<=c&&p.to>=c)){let p=t.moveToLineBoundary(X.cursor(c),!1,!0).head;p>l&&(c=p)}d=new Go(l,c,this.gapSize(h,l,c,Q))}o.push(d)};for(let l of this.viewportLines){if(l.lengthl.from&&a(l.from,Q,l,c),ut.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];ce.spans(e,this.viewport.from,this.viewport.to,{span(r,n){t.push({from:r,to:n})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((r,n)=>r.from!=t[n].from||r.to!=t[n].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||$r(this.heightMap.lineAt(e,ge.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return $r(this.heightMap.lineAt(this.scaler.fromDOM(e),ge.ByHeight,this.heightOracle,0,0),this.scaler)}elementAtHeight(e){return $r(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class wn{constructor(e,t){this.from=e,this.to=t}}function h1(O,e,t){let i=[],r=O,n=0;return ce.spans(t,O,e,{span(){},point(s,o){s>r&&(i.push({from:r,to:s}),n+=s-r),r=o}},20),r=1)return e[e.length-1].to;let i=Math.floor(O*t);for(let r=0;;r++){let{from:n,to:s}=e[r],o=s-n;if(i<=o)return n+i;i-=o}}function Tn(O,e){let t=0;for(let{from:i,to:r}of O.ranges){if(e<=r){t+=e-i;break}t+=r-i}return t/O.total}function f1(O,e){for(let t of O)if(e(t))return t}const wf={toDOM(O){return O},fromDOM(O){return O},scale:1};class Q1{constructor(e,t,i){let r=0,n=0,s=0;this.viewports=i.map(({from:o,to:a})=>{let l=t.lineAt(o,ge.ByPos,e,0,0).top,c=t.lineAt(a,ge.ByPos,e,0,0).bottom;return r+=c-l,{from:o,to:a,top:l,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let o of this.viewports)o.domTop=s+(o.top-n)*this.scale,s=o.domBottom=o.domTop+(o.bottom-o.top),n=o.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=t$r(r,e)):O.type)}const Yn=_.define({combine:O=>O.join(" ")}),al=_.define({combine:O=>O.indexOf(!0)>-1}),ll=IO.newName(),Kd=IO.newName(),Jd=IO.newName(),ep={"&light":"."+Kd,"&dark":"."+Jd};function cl(O,e,t){return new IO(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,r=>{if(r=="&")return O;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):O+" "+i}})}const u1=cl("."+ll,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},ep);class $1{constructor(e,t,i,r){this.typeOver=r,this.bounds=null,this.text="";let{impreciseHead:n,impreciseAnchor:s}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let o=n||s?[]:p1(e),a=new _d(o,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=m1(o,this.bounds.from)}else{let o=e.observer.selectionRange,a=n&&n.node==o.focusNode&&n.offset==o.focusOffset||!Gi(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),l=s&&s.node==o.anchorNode&&s.offset==o.anchorOffset||!Gi(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset);this.newSel=X.single(l,a)}}}function tp(O,e){let t,{newSel:i}=e,r=O.state.selection.main;if(e.bounds){let{from:n,to:s}=e.bounds,o=r.from,a=null;(O.inputState.lastKeyCode===8&&O.inputState.lastKeyTime>Date.now()-100||j.android&&e.text.length=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:O.state.doc.slice(r.from,t.from).append(t.insert).append(O.state.doc.slice(t.to,r.to))}:(j.mac||j.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&O.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}):j.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==` + `&&O.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}),t){let n=O.state;if(j.ios&&O.inputState.flushIOSKey(O)||j.android&&(t.from==r.from&&t.to==r.to&&t.insert.length==1&&t.insert.lines==2&&ki(O.contentDOM,"Enter",13)||t.from==r.from-1&&t.to==r.to&&t.insert.length==0&&ki(O.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&ki(O.contentDOM,"Delete",46)))return!0;let s=t.insert.toString();if(O.state.facet(Td).some(l=>l(O,t.from,t.to,s)))return!0;O.inputState.composing>=0&&O.inputState.composing++;let o;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&O.inputState.composing<0){let l=r.fromt.to?n.sliceDoc(t.to,r.to):"";o=n.replaceSelection(O.state.toText(l+t.insert.sliceString(0,void 0,O.state.lineBreak)+c))}else{let l=n.changes(t),c=i&&!n.selection.main.eq(i.main)&&i.main.to<=l.newLength?i.main:void 0;if(n.selection.ranges.length>1&&O.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let h=O.state.sliceDoc(t.from,t.to),Q=jd(O)||O.state.doc.lineAt(r.head),u=r.to-t.to,$=r.to-r.from;o=n.changeByRange(d=>{if(d.from==r.from&&d.to==r.to)return{changes:l,range:c||d.map(l)};let p=d.to-u,P=p-h.length;if(d.to-d.from!=$||O.state.sliceDoc(P,p)!=h||Q&&d.to>=Q.from&&d.from<=Q.to)return{range:d};let y=n.changes({from:P,to:p,insert:t.insert}),x=d.to-r.to;return{changes:y,range:c?X.range(Math.max(0,c.anchor+x),Math.max(0,c.head+x)):d.map(y)}})}else o={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return O.composing&&(a+=".compose",O.inputState.compositionFirstChange&&(a+=".start",O.inputState.compositionFirstChange=!1)),O.dispatch(o,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(r)){let n=!1,s="select";return O.inputState.lastSelectionTime>Date.now()-50&&(O.inputState.lastSelectionOrigin=="select"&&(n=!0),s=O.inputState.lastSelectionOrigin),O.dispatch({selection:i,scrollIntoView:n,userEvent:s}),!0}else return!1}function d1(O,e,t,i){let r=Math.min(O.length,e.length),n=0;for(;n0&&o>0&&O.charCodeAt(s-1)==e.charCodeAt(o-1);)s--,o--;if(i=="end"){let a=Math.max(0,n-Math.min(s,o));t-=s+a-n}if(s=s?n-t:0;n-=a,o=n+(o-s),s=n}else if(o=o?n-t:0;n-=a,s=n+(s-o),o=n}return{from:n,toA:s,toB:o}}function p1(O){let e=[];if(O.root.activeElement!=O.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:n}=O.observer.selectionRange;return t&&(e.push(new of(t,i)),(r!=t||n!=i)&&e.push(new of(r,n))),e}function m1(O,e){if(O.length==0)return null;let t=O[0].pos,i=O.length==2?O[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}const P1={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Co=j.ie&&j.ie_version<=11;class g1{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Qy,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(j.ie&&j.ie_version<=11||j.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Co&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(ao)?i.root.activeElement!=this.dom:!ts(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);if(n&&n.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(j.ie&&j.ie_version<=11||j.android&&j.chrome)&&!i.state.selection.main.empty&&r.focusNode&&ms(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=j.safari&&e.root.nodeType==11&&ly(this.dom.ownerDocument)==this.dom&&S1(this.view)||ps(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=ts(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let n=this.delayedAndroidKey;n&&(this.clearDelayedAndroidKey(),!this.flush()&&n.force&&ki(this.dom,n.key,n.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let n of this.observer.takeRecords())e.push(n);e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let s=this.readMutation(n);s&&(s.typeOver&&(r=!0),t==-1?{from:t,to:i}=s:(t=Math.min(s.from,t),i=Math.max(s.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&ts(this.dom,this.selectionRange);return e<0&&!r?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new $1(this.view,e,t,i))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let i=this.view.state,r=tp(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let i=Wf(t,e.previousSibling||e.target.previousSibling,-1),r=Wf(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect(),(r=this.resizeContent)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Wf(O,e,t){for(;e;){let i=Se.get(e);if(i&&i.parent==O)return i;let r=e.parentNode;e=r!=O.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function S1(O){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(O.contentDOM.addEventListener("beforeinput",t,!0),O.dom.ownerDocument.execCommand("indent"),O.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=O.docView.domAtPos(O.state.selection.main.anchor);return ms(o.node,o.offset,n,s)&&([i,r,n,s]=[n,s,i,r]),{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:s}}class z{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||uy(e.parent)||document,this.viewState=new bf(e.state||te.create(e)),this.plugins=this.state.facet(Qr).map(t=>new zo(t));for(let t of this.plugins)t.update(this);this.observer=new g1(this),this.inputState=new Ey(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new af(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof ze?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,r,n=this.state;for(let Q of e){if(Q.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=Q.state}if(this.destroyed){this.viewState.state=n;return}let s=this.hasFocus,o=0,a=null;e.some(Q=>Q.annotation(Ld))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=Bd(n,s),a||(o=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(c=null)):this.observer.clear(),n.facet(te.phrases)!=this.state.facet(te.phrases))return this.setState(n);r=Ss.create(this,n,e),r.flags|=o;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let Q of e){if(h&&(h=h.map(Q.changes)),Q.scrollIntoView){let{main:u}=Q.state.selection;h=new gs(u.empty?u:X.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of Q.effects)u.is(nf)&&(h=u.value)}this.viewState.update(r,h),this.bidiCache=Xs.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(ur)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(Q=>Q.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Yn)!=r.state.facet(Yn)&&(this.viewState.mustMeasureContent=!0),(t||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let Q of this.state.facet(Ol))Q(r);(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!tp(this,c)&&l.force&&ki(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new bf(e),this.plugins=e.facet(Qr).map(i=>new zo(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new af(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Qr),i=e.state.facet(Qr);if(t!=i){let r=[];for(let n of i){let s=t.indexOf(n);if(s<0)r.push(new zo(n));else{let o=this.plugins[s];o.mustUpdate=e,r.push(o)}}for(let n of this.plugins)n.mustUpdate!=e&&n.destroy(this);this.plugins=r,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:i,scrollTop:r,clientHeight:n}=this.scrollDOM,s=r>i-n-4?i:r;try{for(let o=0;;o++){this.updateState=1;let a=this.viewport,l=this.viewState.lineBlockAtHeight(s),c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];c&4||([this.measureRequests,h]=[h,this.measureRequests]);let Q=h.map(p=>{try{return p.read(this)}catch(P){return xt(this.state,P),Tf}}),u=Ss.create(this,this.state,[]),$=!1,d=!1;u.flags|=c,t?t.flags|=c:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),$=this.docView.update(u));for(let p=0;p1||p<-1)&&(this.scrollDOM.scrollTop+=p,d=!0)}if($&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!d&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let o of this.state.facet(Ol))o(t)}get themeClasses(){return ll+" "+(this.state.facet(al)?Jd:Kd)+" "+this.state.facet(Yn)}updateAttrs(){let e=Yf(this,kd,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(ao)?"true":"false",class:"cm-content",style:`${j.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Yf(this,mc,t);let i=this.observer.ignore(()=>{let r=el(this.contentDOM,this.contentAttrs,t),n=el(this.dom,this.editorAttrs,e);return r||n});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let r of i.effects)if(r.is(z.announce)){t&&(this.announceDOM.textContent=""),t=!1;let n=this.announceDOM.appendChild(document.createElement("div"));n.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(ur),IO.mount(this.root,this.styleModules.concat(u1).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return jo(this,e,uf(this,e,t,i))}moveByGroup(e,t){return jo(this,e,uf(this,e,t,i=>Cy(this,e.head,i)))}moveToLineBoundary(e,t,i=!0){return Gy(this,e,t,i)}moveVertically(e,t,i){return jo(this,e,Iy(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Cd(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[Zi.find(n,e-r.from,-1,t)];return uc(i,s.dir==We.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(vd)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>X1)return Vd(e.length);let t=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t)return r.order;let i=wy(e.text,t);return this.bidiCache.push(new Xs(e.from,e.to,t,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||j.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{hd(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return nf.of(new gs(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return qe.define(()=>({}),{eventHandlers:e})}static theme(e,t){let i=IO.newName(),r=[Yn.of(i),ur.of(cl(`.${i}`,e))];return t&&t.dark&&r.push(al.of(!0)),r}static baseTheme(e){return MO.lowest(ur.of(cl("."+ll,e,ep)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&Se.get(i)||Se.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}}z.styleModule=ur;z.inputHandler=Td;z.focusChangeEffect=Yd;z.perLineTextDirection=vd;z.exceptionSink=Wd;z.updateListener=Ol;z.editable=ao;z.mouseSelectionStyle=wd;z.dragMovesSelection=bd;z.clickAddsSelectionRange=xd;z.decorations=Cr;z.atomicRanges=Zd;z.scrollMargins=Rd;z.darkTheme=al;z.contentAttributes=mc;z.editorAttributes=kd;z.lineWrapping=z.contentAttributes.of({class:"cm-lineWrapping"});z.announce=B.define();const X1=4096,Tf={};class Xs{constructor(e,t,i,r){this.from=e,this.to=t,this.dir=i,this.order=r}static update(e,t){if(t.empty)return e;let i=[],r=e.length?e[e.length-1].dir:We.LTR;for(let n=Math.max(0,e.length-10);n=0;r--){let n=i[r],s=typeof n=="function"?n(O):n;s&&Ja(s,t)}return t}const y1=j.mac?"mac":j.windows?"win":j.linux?"linux":"key";function x1(O,e){const t=O.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let r,n,s,o;for(let a=0;ai.concat(r),[]))),t}function w1(O,e,t){return ip(Op(O.state),e,O,t)}let qO=null;const W1=4e3;function T1(O,e=y1){let t=Object.create(null),i=Object.create(null),r=(s,o)=>{let a=i[s];if(a==null)i[s]=o;else if(a!=o)throw new Error("Key binding "+s+" is used both as a regular binding and as a multi-stroke prefix")},n=(s,o,a,l)=>{var c,h;let Q=t[s]||(t[s]=Object.create(null)),u=o.split(/ (?!$)/).map(p=>x1(p,e));for(let p=1;p{let x=qO={view:y,prefix:P,scope:s};return setTimeout(()=>{qO==x&&(qO=null)},W1),!0}]})}let $=u.join(" ");r($,!1);let d=Q[$]||(Q[$]={preventDefault:!1,run:((h=(c=Q._any)===null||c===void 0?void 0:c.run)===null||h===void 0?void 0:h.slice())||[]});a&&d.run.push(a),l&&(d.preventDefault=!0)};for(let s of O){let o=s.scope?s.scope.split(" "):["editor"];if(s.any)for(let l of o){let c=t[l]||(t[l]=Object.create(null));c._any||(c._any={preventDefault:!1,run:[]});for(let h in c)c[h].run.push(s.any)}let a=s[e]||s.key;if(a)for(let l of o)n(l,a,s.run,s.preventDefault),s.shift&&n(l,"Shift-"+a,s.shift,s.preventDefault)}return t}function ip(O,e,t,i){let r=ay(e),n=Be(r,0),s=wt(n)==r.length&&r!=" ",o="",a=!1;qO&&qO.view==t&&qO.scope==i&&(o=qO.prefix+" ",(a=Ed.indexOf(e.keyCode)<0)&&(qO=null));let l=new Set,c=$=>{if($){for(let d of $.run)if(!l.has(d)&&(l.add(d),d(t,e)))return!0;$.preventDefault&&(a=!0)}return!1},h=O[i],Q,u;if(h){if(c(h[o+vn(r,e,!s)]))return!0;if(s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(j.windows&&e.ctrlKey&&e.altKey)&&(Q=EO[e.keyCode])&&Q!=r){if(c(h[o+vn(Q,e,!0)]))return!0;if(e.shiftKey&&(u=_r[e.keyCode])!=r&&u!=Q&&c(h[o+vn(u,e,!1)]))return!0}else if(s&&e.shiftKey&&c(h[o+vn(r,e,!0)]))return!0;if(c(h._any))return!0}return a}class sn{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=rp(e);return[new sn(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}else return Y1(e,t,i)}}function rp(O){let e=O.scrollDOM.getBoundingClientRect();return{left:(O.textDirection==We.LTR?e.left:e.right-O.scrollDOM.clientWidth)-O.scrollDOM.scrollLeft,top:e.top-O.scrollDOM.scrollTop}}function qf(O,e,t){let i=X.cursor(e);return{from:Math.max(t.from,O.moveToLineBoundary(i,!1,!0).from),to:Math.min(t.to,O.moveToLineBoundary(i,!0,!0).from),type:$e.Text}}function kf(O,e){let t=O.lineBlockAt(e);if(Array.isArray(t.type)){for(let i of t.type)if(i.to>e||i.to==e&&(i.to==t.to||i.type==$e.Text))return i}return t}function Y1(O,e,t){if(t.to<=O.viewport.from||t.from>=O.viewport.to)return[];let i=Math.max(t.from,O.viewport.from),r=Math.min(t.to,O.viewport.to),n=O.textDirection==We.LTR,s=O.contentDOM,o=s.getBoundingClientRect(),a=rp(O),l=s.querySelector(".cm-line"),c=l&&window.getComputedStyle(l),h=o.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),Q=o.right-(c?parseInt(c.paddingRight):0),u=kf(O,i),$=kf(O,r),d=u.type==$e.Text?u:null,p=$.type==$e.Text?$:null;if(O.lineWrapping&&(d&&(d=qf(O,i,d)),p&&(p=qf(O,r,p))),d&&p&&d.from==p.from)return y(x(t.from,t.to,d));{let Y=d?x(t.from,null,d):b(u,!1),Z=p?x(null,t.to,p):b($,!0),E=[];return(d||u).to<(p||$).from-1?E.push(P(h,Y.bottom,Q,Z.top)):Y.bottomXe&&Ge.from=ne)break;be>ke&&oe(Math.max(fe,ke),Y==null&&fe<=Xe,Math.min(be,ne),Z==null&&be>=Te,F.dir)}if(ke=ie.to+1,ke>=ne)break}return N.length==0&&oe(Xe,Y==null,Te,Z==null,O.textDirection),{top:Oe,bottom:H,horizontal:N}}function b(Y,Z){let E=o.top+(Z?Y.top:Y.bottom);return{top:E,bottom:E,horizontal:[]}}}function v1(O,e){return O.constructor==e.constructor&&O.eq(e)}class q1{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(is)!=e.state.facet(is)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(is);for(;t!v1(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const is=_.define();function np(O){return[qe.define(e=>new q1(e,O)),is.of(O)]}const sp=!j.ios,Ir=_.define({combine(O){return cO(O,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function k1(O={}){return[Ir.of(O),Z1,R1,U1,qd.of(!0)]}function op(O){return O.startState.facet(Ir)!=O.state.facet(Ir)}const Z1=np({above:!0,markers(O){let{state:e}=O,t=e.facet(Ir),i=[];for(let r of e.selection.ranges){let n=r==e.selection.main;if(r.empty?!n||sp:t.drawRangeCursor){let s=n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",o=r.empty?r:X.cursor(r.head,r.head>r.anchor?-1:1);for(let a of sn.forRange(O,s,o))i.push(a)}}return i},update(O,e){O.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=op(O);return t&&Zf(O.state,e),O.docChanged||O.selectionSet||t},mount(O,e){Zf(e.state,O)},class:"cm-cursorLayer"});function Zf(O,e){e.style.animationDuration=O.facet(Ir).cursorBlinkRate+"ms"}const R1=np({above:!1,markers(O){return O.state.selection.ranges.map(e=>e.empty?[]:sn.forRange(O,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(O,e){return O.docChanged||O.selectionSet||O.viewportChanged||op(O)},class:"cm-selectionLayer"}),ap={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};sp&&(ap[".cm-line"].caretColor="transparent !important");const U1=MO.highest(z.theme(ap)),lp=B.define({map(O,e){return O==null?null:e.mapPos(O)}}),dr=Ae.define({create(){return null},update(O,e){return O!=null&&(O=e.changes.mapPos(O)),e.effects.reduce((t,i)=>i.is(lp)?i.value:t,O)}}),V1=qe.fromClass(class{constructor(O){this.view=O,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(O){var e;let t=O.state.field(dr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(O.startState.field(dr)!=t||O.docChanged||O.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let O=this.view.state.field(dr),e=O!=null&&this.view.coordsAtPos(O);if(!e)return null;let t=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-t.left+this.view.scrollDOM.scrollLeft,top:e.top-t.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(O){this.cursor&&(O?(this.cursor.style.left=O.left+"px",this.cursor.style.top=O.top+"px",this.cursor.style.height=O.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(O){this.view.state.field(dr)!=O&&this.view.dispatch({effects:lp.of(O)})}},{eventHandlers:{dragover(O){this.setDropPos(this.view.posAtCoords({x:O.clientX,y:O.clientY}))},dragleave(O){(O.target==this.view.contentDOM||!this.view.contentDOM.contains(O.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function z1(){return[dr,V1]}function Rf(O,e,t,i,r){e.lastIndex=0;for(let n=O.iterRange(t,i),s=t,o;!n.next().done;s+=n.value.length)if(!n.lineBreak)for(;o=e.exec(n.value);)r(s+o.index,o)}function _1(O,e){let t=O.visibleRanges;if(t.length==1&&t[0].from==O.viewport.from&&t[0].to==O.viewport.to)return t;let i=[];for(let{from:r,to:n}of t)r=Math.max(O.state.doc.lineAt(r).from,r-e),n=Math.min(O.state.doc.lineAt(n).to,n+e),i.length&&i[i.length-1].to>=r?i[i.length-1].to=n:i.push({from:r,to:n});return i}class j1{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:s=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(o,a,l,c)=>r(c,l,l+o[0].length,o,a);else if(typeof i=="function")this.addMatch=(o,a,l,c)=>{let h=i(o,a,l);h&&c(l,l+o[0].length,h)};else if(i)this.addMatch=(o,a,l,c)=>c(l,l+o[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=n,this.maxLength=s}createDeco(e){let t=new CO,i=t.add.bind(t);for(let{from:r,to:n}of _1(e,this.maxLength))Rf(e.state.doc,this.regexp,r,n,(s,o)=>this.addMatch(o,e,s,i));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((n,s,o,a)=>{a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let s=Math.max(n.from,i),o=Math.min(n.to,r);if(o>s){let a=e.state.doc.lineAt(s),l=a.toa.from;s--)if(this.boundary.test(a.text[s-1-a.from])){c=s;break}for(;oQ.push(P.range(d,p));if(a==l)for(this.regexp.lastIndex=c-a.from;(u=this.regexp.exec(a.text))&&u.indexthis.addMatch(p,e,d,$));t=t.update({filterFrom:c,filterTo:h,filter:(d,p)=>dh,add:Q})}}return t}}const hl=/x/.unicode!=null?"gu":"g",G1=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,hl),C1={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Io=null;function I1(){var O;if(Io==null&&typeof document<"u"&&document.body){let e=document.body.style;Io=((O=e.tabSize)!==null&&O!==void 0?O:e.MozTabSize)!=null}return Io||!1}const rs=_.define({combine(O){let e=cO(O,{render:null,specialChars:G1,addSpecialChars:null});return(e.replaceTabs=!I1())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,hl)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,hl)),e}});function E1(O={}){return[rs.of(O),A1()]}let Uf=null;function A1(){return Uf||(Uf=qe.fromClass(class{constructor(O){this.view=O,this.decorations=I.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(O.state.facet(rs)),this.decorations=this.decorator.createDeco(O)}makeDecorator(O){return new j1({regexp:O.specialChars,decoration:(e,t,i)=>{let{doc:r}=t.state,n=Be(e[0],0);if(n==9){let s=r.lineAt(i),o=t.state.tabSize,a=rn(s.text,o,i-s.from);return I.replace({widget:new L1((o-a%o)*this.view.defaultCharacterWidth)})}return this.decorationCache[n]||(this.decorationCache[n]=I.replace({widget:new N1(O,n)}))},boundary:O.replaceTabs?void 0:/[^]/})}update(O){let e=O.state.facet(rs);O.startState.facet(rs)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(O.view)):this.decorations=this.decorator.updateDeco(O,this.decorations)}},{decorations:O=>O.decorations}))}const D1="•";function M1(O){return O>=32?D1:O==10?"␤":String.fromCharCode(9216+O)}class N1 extends hO{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=M1(this.code),i=e.state.phrase("Control character")+" "+(C1[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class L1 extends hO{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function B1(){return F1}const H1=I.line({class:"cm-activeLine"}),F1=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.docChanged||O.selectionSet)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=-1,t=[];for(let i of O.state.selection.ranges){let r=O.lineBlockAt(i.head);r.from>e&&(t.push(H1.range(r.from)),e=r.from)}return I.set(t)}},{decorations:O=>O.decorations});class K1 extends hO{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function J1(O){return qe.fromClass(class{constructor(e){this.view=e,this.placeholder=I.set([I.widget({widget:new K1(O),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?I.none:this.placeholder}},{decorations:e=>e.decorations})}const fl=2e3;function ex(O,e,t){let i=Math.min(e.line,t.line),r=Math.max(e.line,t.line),n=[];if(e.off>fl||t.off>fl||e.col<0||t.col<0){let s=Math.min(e.off,t.off),o=Math.max(e.off,t.off);for(let a=i;a<=r;a++){let l=O.doc.line(a);l.length<=o&&n.push(X.range(l.from+s,l.to+o))}}else{let s=Math.min(e.col,t.col),o=Math.max(e.col,t.col);for(let a=i;a<=r;a++){let l=O.doc.line(a),c=Da(l.text,s,O.tabSize,!0);if(c<0)n.push(X.cursor(l.to));else{let h=Da(l.text,o,O.tabSize);n.push(X.range(l.from+c,l.from+h))}}}return n}function tx(O,e){let t=O.coordsAtPos(O.viewport.from);return t?Math.round(Math.abs((t.left-e)/O.defaultCharacterWidth)):-1}function Vf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1),i=O.state.doc.lineAt(t),r=t-i.from,n=r>fl?-1:r==i.length?tx(O,e.clientX):rn(i.text,O.state.tabSize,t-i.from);return{line:i.number,col:n,off:r}}function Ox(O,e){let t=Vf(O,e),i=O.state.selection;return t?{update(r){if(r.docChanged){let n=r.changes.mapPos(r.startState.doc.line(t.line).from),s=r.state.doc.lineAt(n);t={line:s.number,col:t.col,off:Math.min(t.off,s.length)},i=i.map(r.changes)}},get(r,n,s){let o=Vf(O,r);if(!o)return i;let a=ex(O.state,t,o);return a.length?s?X.create(a.concat(i.ranges)):X.create(a):i}}:null}function ix(O){let e=(O==null?void 0:O.eventFilter)||(t=>t.altKey&&t.button==0);return z.mouseSelectionStyle.of((t,i)=>e(i)?Ox(t,i):null)}const rx={Alt:[18,O=>O.altKey],Control:[17,O=>O.ctrlKey],Shift:[16,O=>O.shiftKey],Meta:[91,O=>O.metaKey]},nx={style:"cursor: crosshair"};function sx(O={}){let[e,t]=rx[O.key||"Alt"],i=qe.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventHandlers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[i,z.contentAttributes.of(r=>{var n;return!((n=r.plugin(i))===null||n===void 0)&&n.isDown?nx:null})]}const qn="-10000px";class cp{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(r=>r),this.tooltipViews=this.tooltips.map(i)}update(e){var t;let i=e.state.facet(this.facet),r=i.filter(s=>s);if(i===this.input){for(let s of this.tooltipViews)s.update&&s.update(e);return!1}let n=[];for(let s=0;s{var e,t,i;return{position:j.ios?"absolute":((e=O.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=O.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=O.find(r=>r.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||ox}}}),zf=new WeakMap,hp=qe.fromClass(class{constructor(O){this.view=O,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=O.state.facet(Eo);this.position=e.position,this.parent=e.parent,this.classes=O.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new cp(O,gc,t=>this.createTooltip(t)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),O.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let O of this.manager.tooltipViews)this.intersectionObserver.observe(O.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(O){O.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(O);e&&this.observeIntersection();let t=e||O.geometryChanged,i=O.state.facet(Eo);if(i.position!=this.position){this.position=i.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(O){let e=O.create(this.view);if(e.dom.classList.add("cm-tooltip"),O.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=qn,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var O,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(O=t.destroy)===null||O===void 0||O.call(t);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let O=this.view.dom.getBoundingClientRect();return{editor:O,parent:this.parent?this.container.getBoundingClientRect():O,pos:this.manager.tooltips.map((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(Eo).tooltipSpace(this.view)}}writeMeasure(O){var e;let{editor:t,space:i}=O,r=[];for(let n=0;n=Math.min(t.bottom,i.bottom)||l.rightMath.min(t.right,i.right)+.1){a.style.top=qn;continue}let h=s.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,Q=h?7:0,u=c.right-c.left,$=(e=zf.get(o))!==null&&e!==void 0?e:c.bottom-c.top,d=o.offset||lx,p=this.view.textDirection==We.LTR,P=c.width>i.right-i.left?p?i.left:i.right-c.width:p?Math.min(l.left-(h?14:0)+d.x,i.right-u):Math.max(i.left,l.left-u+(h?14:0)-d.x),y=!!s.above;!s.strictSide&&(y?l.top-(c.bottom-c.top)-d.yi.bottom)&&y==i.bottom-l.bottom>l.top-i.top&&(y=!y);let x=(y?l.top-i.top:i.bottom-l.bottom)-Q;if(x<$&&o.resize!==!1){if(xP&&Z.topb&&(b=y?Z.top-$-2-Q:Z.bottom+Q+2);this.position=="absolute"?(a.style.top=b-O.parent.top+"px",a.style.left=P-O.parent.left+"px"):(a.style.top=b+"px",a.style.left=P+"px"),h&&(h.style.left=`${l.left+(p?d.x:-d.x)-(P+14-7)}px`),o.overlap!==!0&&r.push({left:P,top:b,right:Y,bottom:b+$}),a.classList.toggle("cm-tooltip-above",y),a.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(O.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let O of this.manager.tooltipViews)O.dom.style.top=qn}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),ax=z.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lx={x:0,y:0},gc=_.define({enables:[hp,ax]}),ys=_.define();class Sc{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new cp(e,ys,t=>this.createHostedView(t))}static create(e){return new Sc(e)}createHostedView(e){let t=e.create(this.view);return t.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(t.dom),this.mounted&&t.mount&&t.mount(this.view),t}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}}const cx=gc.compute([ys],O=>{let e=O.facet(ys).filter(t=>t);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.filter(t=>t.end!=null).map(t=>t.end)),create:Sc.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class hx{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ei.bottom||e.xi.right+this.view.defaultCharacterWidth)return;let r=this.view.bidiSpans(this.view.state.doc.lineAt(t)).find(o=>o.from<=t&&o.to>=t),n=r&&r.dir==We.RTL?-1:1,s=this.source(this.view,t,e.x{this.pending==o&&(this.pending=null,a&&this.view.dispatch({effects:this.setHover.of(a)}))},a=>xt(this.view.state,a,"hover tooltip"))}else s&&this.view.dispatch({effects:this.setHover.of(s)})}mousemove(e){var t;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let i=this.active;if(i&&!_f(this.lastMove.target)||this.pending){let{pos:r}=i||this.pending,n=(t=i==null?void 0:i.end)!==null&&t!==void 0?t:r;(r==n?this.view.posAtCoords(this.lastMove)!=r:!fx(this.view,r,n,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!_f(e.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function _f(O){for(let e=O;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function fx(O,e,t,i,r,n){let s=document.createRange(),o=O.domAtPos(e),a=O.domAtPos(t);s.setEnd(a.node,a.offset),s.setStart(o.node,o.offset);let l=s.getClientRects();s.detach();for(let c=0;cys.from(r)});return[i,qe.define(r=>new hx(r,O,i,t,e.hoverTime||300)),cx]}function ux(O,e){let t=O.plugin(hp);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const $x=B.define(),jf=_.define({combine(O){let e,t;for(let i of O)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Er(O,e){let t=O.plugin(fp),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const fp=qe.fromClass(class{constructor(O){this.input=O.state.facet(Ar),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(O));let e=O.state.facet(jf);this.top=new kn(O,!0,e.topContainer),this.bottom=new kn(O,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(O){let e=O.state.facet(jf);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new kn(O.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new kn(O.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=O.state.facet(Ar);if(t!=this.input){let i=t.filter(a=>a),r=[],n=[],s=[],o=[];for(let a of i){let l=this.specs.indexOf(a),c;l<0?(c=a(O.view),o.push(c)):(c=this.panels[l],c.update&&c.update(O)),r.push(c),(c.top?n:s).push(c)}this.specs=i,this.panels=r,this.top.sync(n),this.bottom.sync(s);for(let a of o)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(O)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class kn{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Gf(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Gf(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Gf(O){let e=O.nextSibling;return O.remove(),e}const Ar=_.define({enables:fp});class XO extends fi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}XO.prototype.elementClass="";XO.prototype.toDOM=void 0;XO.prototype.mapMode=Fe.TrackBefore;XO.prototype.startSide=XO.prototype.endSide=-1;XO.prototype.point=!0;const ns=_.define(),dx={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>ce.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},xr=_.define();function px(O){return[Qp(),xr.of(Object.assign(Object.assign({},dx),O))]}const Ql=_.define({combine:O=>O.some(e=>e)});function Qp(O){let e=[mx];return O&&O.fixed===!1&&e.push(Ql.of(!0)),e}const mx=qe.fromClass(class{constructor(O){this.view=O,this.prevViewport=O.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=O.state.facet(xr).map(e=>new If(O,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!O.state.facet(Ql),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),O.scrollDOM.insertBefore(this.dom,O.contentDOM)}update(O){if(this.updateGutters(O)){let e=this.prevViewport,t=O.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}O.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Ql)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=O.view.viewport}syncGutters(O){let e=this.dom.nextSibling;O&&this.dom.remove();let t=ce.iter(this.view.state.facet(ns),this.view.viewport.from),i=[],r=this.gutters.map(n=>new Px(n,this.view.viewport,-this.view.documentPadding.top));for(let n of this.view.viewportLineBlocks){let s;if(Array.isArray(n.type)){for(let o of n.type)if(o.type==$e.Text){s=o;break}}else s=n.type==$e.Text?n:void 0;if(s){i.length&&(i=[]),up(t,i,n.from);for(let o of r)o.line(this.view,s,i)}}for(let n of r)n.finish();O&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(O){let e=O.startState.facet(xr),t=O.state.facet(xr),i=O.docChanged||O.heightChanged||O.viewportChanged||!ce.eq(O.startState.facet(ns),O.state.facet(ns),O.view.viewport.from,O.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(O)&&(i=!0);else{i=!0;let r=[];for(let n of t){let s=e.indexOf(n);s<0?r.push(new If(this.view,n)):(this.gutters[s].update(O),r.push(this.gutters[s]))}for(let n of this.gutters)n.dom.remove(),r.indexOf(n)<0&&n.destroy();for(let n of r)this.dom.appendChild(n.dom);this.gutters=r}return i}destroy(){for(let O of this.gutters)O.destroy();this.dom.remove()}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return!t||t.gutters.length==0||!t.fixed?null:e.textDirection==We.LTR?{left:t.dom.offsetWidth}:{right:t.dom.offsetWidth}})});function Cf(O){return Array.isArray(O)?O:[O]}function up(O,e,t){for(;O.value&&O.from<=t;)O.from==t&&e.push(O.value),O.next()}class Px{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=ce.iter(e.markers,t.from)}line(e,t,i){let r=[];up(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let s=this.gutter;if(r.length==0&&!s.config.renderEmptyElements)return;let o=t.top-this.height;if(this.i==s.elements.length){let a=new $p(e,t.height,o,r);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,t.height,o,r);this.height=t.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class If{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,r=>{let n=r.target,s;if(n!=this.dom&&this.dom.contains(n)){for(;n.parentNode!=this.dom;)n=n.parentNode;let a=n.getBoundingClientRect();s=(a.top+a.bottom)/2}else s=r.clientY;let o=e.lineBlockAtHeight(s-e.documentTop);t.domEventHandlers[i](e,o,r)&&r.preventDefault()});this.markers=Cf(t.markers(e)),t.initialSpacer&&(this.spacer=new $p(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Cf(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let i=e.view.viewport;return!ce.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class $p{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.dom.style.height=(this.height=t)+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),gx(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let i="cm-gutterElement",r=this.dom.firstChild;for(let n=0,s=0;;){let o=s,a=nn(o,a,l)||s(o,a,l):s}return i}})}});class Ao extends XO{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Do(O,e){return O.state.facet(xi).formatNumber(e,O.state)}const Xx=xr.compute([xi],O=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Sx)},lineMarker(e,t,i){return i.some(r=>r.toDOM)?null:new Ao(Do(e,e.state.doc.lineAt(t.from).number))},lineMarkerChange:e=>e.startState.facet(xi)!=e.state.facet(xi),initialSpacer(e){return new Ao(Do(e,Ef(e.state.doc.lines)))},updateSpacer(e,t){let i=Do(t.view,Ef(t.view.state.doc.lines));return i==e.number?e:new Ao(i)},domEventHandlers:O.facet(xi).domEventHandlers}));function yx(O={}){return[xi.of(O),Qp(),Xx]}function Ef(O){let e=9;for(;e{let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.head).from;r>t&&(t=r,e.push(xx.range(r)))}return ce.of(e)});function wx(){return bx}const dp=1024;let Wx=0;class Tt{constructor(e,t){this.from=e,this.to=t}}class M{constructor(e={}){this.id=Wx++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=je.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}M.closedBy=new M({deserialize:O=>O.split(" ")});M.openedBy=new M({deserialize:O=>O.split(" ")});M.group=new M({deserialize:O=>O.split(" ")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});class Tx{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}}const Yx=Object.create(null);class je{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Yx,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new je(e.name||"",t,e.id,i);if(e.props){for(let n of e.props)if(Array.isArray(n)||(n=n(r)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(M.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(M.group),n=-1;n<(r?r.length:0);n++){let s=t[n<0?i.name:r[n]];if(s)return s}}}}je.none=new je("",Object.create(null),0,8);class on{constructor(e){this.types=e;for(let t=0;t=r&&(s.type.isAnonymous||t(s)!==!1)){if(s.firstChild())continue;o=!0}for(;o&&i&&!s.type.isAnonymous&&i(s),!s.nextSibling();){if(!s.parent())return;o=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:xc(je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new he(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new he(je.none,t,i,r)))}static build(e){return qx(e)}}he.empty=new he(je.none,[],[],0);class Xc{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Xc(this.buffer,this.index)}}class $i{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return je.none}toString(){let e=[];for(let t=0;t0));a=s[a+3]);return o}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),s=0;for(let o=e,a=0;o=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function mp(O,e){let t=O.childBefore(e);for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(O=t,t=i.prevSibling):t=i}return O}function Ei(O,e,t,i){for(var r;O.from==O.to||(t<1?O.from>=e:O.from>e)||(t>-1?O.to<=e:O.to0?o.length:-1;e!=l;e+=t){let c=o[e],h=a[e]+s.from;if(pp(r,i,h,h+c.length)){if(c instanceof $i){if(n&Pe.ExcludeBuffers)continue;let Q=c.findChild(0,c.buffer.length,t,i-h,r);if(Q>-1)return new iO(new vx(s,c,e,h),null,Q)}else if(n&Pe.IncludeAnonymous||!c.type.isAnonymous||yc(c)){let Q;if(!(n&Pe.IgnoreMounts)&&c.props&&(Q=c.prop(M.mounted))&&!Q.overlay)return new qt(Q.tree,h,e,s);let u=new qt(c,h,e,s);return n&Pe.IncludeAnonymous||!u.type.isAnonymous?u:u.nextChild(t<0?c.children.length-1:0,t,i,r)}}}if(n&Pe.IncludeAnonymous||!s.type.isAnonymous||(s.index>=0?e=s.index+t:e=t<0?-1:s._parent._tree.children.length,s=s._parent,!s))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&Pe.IgnoreOverlays)&&(r=this._tree.prop(M.mounted))&&r.overlay){let n=e-this.from;for(let{from:s,to:o}of r.overlay)if((t>0?s<=n:s=n:o>n))return new qt(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Dr(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return bs(this,e)}}function xs(O,e,t,i){let r=O.cursor(),n=[];if(!r.firstChild())return n;if(t!=null){for(;!r.type.is(t);)if(!r.nextSibling())return n}for(;;){if(i!=null&&r.type.is(i))return n;if(r.type.is(e)&&n.push(r.node),!r.nextSibling())return i==null?n:[]}}function bs(O,e,t=e.length-1){for(let i=O.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class vx{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class iO{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new iO(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&Pe.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new iO(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new iO(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new iO(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Dr(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let s=i.buffer[this.index+1];e.push(i.slice(r,n,s)),t.push(0)}return new he(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}get node(){return this}matchContext(e){return bs(this,e)}}class Dr{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof qt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=i+r.buffer[e+1],this.to=i+r.buffer[e+2],!0}yield(e){return e?e instanceof qt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:r}=this.buffer,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,i);return n<0?!1:(this.stack.push(this.index),this.yieldBuf(n))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&Pe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let n=t+e,s=e<0?-1:i._tree.children.length;n!=s;n+=e){let o=i._tree.children[n];if(this.mode&Pe.IncludeAnonymous||o instanceof $i||!o.type.isAnonymous||yc(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==r){if(r==this.index)return s;t=s,i=n+1;break e}r=this.stack[--n]}}for(let r=i;r=0;n--){if(n<0)return bs(this.node,e,r);let s=i[t.buffer[this.stack[n]]];if(!s.isAnonymous){if(e[r]&&e[r]!=s.name)return!1;r--}}return!0}}function yc(O){return O.children.some(e=>e instanceof $i||!e.type.isAnonymous||yc(e))}function qx(O){var e;let{buffer:t,nodeSet:i,maxBufferLength:r=dp,reused:n=[],minRepeatType:s=i.types.length}=O,o=Array.isArray(t)?new Xc(t,t.length):t,a=i.types,l=0,c=0;function h(b,Y,Z,E,Oe){let{id:H,start:N,end:oe,size:Xe}=o,Te=c;for(;Xe<0;)if(o.next(),Xe==-1){let F=n[H];Z.push(F),E.push(N-b);return}else if(Xe==-3){l=H;return}else if(Xe==-4){c=H;return}else throw new RangeError(`Unrecognized record size: ${Xe}`);let Ge=a[H],ke,ne,ie=N-b;if(oe-N<=r&&(ne=d(o.pos-Y,Oe))){let F=new Uint16Array(ne.size-ne.skip),fe=o.pos-ne.size,be=F.length;for(;o.pos>fe;)be=p(ne.start,F,be);ke=new $i(F,oe-ne.start,i),ie=ne.start-b}else{let F=o.pos-Xe;o.next();let fe=[],be=[],nt=H>=s?H:-1,Me=0,LO=oe;for(;o.pos>F;)nt>=0&&o.id==nt&&o.size>=0?(o.end<=LO-r&&(u(fe,be,N,Me,o.end,LO,nt,Te),Me=fe.length,LO=o.end),o.next()):h(N,F,fe,be,nt);if(nt>=0&&Me>0&&Me-1&&Me>0){let Qn=Q(Ge);ke=xc(Ge,fe,be,0,fe.length,0,oe-N,Qn,Qn)}else ke=$(Ge,fe,be,oe-N,Te-oe)}Z.push(ke),E.push(ie)}function Q(b){return(Y,Z,E)=>{let Oe=0,H=Y.length-1,N,oe;if(H>=0&&(N=Y[H])instanceof he){if(!H&&N.type==b&&N.length==E)return N;(oe=N.prop(M.lookAhead))&&(Oe=Z[H]+N.length+oe)}return $(b,Y,Z,E,Oe)}}function u(b,Y,Z,E,Oe,H,N,oe){let Xe=[],Te=[];for(;b.length>E;)Xe.push(b.pop()),Te.push(Y.pop()+Z-Oe);b.push($(i.types[N],Xe,Te,H-Oe,oe-H)),Y.push(Oe-Z)}function $(b,Y,Z,E,Oe=0,H){if(l){let N=[M.contextHash,l];H=H?[N].concat(H):[N]}if(Oe>25){let N=[M.lookAhead,Oe];H=H?[N].concat(H):[N]}return new he(b,Y,Z,E,H)}function d(b,Y){let Z=o.fork(),E=0,Oe=0,H=0,N=Z.end-r,oe={size:0,start:0,skip:0};e:for(let Xe=Z.pos-b;Z.pos>Xe;){let Te=Z.size;if(Z.id==Y&&Te>=0){oe.size=E,oe.start=Oe,oe.skip=H,H+=4,E+=4,Z.next();continue}let Ge=Z.pos-Te;if(Te<0||Ge=s?4:0,ne=Z.start;for(Z.next();Z.pos>Ge;){if(Z.size<0)if(Z.size==-3)ke+=4;else break e;else Z.id>=s&&(ke+=4);Z.next()}Oe=ne,E+=Te,H+=ke}return(Y<0||E==b)&&(oe.size=E,oe.start=Oe,oe.skip=H),oe.size>4?oe:void 0}function p(b,Y,Z){let{id:E,start:Oe,end:H,size:N}=o;if(o.next(),N>=0&&E4){let Xe=o.pos-(N-4);for(;o.pos>Xe;)Z=p(b,Y,Z)}Y[--Z]=oe,Y[--Z]=H-b,Y[--Z]=Oe-b,Y[--Z]=E}else N==-3?l=E:N==-4&&(c=E);return Z}let P=[],y=[];for(;o.pos>0;)h(O.start||0,O.bufferStart||0,P,y,-1);let x=(e=O.length)!==null&&e!==void 0?e:P.length?y[0]+P[0].length:0;return new he(a[O.topID],P.reverse(),y.reverse(),x)}const Df=new WeakMap;function ss(O,e){if(!O.isAnonymous||e instanceof $i||e.type!=O)return 1;let t=Df.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=O||!(i instanceof he)){t=1;break}t+=ss(O,i)}Df.set(e,t)}return t}function xc(O,e,t,i,r,n,s,o,a){let l=0;for(let $=i;$=c)break;Z+=E}if(x==b+1){if(Z>c){let E=$[b];u(E.children,E.positions,0,E.children.length,d[b]+y);continue}h.push($[b])}else{let E=d[x-1]+$[x-1].length-Y;h.push(xc(O,$,d,b,x,Y,E,null,a))}Q.push(Y+y-n)}}return u(e,t,i,r,0),(o||a)(h,Q,s)}class bc{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof iO?this.setBuffer(e.context.buffer,e.index,t):e instanceof qt&&this.map.set(e.tree,t)}get(e){return e instanceof iO?this.getBuffer(e.context.buffer,e.index):e instanceof qt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class gO{constructor(e,t,i,r,n=!1,s=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(s?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let r=[new gO(0,e.length,e,0,!1,i)];for(let n of t)n.to>e.length&&r.push(n);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,s=e.length?e[0]:null;for(let o=0,a=0,l=0;;o++){let c=o=i)for(;s&&s.from=Q.from||h<=Q.to||l){let u=Math.max(Q.from,a)-l,$=Math.min(Q.to,h)-l;Q=u>=$?null:new gO(u,$,Q.tree,Q.offset+l,o>0,!!c)}if(Q&&r.push(Q),s.to>h)break;s=nnew Tt(r.from,r.to)):[new Tt(0,0)]:[new Tt(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let n=r.advance();if(n)return n}}}class kx{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function bO(O){return(e,t,i,r)=>new Rx(e,O,t,i,r)}class Mf{constructor(e,t,i,r,n){this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.ranges=n}}class Zx{constructor(e,t,i,r,n,s,o){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=s,this.prev=o,this.depth=0,this.ranges=[]}}const ul=new M({perNode:!0});class Rx{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new he(i.type,i.children,i.positions,i.length,i.propValues.concat([[ul,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[M.mounted.id]=new Tx(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;tc.frag.from<=r.from&&c.frag.to>=r.to&&c.mount.overlay);if(l)for(let c of l.mount.overlay){let h=c.from+l.pos,Q=c.to+l.pos;h>=r.from&&Q<=r.to&&!t.ranges.some(u=>u.fromh)&&t.ranges.push({from:h,to:Q})}}o=!1}else if(i&&(s=Ux(i.ranges,r.from,r.to)))o=s!=2;else if(!r.type.isAnonymous&&r.fromnew Tt(h.from-r.from,h.to-r.from)):null,r.tree,c)),n.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):o=!1}}else t&&(a=t.predicate(r))&&(a===!0&&(a=new Tt(r.from,r.to)),a.fromnew Tt(c.from-t.start,c.to-t.start)),t.target,l)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Ux(O,e,t){for(let i of O){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function Nf(O,e,t,i,r,n){if(e=e.to);i++);let s=r.children[i],o=s.buffer;function a(l,c,h,Q,u){let $=l;for(;o[$+2]+n<=e.from;)$=o[$+3];let d=[],p=[];Nf(s,l,$,d,p,Q);let P=o[$+1],y=o[$+2],x=P+n==e.from&&y+n==e.to&&o[$]==e.type.id;return d.push(x?e.toTree():a($+4,o[$+3],s.set.types[o[$]],P,y-P)),p.push(P-Q),Nf(s,o[$+3],c,d,p,Q),new he(h,d,p,u)}r.children[i]=a(0,o.length,je.none,0,s.length);for(let l=0;l<=t;l++)O.childAfter(e.from)}class Lf{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(Pe.IncludeAnonymous|Pe.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,Pe.IgnoreOverlays|Pe.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof he)t=t.children[0];else break}return!1}}let zx=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(ul))!==null&&t!==void 0?t:i.to,this.inner=new Lf(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(ul))!==null&&e!==void 0?e:t.to,this.inner=new Lf(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let n=this.inner.cursor.node;n;n=n.parent){let s=(i=n.tree)===null||i===void 0?void 0:i.prop(M.mounted);if(s&&s.parser==t)for(let o=this.fragI;o=n.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:n.from-a.offset,mount:s})}}}return r}};function Bf(O,e){let t=null,i=e;for(let r=1,n=0;r=o)break;a.to<=s||(t||(i=t=e.slice()),a.fromo&&t.splice(n+1,0,new Tt(o,a.to))):a.to>o?t[n--]=new Tt(o,a.to):t.splice(n--,1))}}return i}function _x(O,e,t,i){let r=0,n=0,s=!1,o=!1,a=-1e9,l=[];for(;;){let c=r==O.length?1e9:s?O[r].to:O[r].from,h=n==e.length?1e9:o?e[n].to:e[n].from;if(s!=o){let Q=Math.max(a,t),u=Math.min(c,h,i);Qnew Tt(Q.from+i,Q.to+i)),h=_x(e,c,a,l);for(let Q=0,u=a;;Q++){let $=Q==h.length,d=$?l:h[Q].from;if(d>u&&t.push(new gO(u,d,r.tree,-s,n.from>=u||n.openStart,n.to<=d||n.openEnd)),$)break;u=h[Q].to}}else t.push(new gO(a,l,r.tree,-s,n.from>=s||n.openStart,n.to<=o||n.openEnd))}return t}let jx=0;class Gt{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=jx++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new Gt([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new ws;return t=>t.modified.indexOf(e)>-1?t:ws.get(t.base||t,t.modified.concat(e).sort((i,r)=>i.id-r.id))}}let Gx=0;class ws{constructor(){this.instances=[],this.id=Gx++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(o=>o.base==e&&Cx(t,o.modified));if(i)return i;let r=[],n=new Gt(r,e,t);for(let o of t)o.instances.push(n);let s=Ix(t);for(let o of e.set)if(!o.modified.length)for(let a of s)r.push(ws.get(o,a));return n}}function Cx(O,e){return O.length==e.length&&O.every((t,i)=>t==e[i])}function Ix(O){let e=[[]];for(let t=0;ti.length-t.length)}function De(O){let e=Object.create(null);for(let t in O){let i=O[t];Array.isArray(i)||(i=[i]);for(let r of t.split(" "))if(r){let n=[],s=2,o=r;for(let h=0;;){if(o=="..."&&h>0&&h+3==r.length){s=1;break}let Q=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!Q)throw new RangeError("Invalid path: "+r);if(n.push(Q[0]=="*"?"":Q[0][0]=='"'?JSON.parse(Q[0]):Q[0]),h+=Q[0].length,h==r.length)break;let u=r[h++];if(h==r.length&&u=="!"){s=0;break}if(u!="/")throw new RangeError("Invalid path: "+r);o=r.slice(h)}let a=n.length-1,l=n[a];if(!l)throw new RangeError("Invalid path: "+r);let c=new Ws(i,s,a>0?n.slice(0,a):null);e[l]=c.sort(e[l])}}return Pp.add(e)}const Pp=new M;class Ws{constructor(e,t,i,r){this.tags=e,this.mode=t,this.context=i,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let s=r;for(let o of n)for(let a of o.set){let l=t[a.id];if(l){s=s?s+" "+l:l;break}}return s},scope:i}}function Ex(O,e){let t=null;for(let i of O){let r=i.style(e);r&&(t=t?t+" "+r:r)}return t}function Ax(O,e,t,i=0,r=O.length){let n=new Dx(i,Array.isArray(e)?e:[e],t);n.highlightRange(O.cursor(),i,r,"",n.highlighters),n.flush(r)}class Dx{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,r,n){let{type:s,from:o,to:a}=e;if(o>=i||a<=t)return;s.isTop&&(n=this.highlighters.filter(u=>!u.scope||u.scope(s)));let l=r,c=Mx(e)||Ws.empty,h=Ex(n,c.tags);if(h&&(l&&(l+=" "),l+=h,c.mode==1&&(r+=(r?" ":"")+h)),this.startSpan(e.from,l),c.opaque)return;let Q=e.tree&&e.tree.prop(M.mounted);if(Q&&Q.overlay){let u=e.node.enter(Q.overlay[0].from+o,1),$=this.highlighters.filter(p=>!p.scope||p.scope(Q.tree.type)),d=e.firstChild();for(let p=0,P=o;;p++){let y=p=x||!e.nextSibling())););if(!y||x>i)break;P=y.to+o,P>t&&(this.highlightRange(u.cursor(),Math.max(t,y.from+o),Math.min(i,P),r,$),this.startSpan(P,l))}d&&e.parent()}else if(e.firstChild()){do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,r,n),this.startSpan(Math.min(i,e.to),l)}while(e.nextSibling());e.parent()}}}function Mx(O){let e=O.type.prop(Pp);for(;e&&e.context&&!O.matchContext(e.context);)e=e.next;return e||null}const R=Gt.define,Rn=R(),YO=R(),Ff=R(YO),Kf=R(YO),vO=R(),Un=R(vO),Mo=R(vO),Jt=R(),FO=R(Jt),Ft=R(),Kt=R(),$l=R(),nr=R($l),Vn=R(),f={comment:Rn,lineComment:R(Rn),blockComment:R(Rn),docComment:R(Rn),name:YO,variableName:R(YO),typeName:Ff,tagName:R(Ff),propertyName:Kf,attributeName:R(Kf),className:R(YO),labelName:R(YO),namespace:R(YO),macroName:R(YO),literal:vO,string:Un,docString:R(Un),character:R(Un),attributeValue:R(Un),number:Mo,integer:R(Mo),float:R(Mo),bool:R(vO),regexp:R(vO),escape:R(vO),color:R(vO),url:R(vO),keyword:Ft,self:R(Ft),null:R(Ft),atom:R(Ft),unit:R(Ft),modifier:R(Ft),operatorKeyword:R(Ft),controlKeyword:R(Ft),definitionKeyword:R(Ft),moduleKeyword:R(Ft),operator:Kt,derefOperator:R(Kt),arithmeticOperator:R(Kt),logicOperator:R(Kt),bitwiseOperator:R(Kt),compareOperator:R(Kt),updateOperator:R(Kt),definitionOperator:R(Kt),typeOperator:R(Kt),controlOperator:R(Kt),punctuation:$l,separator:R($l),bracket:nr,angleBracket:R(nr),squareBracket:R(nr),paren:R(nr),brace:R(nr),content:Jt,heading:FO,heading1:R(FO),heading2:R(FO),heading3:R(FO),heading4:R(FO),heading5:R(FO),heading6:R(FO),contentSeparator:R(Jt),list:R(Jt),quote:R(Jt),emphasis:R(Jt),strong:R(Jt),link:R(Jt),monospace:R(Jt),strikethrough:R(Jt),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:Vn,documentMeta:R(Vn),annotation:R(Vn),processingInstruction:R(Vn),definition:Gt.defineModifier(),constant:Gt.defineModifier(),function:Gt.defineModifier(),standard:Gt.defineModifier(),local:Gt.defineModifier(),special:Gt.defineModifier()};gp([{tag:f.link,class:"tok-link"},{tag:f.heading,class:"tok-heading"},{tag:f.emphasis,class:"tok-emphasis"},{tag:f.strong,class:"tok-strong"},{tag:f.keyword,class:"tok-keyword"},{tag:f.atom,class:"tok-atom"},{tag:f.bool,class:"tok-bool"},{tag:f.url,class:"tok-url"},{tag:f.labelName,class:"tok-labelName"},{tag:f.inserted,class:"tok-inserted"},{tag:f.deleted,class:"tok-deleted"},{tag:f.literal,class:"tok-literal"},{tag:f.string,class:"tok-string"},{tag:f.number,class:"tok-number"},{tag:[f.regexp,f.escape,f.special(f.string)],class:"tok-string2"},{tag:f.variableName,class:"tok-variableName"},{tag:f.local(f.variableName),class:"tok-variableName tok-local"},{tag:f.definition(f.variableName),class:"tok-variableName tok-definition"},{tag:f.special(f.variableName),class:"tok-variableName2"},{tag:f.definition(f.propertyName),class:"tok-propertyName tok-definition"},{tag:f.typeName,class:"tok-typeName"},{tag:f.namespace,class:"tok-namespace"},{tag:f.className,class:"tok-className"},{tag:f.macroName,class:"tok-macroName"},{tag:f.propertyName,class:"tok-propertyName"},{tag:f.operator,class:"tok-operator"},{tag:f.comment,class:"tok-comment"},{tag:f.meta,class:"tok-meta"},{tag:f.invalid,class:"tok-invalid"},{tag:f.punctuation,class:"tok-punctuation"}]);var No;const oi=new M;function Wc(O){return _.define({combine:O?e=>e.concat(O):void 0})}const Tc=new M;class Yt{constructor(e,t,i=[],r=""){this.data=e,this.name=r,te.prototype.hasOwnProperty("tree")||Object.defineProperty(te.prototype,"tree",{get(){return ue(this)}}),this.parser=t,this.extension=[DO.of(this),te.languageData.of((n,s,o)=>{let a=Jf(n,s,o),l=a.type.prop(oi);if(!l)return[];let c=n.facet(l),h=a.type.prop(Tc);if(h){let Q=a.resolve(s-a.from,o);for(let u of h)if(u.test(Q,n)){let $=n.facet(u.facet);return u.type=="replace"?$:$.concat(c)}}return c})].concat(i)}isActiveAt(e,t,i=-1){return Jf(e,t,i).type.prop(oi)==this.data}findRegions(e){let t=e.facet(DO);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],r=(n,s)=>{if(n.prop(oi)==this.data){i.push({from:s,to:s+n.length});return}let o=n.prop(M.mounted);if(o){if(o.tree.prop(oi)==this.data){if(o.overlay)for(let a of o.overlay)i.push({from:a.from+s,to:a.to+s});else i.push({from:s,to:s+n.length});return}else if(o.overlay){let a=i.length;if(r(o.tree,o.overlay[0].from+s),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ie(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ue(O){let e=O.field(Yt.state,!1);return e?e.tree:he.empty}class Nx{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let sr=null;class Mr{constructor(e,t,i=[],r,n,s,o,a){this.parser=e,this.state=t,this.fragments=i,this.tree=r,this.treeLen=n,this.viewport=s,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new Mr(e,t,[],he.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Nx(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=he.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(gO.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=sr;sr=this;try{return e()}finally{sr=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=eQ(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:r,treeLen:n,viewport:s,skipped:o}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((l,c,h,Q)=>a.push({fromA:l,toA:c,fromB:h,toB:Q})),i=gO.applyChanges(i,a),r=he.empty,n=0,s={from:e.mapPos(s.from,-1),to:e.mapPos(s.to,1)},this.skipped.length){o=[];for(let l of this.skipped){let c=e.mapPos(l.from,1),h=e.mapPos(l.to,-1);ce.from&&(this.fragments=eQ(this.fragments,r,n),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends wc{createParse(t,i,r){let n=r[0].from,s=r[r.length-1].to;return{parsedPos:n,advance(){let a=sr;if(a){for(let l of r)a.tempSkipped.push(l);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=s,new he(je.none,[],[],s-n)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return sr}}function eQ(O,e,t){return gO.applyChanges(O,[{fromA:e,toA:t,fromB:e,toB:t}])}class Ai{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new Ai(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=Mr.create(e.facet(DO).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new Ai(i)}}Yt.state=Ae.define({create:Ai.init,update(O,e){for(let t of e.effects)if(t.is(Yt.setState))return t.value;return e.startState.facet(DO)!=e.state.facet(DO)?Ai.init(e.state):O.apply(e)}});let Sp=O=>{let e=setTimeout(()=>O(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Sp=O=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(O,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Lo=typeof navigator<"u"&&(!((No=navigator.scheduling)===null||No===void 0)&&No.isInputPending)?()=>navigator.scheduling.isInputPending():null,Lx=qe.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Yt.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Yt.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Sp(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=n.context.work(()=>Lo&&Lo()||Date.now()>s,r+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(n.context.takeTree(),this.view.dispatch({effects:Yt.setState.of(new Ai(n.context))})),this.chunkBudget>0&&!(a&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(n.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>xt(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),DO=_.define({combine(O){return O.length?O[0]:null},enables:O=>[Yt.state,Lx,z.contentAttributes.compute([O],e=>{let t=e.facet(O);return t&&t.name?{"data-language":t.name}:{}})]});class Je{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class Ts{constructor(e,t,i,r,n,s=void 0){this.name=e,this.alias=t,this.extensions=i,this.filename=r,this.loadFunc=n,this.support=s,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:i}=e;if(!t){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(i)}return new Ts(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,i)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let i=/\.([^.]+)$/.exec(t);if(i){for(let r of e)if(r.extensions.indexOf(i[1])>-1)return r}return null}static matchLanguageName(e,t,i=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(n=>n==t))return r;if(i)for(let r of e)for(let n of r.alias){let s=t.indexOf(n);if(s>-1&&(n.length>2||!/\w/.test(t[s-1])&&!/\w/.test(t[s+n.length])))return r}return null}}const Bx=_.define(),an=_.define({combine:O=>{if(!O.length)return" ";let e=O[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(O[0]));return e}});function Ys(O){let e=O.facet(an);return e.charCodeAt(0)==9?O.tabSize*e.length:e.length}function Nr(O,e){let t="",i=O.tabSize,r=O.facet(an)[0];if(r==" "){for(;e>=i;)t+=" ",e-=i;r=" "}for(let n=0;n=i.from&&r<=i.to?n&&r==e?{text:"",from:e}:(t<0?r-1&&(n+=s-this.countColumn(i,i.search(/\S|$/))),n}countColumn(e,t=e.length){return rn(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:r}=this.lineAt(e,t),n=this.options.overrideIndentation;if(n){let s=n(r);if(s>-1)return s}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const pt=new M;function Hx(O,e,t){return Xp(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,O)}function Fx(O){return O.pos==O.options.simulateBreak&&O.options.simulateDoubleBreak}function Kx(O){let e=O.type.prop(pt);if(e)return e;let t=O.firstChild,i;if(t&&(i=t.type.prop(M.closedBy))){let r=O.lastChild,n=r&&i.indexOf(r.name)>-1;return s=>yp(s,!0,1,void 0,n&&!Fx(s)?r.from:void 0)}return O.parent==null?Jx:null}function Xp(O,e,t){for(;O;O=O.parent){let i=Kx(O);if(i)return i(vc.create(t,e,O))}return null}function Jx(){return 0}class vc extends lo{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.node=i}static create(e,t,i){return new vc(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let e=this.state.doc.lineAt(this.node.from);for(;;){let t=this.node.resolve(e.from);for(;t.parent&&t.parent.from==t.from;)t=t.parent;if(eb(t,this.node))break;e=this.state.doc.lineAt(t.from)}return this.lineIndent(e.from)}continue(){let e=this.node.parent;return e?Xp(e,this.pos,this.base):0}}function eb(O,e){for(let t=e;t;t=t.parent)if(O==t)return!0;return!1}function tb(O){let e=O.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let r=O.options.simulateBreak,n=O.state.doc.lineAt(t.from),s=r==null||r<=n.from?n.to:Math.min(n.to,r);for(let o=t.to;;){let a=e.childAfter(o);if(!a||a==i)return null;if(!a.type.isSkipped)return a.fromyp(i,e,t,O)}function yp(O,e,t,i,r){let n=O.textAfter,s=n.match(/^\s*/)[0].length,o=i&&n.slice(s,s+i.length)==i||r==O.pos+s,a=e?tb(O):null;return a?o?O.column(a.from):O.column(a.to):O.baseIndent+(o?0:O.unit*t)}const qc=O=>O.baseIndent;function Ce({except:O,units:e=1}={}){return t=>{let i=O&&O.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const Ob=200;function ib(){return te.transactionFilter.of(O=>{if(!O.docChanged||!O.isUserEvent("input.type")&&!O.isUserEvent("input.complete"))return O;let e=O.startState.languageDataAt("indentOnInput",O.startState.selection.main.head);if(!e.length)return O;let t=O.newDoc,{head:i}=O.newSelection.main,r=t.lineAt(i);if(i>r.from+Ob)return O;let n=t.sliceString(r.from,i);if(!e.some(l=>l.test(n)))return O;let{state:s}=O,o=-1,a=[];for(let{head:l}of s.selection.ranges){let c=s.doc.lineAt(l);if(c.from==o)continue;o=c.from;let h=Yc(s,c.from);if(h==null)continue;let Q=/^\s*/.exec(c.text)[0],u=Nr(s,h);Q!=u&&a.push({from:c.from,to:c.from+Q.length,insert:u})}return a.length?[O,{changes:a,sequential:!0}]:O})}const xp=_.define(),ft=new M;function fO(O){let e=O.firstChild,t=O.lastChild;return e&&e.tot)continue;if(n&&s.from=e&&a.to>t&&(n=a)}}return n}function nb(O){let e=O.lastChild;return e&&e.to==O.to&&e.type.isError}function vs(O,e,t){for(let i of O.facet(xp)){let r=i(O,e,t);if(r)return r}return rb(O,e,t)}function bp(O,e){let t=e.mapPos(O.from,1),i=e.mapPos(O.to,-1);return t>=i?void 0:{from:t,to:i}}const co=B.define({map:bp}),ln=B.define({map:bp});function wp(O){let e=[];for(let{head:t}of O.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(O.lineBlockAt(t));return e}const ui=Ae.define({create(){return I.none},update(O,e){O=O.map(e.changes);for(let t of e.effects)t.is(co)&&!sb(O,t.value.from,t.value.to)?O=O.update({add:[tQ.range(t.value.from,t.value.to)]}):t.is(ln)&&(O=O.update({filter:(i,r)=>t.value.from!=i||t.value.to!=r,filterFrom:t.value.from,filterTo:t.value.to}));if(e.selection){let t=!1,{head:i}=e.selection.main;O.between(i,i,(r,n)=>{ri&&(t=!0)}),t&&(O=O.update({filterFrom:i,filterTo:i,filter:(r,n)=>n<=i||r>=i}))}return O},provide:O=>z.decorations.from(O),toJSON(O,e){let t=[];return O.between(0,e.doc.length,(i,r)=>{t.push(i,r)}),t},fromJSON(O){if(!Array.isArray(O)||O.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{(!r||r.from>n)&&(r={from:n,to:s})}),r}function sb(O,e,t){let i=!1;return O.between(e,e,(r,n)=>{r==e&&n==t&&(i=!0)}),i}function Wp(O,e){return O.field(ui,!1)?e:e.concat(B.appendConfig.of(vp()))}const ob=O=>{for(let e of wp(O)){let t=vs(O.state,e.from,e.to);if(t)return O.dispatch({effects:Wp(O.state,[co.of(t),Tp(O,t)])}),!0}return!1},ab=O=>{if(!O.state.field(ui,!1))return!1;let e=[];for(let t of wp(O)){let i=qs(O.state,t.from,t.to);i&&e.push(ln.of(i),Tp(O,i,!1))}return e.length&&O.dispatch({effects:e}),e.length>0};function Tp(O,e,t=!0){let i=O.state.doc.lineAt(e.from).number,r=O.state.doc.lineAt(e.to).number;return z.announce.of(`${O.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${O.state.phrase("to")} ${r}.`)}const lb=O=>{let{state:e}=O,t=[];for(let i=0;i{let e=O.state.field(ui,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,O.state.doc.length,(i,r)=>{t.push(ln.of({from:i,to:r}))}),O.dispatch({effects:t}),!0},hb=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:ob},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:ab},{key:"Ctrl-Alt-[",run:lb},{key:"Ctrl-Alt-]",run:cb}],fb={placeholderDOM:null,placeholderText:"…"},Yp=_.define({combine(O){return cO(O,fb)}});function vp(O){let e=[ui,$b];return O&&e.push(Yp.of(O)),e}const tQ=I.replace({widget:new class extends hO{toDOM(O){let{state:e}=O,t=e.facet(Yp),i=n=>{let s=O.lineBlockAt(O.posAtDOM(n.target)),o=qs(O.state,s.from,s.to);o&&O.dispatch({effects:ln.of(o)}),n.preventDefault()};if(t.placeholderDOM)return t.placeholderDOM(O,i);let r=document.createElement("span");return r.textContent=t.placeholderText,r.setAttribute("aria-label",e.phrase("folded code")),r.title=e.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=i,r}}}),Qb={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Bo extends XO{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function ub(O={}){let e=Object.assign(Object.assign({},Qb),O),t=new Bo(e,!0),i=new Bo(e,!1),r=qe.fromClass(class{constructor(s){this.from=s.viewport.from,this.markers=this.buildMarkers(s)}update(s){(s.docChanged||s.viewportChanged||s.startState.facet(DO)!=s.state.facet(DO)||s.startState.field(ui,!1)!=s.state.field(ui,!1)||ue(s.startState)!=ue(s.state)||e.foldingChanged(s))&&(this.markers=this.buildMarkers(s.view))}buildMarkers(s){let o=new CO;for(let a of s.viewportLineBlocks){let l=qs(s.state,a.from,a.to)?i:vs(s.state,a.from,a.to)?t:null;l&&o.add(a.from,a.from,l)}return o.finish()}}),{domEventHandlers:n}=e;return[r,px({class:"cm-foldGutter",markers(s){var o;return((o=s.plugin(r))===null||o===void 0?void 0:o.markers)||ce.empty},initialSpacer(){return new Bo(e,!1)},domEventHandlers:Object.assign(Object.assign({},n),{click:(s,o,a)=>{if(n.click&&n.click(s,o,a))return!0;let l=qs(s.state,o.from,o.to);if(l)return s.dispatch({effects:ln.of(l)}),!0;let c=vs(s.state,o.from,o.to);return c?(s.dispatch({effects:co.of(c)}),!0):!1}})}),vp()]}const $b=z.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class cn{constructor(e,t){this.specs=e;let i;function r(o){let a=IO.newName();return(i||(i=Object.create(null)))["."+a]=o,a}const n=typeof t.all=="string"?t.all:t.all?r(t.all):void 0,s=t.scope;this.scope=s instanceof Yt?o=>o.prop(oi)==s.data:s?o=>o==s:void 0,this.style=gp(e.map(o=>({tag:o.tag,class:o.class||r(Object.assign({},o,{tag:null}))})),{all:n}).style,this.module=i?new IO(i):null,this.themeType=t.themeType}static define(e,t){return new cn(e,t||{})}}const dl=_.define(),qp=_.define({combine(O){return O.length?[O[0]]:null}});function Ho(O){let e=O.facet(dl);return e.length?e:O.facet(qp)}function kp(O,e){let t=[pb],i;return O instanceof cn&&(O.module&&t.push(z.styleModule.of(O.module)),i=O.themeType),e!=null&&e.fallback?t.push(qp.of(O)):i?t.push(dl.computeN([z.darkTheme],r=>r.facet(z.darkTheme)==(i=="dark")?[O]:[])):t.push(dl.of(O)),t}class db{constructor(e){this.markCache=Object.create(null),this.tree=ue(e.state),this.decorations=this.buildDeco(e,Ho(e.state))}update(e){let t=ue(e.state),i=Ho(e.state),r=i!=Ho(e.startState);t.length{i.add(s,o,this.markCache[a]||(this.markCache[a]=I.mark({class:a})))},r,n);return i.finish()}}const pb=MO.high(qe.fromClass(db,{decorations:O=>O.decorations})),mb=cn.define([{tag:f.meta,color:"#404740"},{tag:f.link,textDecoration:"underline"},{tag:f.heading,textDecoration:"underline",fontWeight:"bold"},{tag:f.emphasis,fontStyle:"italic"},{tag:f.strong,fontWeight:"bold"},{tag:f.strikethrough,textDecoration:"line-through"},{tag:f.keyword,color:"#708"},{tag:[f.atom,f.bool,f.url,f.contentSeparator,f.labelName],color:"#219"},{tag:[f.literal,f.inserted],color:"#164"},{tag:[f.string,f.deleted],color:"#a11"},{tag:[f.regexp,f.escape,f.special(f.string)],color:"#e40"},{tag:f.definition(f.variableName),color:"#00f"},{tag:f.local(f.variableName),color:"#30a"},{tag:[f.typeName,f.namespace],color:"#085"},{tag:f.className,color:"#167"},{tag:[f.special(f.variableName),f.macroName],color:"#256"},{tag:f.definition(f.propertyName),color:"#00c"},{tag:f.comment,color:"#940"},{tag:f.invalid,color:"#f00"}]),Pb=z.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Zp=1e4,Rp="()[]{}",Up=_.define({combine(O){return cO(O,{afterCursor:!0,brackets:Rp,maxScanDistance:Zp,renderMatch:Xb})}}),gb=I.mark({class:"cm-matchingBracket"}),Sb=I.mark({class:"cm-nonmatchingBracket"});function Xb(O){let e=[],t=O.matched?gb:Sb;return e.push(t.range(O.start.from,O.start.to)),O.end&&e.push(t.range(O.end.from,O.end.to)),e}const yb=Ae.define({create(){return I.none},update(O,e){if(!e.docChanged&&!e.selection)return O;let t=[],i=e.state.facet(Up);for(let r of e.state.selection.ranges){if(!r.empty)continue;let n=rO(e.state,r.head,-1,i)||r.head>0&&rO(e.state,r.head-1,1,i)||i.afterCursor&&(rO(e.state,r.head,1,i)||r.headz.decorations.from(O)}),xb=[yb,Pb];function bb(O={}){return[Up.of(O),xb]}const kc=new M;function pl(O,e,t){let i=O.prop(e<0?M.openedBy:M.closedBy);if(i)return i;if(O.name.length==1){let r=t.indexOf(O.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function ml(O){let e=O.type.prop(kc);return e?e(O.node):O}function rO(O,e,t,i={}){let r=i.maxScanDistance||Zp,n=i.brackets||Rp,s=ue(O),o=s.resolveInner(e,t);for(let a=o;a;a=a.parent){let l=pl(a.type,t,n);if(l&&a.from0?e>=c.from&&ec.from&&e<=c.to))return wb(O,e,t,a,c,l,n)}}return Wb(O,e,t,s,o.type,r,n)}function wb(O,e,t,i,r,n,s){let o=i.parent,a={from:r.from,to:r.to},l=0,c=o==null?void 0:o.cursor();if(c&&(t<0?c.childBefore(i.from):c.childAfter(i.to)))do if(t<0?c.to<=i.from:c.from>=i.to){if(l==0&&n.indexOf(c.type.name)>-1&&c.from0)return null;let l={from:t<0?e-1:e,to:t>0?e+1:e},c=O.doc.iterRange(e,t>0?O.doc.length:0),h=0;for(let Q=0;!c.next().done&&Q<=n;){let u=c.value;t<0&&(Q+=u.length);let $=e+Q*t;for(let d=t>0?0:u.length-1,p=t>0?u.length:-1;d!=p;d+=t){let P=s.indexOf(u[d]);if(!(P<0||i.resolveInner($+d,1).type!=r))if(P%2==0==t>0)h++;else{if(h==1)return{start:l,end:{from:$+d,to:$+d+1},matched:P>>1==a>>1};h--}}t>0&&(Q+=u.length)}return c.done?{start:l,matched:!1}:null}const Tb=Object.create(null),OQ=[je.none],iQ=[],Yb=Object.create(null);for(let[O,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Yb[O]=vb(Tb,e);function Fo(O,e){iQ.indexOf(O)>-1||(iQ.push(O),console.warn(e))}function vb(O,e){let t=null;for(let n of e.split(".")){let s=O[n]||f[n];s?typeof s=="function"?t?t=s(t):Fo(n,`Modifier ${n} used at start of tag`):t?Fo(n,`Tag ${n} used as modifier`):t=s:Fo(n,`Unknown highlighting tag ${n}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),r=je.define({id:OQ.length,name:i,props:[De({[i]:t})]});return OQ.push(r),r.id}const qb=O=>{let{state:e}=O,t=e.doc.lineAt(e.selection.main.from),i=Rc(O.state,t.from);return i.line?kb(O):i.block?Rb(O):!1};function Zc(O,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let r=O(e,t);return r?(i(t.update(r)),!0):!1}}const kb=Zc(zb,0),Zb=Zc(Vp,0),Rb=Zc((O,e)=>Vp(O,e,Vb(e)),0);function Rc(O,e){let t=O.languageDataAt("commentTokens",e);return t.length?t[0]:{}}const or=50;function Ub(O,{open:e,close:t},i,r){let n=O.sliceDoc(i-or,i),s=O.sliceDoc(r,r+or),o=/\s*$/.exec(n)[0].length,a=/^\s*/.exec(s)[0].length,l=n.length-o;if(n.slice(l-e.length,l)==e&&s.slice(a,a+t.length)==t)return{open:{pos:i-o,margin:o&&1},close:{pos:r+a,margin:a&&1}};let c,h;r-i<=2*or?c=h=O.sliceDoc(i,r):(c=O.sliceDoc(i,i+or),h=O.sliceDoc(r-or,r));let Q=/^\s*/.exec(c)[0].length,u=/\s*$/.exec(h)[0].length,$=h.length-u-t.length;return c.slice(Q,Q+e.length)==e&&h.slice($,$+t.length)==t?{open:{pos:i+Q+e.length,margin:/\s/.test(c.charAt(Q+e.length))?1:0},close:{pos:r-u-t.length,margin:/\s/.test(h.charAt($-1))?1:0}}:null}function Vb(O){let e=[];for(let t of O.selection.ranges){let i=O.doc.lineAt(t.from),r=t.to<=i.to?i:O.doc.lineAt(t.to),n=e.length-1;n>=0&&e[n].to>i.from?e[n].to=r.to:e.push({from:i.from,to:r.to})}return e}function Vp(O,e,t=e.selection.ranges){let i=t.map(n=>Rc(e,n.from).block);if(!i.every(n=>n))return null;let r=t.map((n,s)=>Ub(e,i[s],n.from,n.to));if(O!=2&&!r.every(n=>n))return{changes:e.changes(t.map((n,s)=>r[s]?[]:[{from:n.from,insert:i[s].open+" "},{from:n.to,insert:" "+i[s].close}]))};if(O!=1&&r.some(n=>n)){let n=[];for(let s=0,o;sr&&(n==s||s>h.from)){r=h.from;let Q=/^\s*/.exec(h.text)[0].length,u=Q==h.length,$=h.text.slice(Q,Q+l.length)==l?Q:-1;Qn.comment<0&&(!n.empty||n.single))){let n=[];for(let{line:o,token:a,indent:l,empty:c,single:h}of i)(h||!c)&&n.push({from:o.from+l,insert:a+" "});let s=e.changes(n);return{changes:s,selection:e.selection.map(s,1)}}else if(O!=1&&i.some(n=>n.comment>=0)){let n=[];for(let{line:s,comment:o,token:a}of i)if(o>=0){let l=s.from+o,c=l+a.length;s.text[c-s.from]==" "&&c++,n.push({from:l,to:c})}return{changes:n}}return null}const Pl=xO.define(),_b=xO.define(),jb=_.define(),zp=_.define({combine(O){return cO(O,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,r)=>e(i,r)||t(i,r)})}});function Gb(O){let e=0;return O.iterChangedRanges((t,i)=>e=i),e}const _p=Ae.define({create(){return nO.empty},update(O,e){let t=e.state.facet(zp),i=e.annotation(Pl);if(i){let a=e.docChanged?X.single(Gb(e.changes)):void 0,l=$t.fromTransaction(e,a),c=i.side,h=c==0?O.undone:O.done;return l?h=ks(h,h.length,t.minDepth,l):h=Cp(h,e.startState.selection),new nO(c==0?i.rest:h,c==0?h:i.rest)}let r=e.annotation(_b);if((r=="full"||r=="before")&&(O=O.isolate()),e.annotation(ze.addToHistory)===!1)return e.changes.empty?O:O.addMapping(e.changes.desc);let n=$t.fromTransaction(e),s=e.annotation(ze.time),o=e.annotation(ze.userEvent);return n?O=O.addChanges(n,s,o,t,e):e.selection&&(O=O.addSelection(e.startState.selection,s,o,t.newGroupDelay)),(r=="full"||r=="after")&&(O=O.isolate()),O},toJSON(O){return{done:O.done.map(e=>e.toJSON()),undone:O.undone.map(e=>e.toJSON())}},fromJSON(O){return new nO(O.done.map($t.fromJSON),O.undone.map($t.fromJSON))}});function Cb(O={}){return[_p,zp.of(O),z.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?jp:e.inputType=="historyRedo"?gl:null;return i?(e.preventDefault(),i(t)):!1}})]}function ho(O,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let r=t.field(_p,!1);if(!r)return!1;let n=r.pop(O,t,e);return n?(i(n),!0):!1}}const jp=ho(0,!1),gl=ho(1,!1),Ib=ho(0,!0),Eb=ho(1,!0);class $t{constructor(e,t,i,r,n){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=r,this.selectionsAfter=n}setSelAfter(e){return new $t(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new $t(e.changes&&Ve.fromJSON(e.changes),[],e.mapped&&sO.fromJSON(e.mapped),e.startSelection&&X.fromJSON(e.startSelection),e.selectionsAfter.map(X.fromJSON))}static fromTransaction(e,t){let i=vt;for(let r of e.startState.facet(jb)){let n=r(e);n.length&&(i=i.concat(n))}return!i.length&&e.changes.empty?null:new $t(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,vt)}static selection(e){return new $t(void 0,vt,void 0,void 0,e)}}function ks(O,e,t,i){let r=e+1>t+20?e-t-1:0,n=O.slice(r,e);return n.push(i),n}function Ab(O,e){let t=[],i=!1;return O.iterChangedRanges((r,n)=>t.push(r,n)),e.iterChangedRanges((r,n,s,o)=>{for(let a=0;a=l&&s<=c&&(i=!0)}}),i}function Db(O,e){return O.ranges.length==e.ranges.length&&O.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Gp(O,e){return O.length?e.length?O.concat(e):O:e}const vt=[],Mb=200;function Cp(O,e){if(O.length){let t=O[O.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-Mb));return i.length&&i[i.length-1].eq(e)?O:(i.push(e),ks(O,O.length-1,1e9,t.setSelAfter(i)))}else return[$t.selection([e])]}function Nb(O){let e=O[O.length-1],t=O.slice();return t[O.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Ko(O,e){if(!O.length)return O;let t=O.length,i=vt;for(;t;){let r=Lb(O[t-1],e,i);if(r.changes&&!r.changes.empty||r.effects.length){let n=O.slice(0,t);return n[t-1]=r,n}else e=r.mapped,t--,i=r.selectionsAfter}return i.length?[$t.selection(i)]:vt}function Lb(O,e,t){let i=Gp(O.selectionsAfter.length?O.selectionsAfter.map(o=>o.map(e)):vt,t);if(!O.changes)return $t.selection(i);let r=O.changes.map(e),n=e.mapDesc(O.changes,!0),s=O.mapped?O.mapped.composeDesc(n):n;return new $t(r,B.mapEffects(O.effects,e),s,O.startSelection.map(n),i)}const Bb=/^(input\.type|delete)($|\.)/;class nO{constructor(e,t,i=0,r=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=r}isolate(){return this.prevTime?new nO(this.done,this.undone):this}addChanges(e,t,i,r,n){let s=this.done,o=s[s.length-1];return o&&o.changes&&!o.changes.empty&&e.changes&&(!i||Bb.test(i))&&(!o.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?O.moveByChar(t,e):fo(t,e))}function rt(O){return O.textDirectionAt(O.state.selection.main.head)==We.LTR}const Ep=O=>Ip(O,!rt(O)),Ap=O=>Ip(O,rt(O));function Dp(O,e){return Nt(O,t=>t.empty?O.moveByGroup(t,e):fo(t,e))}const Fb=O=>Dp(O,!rt(O)),Kb=O=>Dp(O,rt(O));function Jb(O,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(O.sliceDoc(e.from,e.to)))||e.firstChild}function Qo(O,e,t){let i=ue(O).resolveInner(e.head),r=t?M.closedBy:M.openedBy;for(let a=e.head;;){let l=t?i.childAfter(a):i.childBefore(a);if(!l)break;Jb(O,l,r)?i=l:a=t?l.to:l.from}let n=i.type.prop(r),s,o;return n&&(s=t?rO(O,i.from,1):rO(O,i.to,-1))&&s.matched?o=t?s.end.to:s.end.from:o=t?i.to:i.from,X.cursor(o,t?-1:1)}const ew=O=>Nt(O,e=>Qo(O.state,e,!rt(O))),tw=O=>Nt(O,e=>Qo(O.state,e,rt(O)));function Mp(O,e){return Nt(O,t=>{if(!t.empty)return fo(t,e);let i=O.moveVertically(t,e);return i.head!=t.head?i:O.moveToLineBoundary(t,e)})}const Np=O=>Mp(O,!1),Lp=O=>Mp(O,!0);function Bp(O){let e=O.scrollDOM.clientHeights.empty?O.moveVertically(s,e,t.height):fo(s,e));if(r.eq(i.selection))return!1;let n;if(t.selfScroll){let s=O.coordsAtPos(i.selection.main.head),o=O.scrollDOM.getBoundingClientRect(),a=o.top+t.marginTop,l=o.bottom-t.marginBottom;s&&s.top>a&&s.bottomHp(O,!1),Sl=O=>Hp(O,!0);function NO(O,e,t){let i=O.lineBlockAt(e.head),r=O.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?i.to:i.from)&&(r=O.moveToLineBoundary(e,t,!1)),!t&&r.head==i.from&&i.length){let n=/^\s*/.exec(O.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&e.head!=i.from+n&&(r=X.cursor(i.from+n))}return r}const Ow=O=>Nt(O,e=>NO(O,e,!0)),iw=O=>Nt(O,e=>NO(O,e,!1)),rw=O=>Nt(O,e=>NO(O,e,!rt(O))),nw=O=>Nt(O,e=>NO(O,e,rt(O))),sw=O=>Nt(O,e=>X.cursor(O.lineBlockAt(e.head).from,1)),ow=O=>Nt(O,e=>X.cursor(O.lineBlockAt(e.head).to,-1));function aw(O,e,t){let i=!1,r=Ji(O.selection,n=>{let s=rO(O,n.head,-1)||rO(O,n.head,1)||n.head>0&&rO(O,n.head-1,1)||n.headaw(O,e,!1);function Rt(O,e){let t=Ji(O.state.selection,i=>{let r=e(i);return X.range(i.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return t.eq(O.state.selection)?!1:(O.dispatch(QO(O.state,t)),!0)}function Fp(O,e){return Rt(O,t=>O.moveByChar(t,e))}const Kp=O=>Fp(O,!rt(O)),Jp=O=>Fp(O,rt(O));function em(O,e){return Rt(O,t=>O.moveByGroup(t,e))}const cw=O=>em(O,!rt(O)),hw=O=>em(O,rt(O)),fw=O=>Rt(O,e=>Qo(O.state,e,!rt(O))),Qw=O=>Rt(O,e=>Qo(O.state,e,rt(O)));function tm(O,e){return Rt(O,t=>O.moveVertically(t,e))}const Om=O=>tm(O,!1),im=O=>tm(O,!0);function rm(O,e){return Rt(O,t=>O.moveVertically(t,e,Bp(O).height))}const nQ=O=>rm(O,!1),sQ=O=>rm(O,!0),uw=O=>Rt(O,e=>NO(O,e,!0)),$w=O=>Rt(O,e=>NO(O,e,!1)),dw=O=>Rt(O,e=>NO(O,e,!rt(O))),pw=O=>Rt(O,e=>NO(O,e,rt(O))),mw=O=>Rt(O,e=>X.cursor(O.lineBlockAt(e.head).from)),Pw=O=>Rt(O,e=>X.cursor(O.lineBlockAt(e.head).to)),oQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:0})),!0),aQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.doc.length})),!0),lQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.selection.main.anchor,head:0})),!0),cQ=({state:O,dispatch:e})=>(e(QO(O,{anchor:O.selection.main.anchor,head:O.doc.length})),!0),gw=({state:O,dispatch:e})=>(e(O.update({selection:{anchor:0,head:O.doc.length},userEvent:"select"})),!0),Sw=({state:O,dispatch:e})=>{let t=$o(O).map(({from:i,to:r})=>X.range(i,Math.min(r+1,O.doc.length)));return e(O.update({selection:X.create(t),userEvent:"select"})),!0},Xw=({state:O,dispatch:e})=>{let t=Ji(O.selection,i=>{var r;let n=ue(O).resolveInner(i.head,1);for(;!(n.from=i.to||n.to>i.to&&n.from<=i.from||!(!((r=n.parent)===null||r===void 0)&&r.parent));)n=n.parent;return X.range(n.to,n.from)});return e(QO(O,t)),!0},yw=({state:O,dispatch:e})=>{let t=O.selection,i=null;return t.ranges.length>1?i=X.create([t.main]):t.main.empty||(i=X.create([X.cursor(t.main.head)])),i?(e(QO(O,i)),!0):!1};function uo(O,e){if(O.state.readOnly)return!1;let t="delete.selection",{state:i}=O,r=i.changeByRange(n=>{let{from:s,to:o}=n;if(s==o){let a=e(s);as&&(t="delete.forward",a=zn(O,a,!0)),s=Math.min(s,a),o=Math.max(o,a)}else s=zn(O,s,!1),o=zn(O,o,!0);return s==o?{range:n}:{changes:{from:s,to:o},range:X.cursor(s)}});return r.changes.empty?!1:(O.dispatch(i.update(r,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?z.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function zn(O,e,t){if(O instanceof z)for(let i of O.state.facet(z.atomicRanges).map(r=>r(O)))i.between(e,e,(r,n)=>{re&&(e=t?n:r)});return e}const nm=(O,e)=>uo(O,t=>{let{state:i}=O,r=i.doc.lineAt(t),n,s;if(!e&&t>r.from&&tnm(O,!1),sm=O=>nm(O,!0),om=(O,e)=>uo(O,t=>{let i=t,{state:r}=O,n=r.doc.lineAt(i),s=r.charCategorizer(i);for(let o=null;;){if(i==(e?n.to:n.from)){i==t&&n.number!=(e?r.doc.lines:1)&&(i+=e?1:-1);break}let a=at(n.text,i-n.from,e)+n.from,l=n.text.slice(Math.min(i,a)-n.from,Math.max(i,a)-n.from),c=s(l);if(o!=null&&c!=o)break;(l!=" "||i!=t)&&(o=c),i=a}return i}),am=O=>om(O,!1),xw=O=>om(O,!0),lm=O=>uo(O,e=>{let t=O.lineBlockAt(e).to;return euo(O,e=>{let t=O.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)}),ww=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=O.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:le.of(["",""])},range:X.cursor(i.from)}));return e(O.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Ww=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=O.changeByRange(i=>{if(!i.empty||i.from==0||i.from==O.doc.length)return{range:i};let r=i.from,n=O.doc.lineAt(r),s=r==n.from?r-1:at(n.text,r-n.from,!1)+n.from,o=r==n.to?r+1:at(n.text,r-n.from,!0)+n.from;return{changes:{from:s,to:o,insert:O.doc.slice(r,o).append(O.doc.slice(s,r))},range:X.cursor(o)}});return t.changes.empty?!1:(e(O.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function $o(O){let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.from),n=O.doc.lineAt(i.to);if(!i.empty&&i.to==n.from&&(n=O.doc.lineAt(i.to-1)),t>=r.number){let s=e[e.length-1];s.to=n.to,s.ranges.push(i)}else e.push({from:r.from,to:n.to,ranges:[i]});t=n.number+1}return e}function cm(O,e,t){if(O.readOnly)return!1;let i=[],r=[];for(let n of $o(O)){if(t?n.to==O.doc.length:n.from==0)continue;let s=O.doc.lineAt(t?n.to+1:n.from-1),o=s.length+1;if(t){i.push({from:n.to,to:s.to},{from:n.from,insert:s.text+O.lineBreak});for(let a of n.ranges)r.push(X.range(Math.min(O.doc.length,a.anchor+o),Math.min(O.doc.length,a.head+o)))}else{i.push({from:s.from,to:n.from},{from:n.to,insert:O.lineBreak+s.text});for(let a of n.ranges)r.push(X.range(a.anchor-o,a.head-o))}}return i.length?(e(O.update({changes:i,scrollIntoView:!0,selection:X.create(r,O.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Tw=({state:O,dispatch:e})=>cm(O,e,!1),Yw=({state:O,dispatch:e})=>cm(O,e,!0);function hm(O,e,t){if(O.readOnly)return!1;let i=[];for(let r of $o(O))t?i.push({from:r.from,insert:O.doc.slice(r.from,r.to)+O.lineBreak}):i.push({from:r.to,insert:O.lineBreak+O.doc.slice(r.from,r.to)});return e(O.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const vw=({state:O,dispatch:e})=>hm(O,e,!1),qw=({state:O,dispatch:e})=>hm(O,e,!0),kw=O=>{if(O.state.readOnly)return!1;let{state:e}=O,t=e.changes($o(e).map(({from:r,to:n})=>(r>0?r--:nO.moveVertically(r,!0)).map(t);return O.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Zw(O,e){if(/\(\)|\[\]|\{\}/.test(O.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ue(O).resolveInner(e),i=t.childBefore(e),r=t.childAfter(e),n;return i&&r&&i.to<=e&&r.from>=e&&(n=i.type.prop(M.closedBy))&&n.indexOf(r.name)>-1&&O.doc.lineAt(i.to).from==O.doc.lineAt(r.from).from?{from:i.to,to:r.from}:null}const Rw=fm(!1),Uw=fm(!0);function fm(O){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(r=>{let{from:n,to:s}=r,o=e.doc.lineAt(n),a=!O&&n==s&&Zw(e,n);O&&(n=s=(s<=o.to?o:e.doc.lineAt(s)).to);let l=new lo(e,{simulateBreak:n,simulateDoubleBreak:!!a}),c=Yc(l,n);for(c==null&&(c=/^\s*/.exec(e.doc.lineAt(n).text)[0].length);so.from&&n{let r=[];for(let s=i.from;s<=i.to;){let o=O.doc.lineAt(s);o.number>t&&(i.empty||i.to>o.from)&&(e(o,r,i),t=o.number),s=o.to+1}let n=O.changes(r);return{changes:r,range:X.range(n.mapPos(i.anchor,1),n.mapPos(i.head,1))}})}const Vw=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let t=Object.create(null),i=new lo(O,{overrideIndentation:n=>{let s=t[n];return s??-1}}),r=Uc(O,(n,s,o)=>{let a=Yc(i,n.from);if(a==null)return;/\S/.test(n.text)||(a=0);let l=/^\s*/.exec(n.text)[0],c=Nr(O,a);(l!=c||o.fromO.readOnly?!1:(e(O.update(Uc(O,(t,i)=>{i.push({from:t.from,insert:O.facet(an)})}),{userEvent:"input.indent"})),!0),um=({state:O,dispatch:e})=>O.readOnly?!1:(e(O.update(Uc(O,(t,i)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let n=rn(r,O.tabSize),s=0,o=Nr(O,Math.max(0,n-Ys(O)));for(;s({mac:O.key,run:O.run,shift:O.shift}))),jw=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ew,shift:fw},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:tw,shift:Qw},{key:"Alt-ArrowUp",run:Tw},{key:"Shift-Alt-ArrowUp",run:vw},{key:"Alt-ArrowDown",run:Yw},{key:"Shift-Alt-ArrowDown",run:qw},{key:"Escape",run:yw},{key:"Mod-Enter",run:Uw},{key:"Alt-l",mac:"Ctrl-l",run:Sw},{key:"Mod-i",run:Xw,preventDefault:!0},{key:"Mod-[",run:um},{key:"Mod-]",run:Qm},{key:"Mod-Alt-\\",run:Vw},{key:"Shift-Mod-k",run:kw},{key:"Shift-Mod-\\",run:lw},{key:"Mod-/",run:qb},{key:"Alt-A",run:Zb}].concat(_w),Gw={key:"Tab",run:Qm,shift:um};function me(){var O=arguments[0];typeof O=="string"&&(O=document.createElement(O));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var r=t[i];typeof r=="string"?O.setAttribute(i,r):r!=null&&(O[i]=r)}e++}for(;eO.normalize("NFKD"):O=>O;class Di{constructor(e,t,i=0,r=e.length,n,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,r),this.bufferStart=i,this.normalize=n?o=>n(hQ(o)):hQ,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Be(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=cc(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=wt(e);let r=this.normalize(t);for(let n=0,s=i;;n++){let o=r.charCodeAt(n),a=this.match(o,s);if(a)return this.value=a,this;if(n==r.length-1)break;s==i&&nthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,r=i+t[0].length;if(this.matchPos=Zs(this.text,r+(i==r?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||r.to<=t){let o=new Ri(t,e.sliceString(t,i));return Jo.set(e,o),o}if(r.from==t&&r.to==i)return r;let{text:n,from:s}=r;return s>t&&(n=e.sliceString(t,s)+n,s=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,r=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,r,t)))return this.value={from:i,to:r,match:t},this.matchPos=Zs(this.text,r+(i==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Ri.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(pm.prototype[Symbol.iterator]=mm.prototype[Symbol.iterator]=function(){return this});function Cw(O){try{return new RegExp(O,Vc),!0}catch{return!1}}function Zs(O,e){if(e>=O.length)return e;let t=O.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function yl(O){let e=me("input",{class:"cm-textfield",name:"line"}),t=me("form",{class:"cm-gotoLine",onkeydown:r=>{r.keyCode==27?(r.preventDefault(),O.dispatch({effects:Rs.of(!1)}),O.focus()):r.keyCode==13&&(r.preventDefault(),i())},onsubmit:r=>{r.preventDefault(),i()}},me("label",O.state.phrase("Go to line"),": ",e)," ",me("button",{class:"cm-button",type:"submit"},O.state.phrase("go")));function i(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!r)return;let{state:n}=O,s=n.doc.lineAt(n.selection.main.head),[,o,a,l,c]=r,h=l?+l.slice(1):0,Q=a?+a:s.number;if(a&&c){let $=Q/100;o&&($=$*(o=="-"?-1:1)+s.number/n.doc.lines),Q=Math.round(n.doc.lines*$)}else a&&o&&(Q=Q*(o=="-"?-1:1)+s.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,Q)));O.dispatch({effects:Rs.of(!1),selection:X.cursor(u.from+Math.max(0,Math.min(h,u.length))),scrollIntoView:!0}),O.focus()}return{dom:t}}const Rs=B.define(),fQ=Ae.define({create(){return!0},update(O,e){for(let t of e.effects)t.is(Rs)&&(O=t.value);return O},provide:O=>Ar.from(O,e=>e?yl:null)}),Iw=O=>{let e=Er(O,yl);if(!e){let t=[Rs.of(!0)];O.state.field(fQ,!1)==null&&t.push(B.appendConfig.of([fQ,Ew])),O.dispatch({effects:t}),e=Er(O,yl)}return e&&e.dom.querySelector("input").focus(),!0},Ew=z.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Aw={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Pm=_.define({combine(O){return cO(O,Aw,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function Dw(O){let e=[Hw,Bw];return O&&e.push(Pm.of(O)),e}const Mw=I.mark({class:"cm-selectionMatch"}),Nw=I.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function QQ(O,e,t,i){return(t==0||O(e.sliceDoc(t-1,t))!=xe.Word)&&(i==e.doc.length||O(e.sliceDoc(i,i+1))!=xe.Word)}function Lw(O,e,t,i){return O(e.sliceDoc(t,t+1))==xe.Word&&O(e.sliceDoc(i-1,i))==xe.Word}const Bw=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.selectionSet||O.docChanged||O.viewportChanged)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=O.state.facet(Pm),{state:t}=O,i=t.selection;if(i.ranges.length>1)return I.none;let r=i.main,n,s=null;if(r.empty){if(!e.highlightWordAroundCursor)return I.none;let a=t.wordAt(r.head);if(!a)return I.none;s=t.charCategorizer(r.head),n=t.sliceDoc(a.from,a.to)}else{let a=r.to-r.from;if(a200)return I.none;if(e.wholeWords){if(n=t.sliceDoc(r.from,r.to),s=t.charCategorizer(r.head),!(QQ(s,t,r.from,r.to)&&Lw(s,t,r.from,r.to)))return I.none}else if(n=t.sliceDoc(r.from,r.to).trim(),!n)return I.none}let o=[];for(let a of O.visibleRanges){let l=new Di(t.doc,n,a.from,a.to);for(;!l.next().done;){let{from:c,to:h}=l.value;if((!s||QQ(s,t,c,h))&&(r.empty&&c<=r.from&&h>=r.to?o.push(Nw.range(c,h)):(c>=r.to||h<=r.from)&&o.push(Mw.range(c,h)),o.length>e.maxMatches))return I.none}}return I.set(o)}},{decorations:O=>O.decorations}),Hw=z.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Fw=({state:O,dispatch:e})=>{let{selection:t}=O,i=X.create(t.ranges.map(r=>O.wordAt(r.head)||X.cursor(r.head)),t.mainIndex);return i.eq(t)?!1:(e(O.update({selection:i})),!0)};function Kw(O,e){let{main:t,ranges:i}=O.selection,r=O.wordAt(t.head),n=r&&r.from==t.from&&r.to==t.to;for(let s=!1,o=new Di(O.doc,e,i[i.length-1].to);;)if(o.next(),o.done){if(s)return null;o=new Di(O.doc,e,0,Math.max(0,i[i.length-1].from-1)),s=!0}else{if(s&&i.some(a=>a.from==o.value.from))continue;if(n){let a=O.wordAt(o.value.from);if(!a||a.from!=o.value.from||a.to!=o.value.to)continue}return o.value}}const Jw=({state:O,dispatch:e})=>{let{ranges:t}=O.selection;if(t.some(n=>n.from===n.to))return Fw({state:O,dispatch:e});let i=O.sliceDoc(t[0].from,t[0].to);if(O.selection.ranges.some(n=>O.sliceDoc(n.from,n.to)!=i))return!1;let r=Kw(O,i);return r?(e(O.update({selection:O.selection.addRange(X.range(r.from,r.to),!1),effects:z.scrollIntoView(r.to)})),!0):!1},zc=_.define({combine(O){return cO(O,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new hW(e)})}});class gm{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Cw(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new iW(this):new tW(this)}getCursor(e,t=0,i){let r=e.doc?e:te.create({doc:e});return i==null&&(i=r.doc.length),this.regexp?Si(this,r,t,i):gi(this,r,t,i)}}class Sm{constructor(e){this.spec=e}}function gi(O,e,t,i){return new Di(e.doc,O.unquoted,t,i,O.caseSensitive?void 0:r=>r.toLowerCase(),O.wholeWord?eW(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function eW(O,e){return(t,i,r,n)=>((n>t||n+r.length=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=gi(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}function Si(O,e,t,i){return new pm(e.doc,O.search,{ignoreCase:!O.caseSensitive,test:O.wholeWord?OW(e.charCategorizer(e.selection.main.head)):void 0},t,i)}function Us(O,e){return O.slice(at(O,e,!1),e)}function Vs(O,e){return O.slice(e,at(O,e))}function OW(O){return(e,t,i)=>!i[0].length||(O(Us(i.input,i.index))!=xe.Word||O(Vs(i.input,i.index))!=xe.Word)&&(O(Vs(i.input,i.index+i[0].length))!=xe.Word||O(Us(i.input,i.index+i[0].length))!=xe.Word)}class iW extends Sm{nextMatch(e,t,i){let r=Si(this.spec,e,i,e.doc.length).next();return r.done&&(r=Si(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,i){for(let r=1;;r++){let n=Math.max(t,i-r*1e4),s=Si(this.spec,e,n,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(n==t||o.from>n+10))return o;if(n==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(t,i)=>i=="$"?"$":i=="&"?e.match[0]:i!="0"&&+i=t)return null;r.push(i.value)}return r}highlight(e,t,i,r){let n=Si(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!n.next().done;)r(n.value.from,n.value.to)}}const Lr=B.define(),_c=B.define(),_O=Ae.define({create(O){return new ea(xl(O).create(),null)},update(O,e){for(let t of e.effects)t.is(Lr)?O=new ea(t.value.create(),O.panel):t.is(_c)&&(O=new ea(O.query,t.value?jc:null));return O},provide:O=>Ar.from(O,e=>e.panel)});class ea{constructor(e,t){this.query=e,this.panel=t}}const rW=I.mark({class:"cm-searchMatch"}),nW=I.mark({class:"cm-searchMatch cm-searchMatch-selected"}),sW=qe.fromClass(class{constructor(O){this.view=O,this.decorations=this.highlight(O.state.field(_O))}update(O){let e=O.state.field(_O);(e!=O.startState.field(_O)||O.docChanged||O.selectionSet||O.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:O,panel:e}){if(!e||!O.spec.valid)return I.none;let{view:t}=this,i=new CO;for(let r=0,n=t.visibleRanges,s=n.length;rn[r+1].from-2*250;)a=n[++r].to;O.highlight(t.state,o,a,(l,c)=>{let h=t.state.selection.ranges.some(Q=>Q.from==l&&Q.to==c);i.add(l,c,h?nW:rW)})}return i.finish()}},{decorations:O=>O.decorations});function hn(O){return e=>{let t=e.state.field(_O,!1);return t&&t.query.spec.valid?O(e,t):Xm(e)}}const zs=hn((O,{query:e})=>{let{to:t}=O.state.selection.main,i=e.nextMatch(O.state,t,t);return i?(O.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:Gc(O,i),userEvent:"select.search"}),!0):!1}),_s=hn((O,{query:e})=>{let{state:t}=O,{from:i}=t.selection.main,r=e.prevMatch(t,i,i);return r?(O.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:Gc(O,r),userEvent:"select.search"}),!0):!1}),oW=hn((O,{query:e})=>{let t=e.matchAll(O.state,1e3);return!t||!t.length?!1:(O.dispatch({selection:X.create(t.map(i=>X.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),aW=({state:O,dispatch:e})=>{let t=O.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:r}=t.main,n=[],s=0;for(let o=new Di(O.doc,O.sliceDoc(i,r));!o.next().done;){if(n.length>1e3)return!1;o.value.from==i&&(s=n.length),n.push(X.range(o.value.from,o.value.to))}return e(O.update({selection:X.create(n,s),userEvent:"select.search.matches"})),!0},uQ=hn((O,{query:e})=>{let{state:t}=O,{from:i,to:r}=t.selection.main;if(t.readOnly)return!1;let n=e.nextMatch(t,i,i);if(!n)return!1;let s=[],o,a,l=[];if(n.from==i&&n.to==r&&(a=t.toText(e.getReplacement(n)),s.push({from:n.from,to:n.to,insert:a}),n=e.nextMatch(t,n.from,n.to),l.push(z.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+"."))),n){let c=s.length==0||s[0].from>=n.to?0:n.to-n.from-a.length;o={anchor:n.from-c,head:n.to-c},l.push(Gc(O,n))}return O.dispatch({changes:s,selection:o,scrollIntoView:!!o,effects:l,userEvent:"input.replace"}),!0}),lW=hn((O,{query:e})=>{if(O.state.readOnly)return!1;let t=e.matchAll(O.state,1e9).map(r=>{let{from:n,to:s}=r;return{from:n,to:s,insert:e.getReplacement(r)}});if(!t.length)return!1;let i=O.state.phrase("replaced $ matches",t.length)+".";return O.dispatch({changes:t,effects:z.announce.of(i),userEvent:"input.replace.all"}),!0});function jc(O){return O.state.facet(zc).createPanel(O)}function xl(O,e){var t,i,r,n;let s=O.selection.main,o=s.empty||s.to>s.from+100?"":O.sliceDoc(s.from,s.to);if(e&&!o)return e;let a=O.facet(zc);return new gm({search:((t=e==null?void 0:e.literal)!==null&&t!==void 0?t:a.literal)?o:o.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:a.caseSensitive,literal:(r=e==null?void 0:e.literal)!==null&&r!==void 0?r:a.literal,wholeWord:(n=e==null?void 0:e.wholeWord)!==null&&n!==void 0?n:a.wholeWord})}const Xm=O=>{let e=O.state.field(_O,!1);if(e&&e.panel){let t=Er(O,jc);if(!t)return!1;let i=t.dom.querySelector("[main-field]");if(i&&i!=O.root.activeElement){let r=xl(O.state,e.query.spec);r.valid&&O.dispatch({effects:Lr.of(r)}),i.focus(),i.select()}}else O.dispatch({effects:[_c.of(!0),e?Lr.of(xl(O.state,e.query.spec)):B.appendConfig.of(QW)]});return!0},ym=O=>{let e=O.state.field(_O,!1);if(!e||!e.panel)return!1;let t=Er(O,jc);return t&&t.dom.contains(O.root.activeElement)&&O.focus(),O.dispatch({effects:_c.of(!1)}),!0},cW=[{key:"Mod-f",run:Xm,scope:"editor search-panel"},{key:"F3",run:zs,shift:_s,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:zs,shift:_s,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ym,scope:"editor search-panel"},{key:"Mod-Shift-l",run:aW},{key:"Alt-g",run:Iw},{key:"Mod-d",run:Jw,preventDefault:!0}];class hW{constructor(e){this.view=e;let t=this.query=e.state.field(_O).query.spec;this.commit=this.commit.bind(this),this.searchField=me("input",{value:t.search,placeholder:Pt(e,"Find"),"aria-label":Pt(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=me("input",{value:t.replace,placeholder:Pt(e,"Replace"),"aria-label":Pt(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=me("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=me("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=me("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(r,n,s){return me("button",{class:"cm-button",name:r,onclick:n,type:"button"},s)}this.dom=me("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,i("next",()=>zs(e),[Pt(e,"next")]),i("prev",()=>_s(e),[Pt(e,"previous")]),i("select",()=>oW(e),[Pt(e,"all")]),me("label",null,[this.caseField,Pt(e,"match case")]),me("label",null,[this.reField,Pt(e,"regexp")]),me("label",null,[this.wordField,Pt(e,"by word")]),...e.state.readOnly?[]:[me("br"),this.replaceField,i("replace",()=>uQ(e),[Pt(e,"replace")]),i("replaceAll",()=>lW(e),[Pt(e,"replace all")])],me("button",{name:"close",onclick:()=>ym(e),"aria-label":Pt(e,"close"),type:"button"},["×"])])}commit(){let e=new gm({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Lr.of(e)}))}keydown(e){w1(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?_s:zs)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),uQ(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(Lr)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(zc).top}}function Pt(O,e){return O.state.phrase(e)}const _n=30,jn=/[\s\.,:;?!]/;function Gc(O,{from:e,to:t}){let i=O.state.doc.lineAt(e),r=O.state.doc.lineAt(t).to,n=Math.max(i.from,e-_n),s=Math.min(r,t+_n),o=O.state.sliceDoc(n,s);if(n!=i.from){for(let a=0;a<_n;a++)if(!jn.test(o[a+1])&&jn.test(o[a])){o=o.slice(a);break}}if(s!=r){for(let a=o.length-1;a>o.length-_n;a--)if(!jn.test(o[a-1])&&jn.test(o[a])){o=o.slice(0,a);break}}return z.announce.of(`${O.state.phrase("current match")}. ${o} ${O.state.phrase("on line")} ${i.number}.`)}const fW=z.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),QW=[_O,MO.lowest(sW),fW];class xm{constructor(e,t,i){this.state=e,this.pos=t,this.explicit=i,this.abortListeners=[]}tokenBefore(e){let t=ue(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),r=t.text.slice(i-t.from,this.pos-t.from),n=r.search(bm(e,!1));return n<0?null:{from:i+n,to:this.pos,text:r.slice(n)}}get aborted(){return this.abortListeners==null}addEventListener(e,t){e=="abort"&&this.abortListeners&&this.abortListeners.push(t)}}function $Q(O){let e=Object.keys(O).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function uW(O){let e=Object.create(null),t=Object.create(null);for(let{label:r}of O){e[r[0]]=!0;for(let n=1;ntypeof r=="string"?{label:r}:r),[t,i]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:uW(e);return r=>{let n=r.matchBefore(i);return n||r.explicit?{from:n?n.from:r.pos,options:e,validFor:t}:null}}function Cc(O,e){return t=>{for(let i=ue(t.state).resolveInner(t.pos,-1);i;i=i.parent){if(O.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(t)}}class dQ{constructor(e,t,i){this.completion=e,this.source=t,this.match=i}}function jO(O){return O.selection.main.head}function bm(O,e){var t;let{source:i}=O,r=e&&i[0]!="^",n=i[i.length-1]!="$";return!r&&!n?O:new RegExp(`${r?"^":""}(?:${i})${n?"$":""}`,(t=O.flags)!==null&&t!==void 0?t:O.ignoreCase?"i":"")}const wm=xO.define();function $W(O,e,t,i){return Object.assign(Object.assign({},O.changeByRange(r=>{if(r==O.selection.main)return{changes:{from:t,to:i,insert:e},range:X.cursor(t+e.length)};let n=i-t;return!r.empty||n&&O.sliceDoc(r.from-n,r.from)!=O.sliceDoc(t,i)?{range:r}:{changes:{from:r.from-n,to:r.from,insert:e},range:X.cursor(r.from-n+e.length)}})),{userEvent:"input.complete"})}function Wm(O,e){const t=e.completion.apply||e.completion.label;let i=e.source;typeof t=="string"?O.dispatch(Object.assign(Object.assign({},$W(O.state,t,i.from,i.to)),{annotations:wm.of(e.completion)})):t(O,e.completion,i.from,i.to)}const pQ=new WeakMap;function dW(O){if(!Array.isArray(O))return O;let e=pQ.get(O);return e||pQ.set(O,e=po(O)),e}class pW{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let t=0;t=48&&Y<=57||Y>=97&&Y<=122?2:Y>=65&&Y<=90?1:0:(Z=cc(Y))!=Z.toLowerCase()?1:Z!=Z.toUpperCase()?2:0;(!y||E==1&&p||b==0&&E!=0)&&(t[h]==Y||i[h]==Y&&(Q=!0)?s[h++]=y:s.length&&(P=!1)),b=E,y+=wt(Y)}return h==a&&s[0]==0&&P?this.result(-100+(Q?-200:0),s,e):u==a&&$==0?[-200-e.length+(d==e.length?0:-100),0,d]:o>-1?[-700-e.length,o,o+this.pattern.length]:u==a?[-200+-700-e.length,$,d]:h==a?this.result(-100+(Q?-200:0)+-700+(P?0:-1100),s,e):t.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,t,i){let r=[e-i.length],n=1;for(let s of t){let o=s+(this.astral?wt(Be(i,s)):1);n>1&&r[n-1]==s?r[n-1]=o:(r[n++]=s,r[n++]=o)}return r}}const Zt=_.define({combine(O){return cO(O,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>mQ(e(i),t(i)),optionClass:(e,t)=>i=>mQ(e(i),t(i)),addToOptions:(e,t)=>e.concat(t)})}});function mQ(O,e){return O?e?O+" "+e:O:e}function mW(O){let e=O.addToOptions.slice();return O.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,r){let n=document.createElement("span");n.className="cm-completionLabel";let{label:s}=t,o=0;for(let a=1;ao&&n.appendChild(document.createTextNode(s.slice(o,l)));let h=n.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(s.slice(l,c))),h.className="cm-completionMatchedText",o=c}return ot.position-i.position).map(t=>t.render)}function PQ(O,e,t){if(O<=t)return{from:0,to:O};if(e<0&&(e=0),e<=O>>1){let r=Math.floor(e/t);return{from:r*t,to:(r+1)*t}}let i=Math.floor((O-e)/t);return{from:O-(i+1)*t,to:O-i*t}}class PW{constructor(e,t){this.view=e,this.stateField=t,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:o=>this.positionInfo(o),key:this},this.space=null,this.currentClass="";let i=e.state.field(t),{options:r,selected:n}=i.open,s=e.state.facet(Zt);this.optionContent=mW(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=PQ(r.length,n,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",o=>{for(let a=o.target,l;a&&a!=this.dom;a=a.parentNode)if(a.nodeName=="LI"&&(l=/-(\d+)$/.exec(a.id))&&+l[1]{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){var t,i,r;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);this.updateTooltipClass(e.state),n!=s&&(this.updateSel(),((t=n.open)===null||t===void 0?void 0:t.disabled)!=((i=s.open)===null||i===void 0?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((r=n.open)===null||r===void 0)&&r.disabled)))}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=PQ(t.options.length,t.selected,this.view.state.facet(Zt).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(t.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(t.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:i}=t.options[t.selected],{info:r}=i;if(!r)return;let n=typeof r=="string"?document.createTextNode(r):r(i);if(!n)return;"then"in n?n.then(s=>{s&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(s)}).catch(s=>xt(this.view.state,s,"completion info")):this.addInfoPane(n)}}addInfoPane(e){let t=this.info=document.createElement("div");t.className="cm-tooltip cm-completionInfo",t.appendChild(e),this.dom.appendChild(t),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,r=this.range.from;i;i=i.nextSibling,r++)r==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&SW(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),n=this.space;if(!n){let $=this.dom.ownerDocument.defaultView||window;n={left:0,top:0,right:$.innerWidth,bottom:$.innerHeight}}if(r.top>Math.min(n.bottom,t.bottom)-10||r.bottom=i.height||$>t.top?c=r.bottom-t.top+"px":h=t.bottom-r.top+"px"}return{top:c,bottom:h,maxWidth:l,class:a?s?"left-narrow":"right-narrow":o?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,t,i){const r=document.createElement("ul");r.id=t,r.setAttribute("role","listbox"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let n=i.from;nnew PW(e,O)}function SW(O,e){let t=O.getBoundingClientRect(),i=e.getBoundingClientRect();i.topt.bottom&&(O.scrollTop+=i.bottom-t.bottom)}function gQ(O){return(O.boost||0)*100+(O.apply?10:0)+(O.info?5:0)+(O.type?1:0)}function XW(O,e){let t=[],i=0;for(let o of O)if(o.hasResult())if(o.result.filter===!1){let a=o.result.getMatch;for(let l of o.result.options){let c=[1e9-i++];if(a)for(let h of a(l))c.push(h);t.push(new dQ(l,o,c))}}else{let a=new pW(e.sliceDoc(o.from,o.to)),l;for(let c of o.result.options)(l=a.match(c.label))&&(c.boost!=null&&(l[0]+=c.boost),t.push(new dQ(c,o,l)))}let r=[],n=null,s=e.facet(Zt).compareCompletions;for(let o of t.sort((a,l)=>l.match[0]-a.match[0]||s(a.completion,l.completion)))!n||n.label!=o.completion.label||n.detail!=o.completion.detail||n.type!=null&&o.completion.type!=null&&n.type!=o.completion.type||n.apply!=o.completion.apply?r.push(o):gQ(o.completion)>gQ(n)&&(r[r.length-1]=o),n=o.completion;return r}class bi{constructor(e,t,i,r,n,s){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=r,this.selected=n,this.disabled=s}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new bi(this.options,SQ(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,r,n){let s=XW(e,t);if(!s.length)return r&&e.some(a=>a.state==1)?new bi(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let o=t.facet(Zt).selectOnOpen?0:-1;if(r&&r.selected!=o&&r.selected!=-1){let a=r.options[r.selected].completion;for(let l=0;ll.hasResult()?Math.min(a,l.from):a,1e8),create:gW(bt),above:n.aboveCursor},r?r.timestamp:Date.now(),o,!1)}map(e){return new bi(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class js{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new js(bW,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(Zt),n=(i.override||t.languageDataAt("autocomplete",jO(t)).map(dW)).map(o=>(this.active.find(l=>l.source==o)||new ut(o,this.active.some(l=>l.state!=0)?1:0)).update(e,i));n.length==this.active.length&&n.every((o,a)=>o==this.active[a])&&(n=this.active);let s=this.open;s&&e.docChanged&&(s=s.map(e.changes)),e.selection||n.some(o=>o.hasResult()&&e.changes.touchesRange(o.from,o.to))||!yW(n,this.active)?s=bi.build(n,t,this.id,s,i):s&&s.disabled&&!n.some(o=>o.state==1)&&(s=null),!s&&n.every(o=>o.state!=1)&&n.some(o=>o.hasResult())&&(n=n.map(o=>o.hasResult()?new ut(o.source,0):o));for(let o of e.effects)o.is(Ym)&&(s=s&&s.setSelected(o.value,this.id));return n==this.active&&s==this.open?this:new js(n,this.id,s)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:xW}}function yW(O,e){if(O==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=O+"-"+e),t}const bW=[];function bl(O){return O.isUserEvent("input.type")?"input":O.isUserEvent("delete.backward")?"delete":null}class ut{constructor(e,t,i=-1){this.source=e,this.state=t,this.explicitPos=i}hasResult(){return!1}update(e,t){let i=bl(e),r=this;i?r=r.handleUserEvent(e,i,t):e.docChanged?r=r.handleChange(e):e.selection&&r.state!=0&&(r=new ut(r.source,0));for(let n of e.effects)if(n.is(Ic))r=new ut(r.source,1,n.value?jO(e.state):-1);else if(n.is(Gs))r=new ut(r.source,0);else if(n.is(Tm))for(let s of n.value)s.source==r.source&&(r=s);return r}handleUserEvent(e,t,i){return t=="delete"||!i.activateOnTyping?this.map(e.changes):new ut(this.source,1)}handleChange(e){return e.changes.touchesRange(jO(e.startState))?new ut(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ut(this.source,this.state,e.mapPos(this.explicitPos))}}class br extends ut{constructor(e,t,i,r,n){super(e,2,t),this.result=i,this.from=r,this.to=n}hasResult(){return!0}handleUserEvent(e,t,i){var r;let n=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1),o=jO(e.state);if((this.explicitPos<0?o<=n:os||t=="delete"&&jO(e.startState)==this.from)return new ut(this.source,t=="input"&&i.activateOnTyping?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),l;return wW(this.result.validFor,e.state,n,s)?new br(this.source,a,this.result,n,s):this.result.update&&(l=this.result.update(this.result,n,s,new xm(e.state,o,a>=0)))?new br(this.source,a,l,l.from,(r=l.to)!==null&&r!==void 0?r:jO(e.state)):new ut(this.source,1,a)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new ut(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new br(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function wW(O,e,t,i){if(!O)return!1;let r=e.sliceDoc(t,i);return typeof O=="function"?O(r,t,i,e):bm(O,!0).test(r)}const Ic=B.define(),Gs=B.define(),Tm=B.define({map(O,e){return O.map(t=>t.map(e))}}),Ym=B.define(),bt=Ae.define({create(){return js.start()},update(O,e){return O.update(e)},provide:O=>[gc.from(O,e=>e.tooltip),z.contentAttributes.from(O,e=>e.attrs)]});function Gn(O,e="option"){return t=>{let i=t.state.field(bt,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+r*(O?1:-1):O?0:s-1;return o<0?o=e=="page"?0:s-1:o>=s&&(o=e=="page"?s-1:0),t.dispatch({effects:Ym.of(o)}),!0}}const WW=O=>{let e=O.state.field(bt,!1);return O.state.readOnly||!e||!e.open||e.open.selected<0||Date.now()-e.open.timestampO.state.field(bt,!1)?(O.dispatch({effects:Ic.of(!0)}),!0):!1,YW=O=>{let e=O.state.field(bt,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(O.dispatch({effects:Gs.of(null)}),!0)};class vW{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const XQ=50,qW=50,kW=1e3,ZW=qe.fromClass(class{constructor(O){this.view=O,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of O.state.field(bt).active)e.state==1&&this.startQuery(e)}update(O){let e=O.state.field(bt);if(!O.selectionSet&&!O.docChanged&&O.startState.field(bt)==e)return;let t=O.transactions.some(i=>(i.selection||i.docChanged)&&!bl(i));for(let i=0;iqW&&Date.now()-r.time>kW){for(let n of r.context.abortListeners)try{n()}catch(s){xt(this.view.state,s)}r.context.abortListeners=null,this.running.splice(i--,1)}else r.updates.push(...O.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(i=>i.state==1&&!this.running.some(r=>r.active.source==i.source))?setTimeout(()=>this.startUpdate(),XQ):-1,this.composing!=0)for(let i of O.transactions)bl(i)=="input"?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:O}=this.view,e=O.field(bt);for(let t of e.active)t.state==1&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t)}startQuery(O){let{state:e}=this.view,t=jO(e),i=new xm(e,t,O.explicitPos==t),r=new vW(O,i);this.running.push(r),Promise.resolve(O.source(i)).then(n=>{r.context.aborted||(r.done=n||null,this.scheduleAccept())},n=>{this.view.dispatch({effects:Gs.of(null)}),xt(this.view.state,n)})}scheduleAccept(){this.running.every(O=>O.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),XQ))}accept(){var O;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Zt);for(let i=0;is.source==r.active.source);if(n&&n.state==1)if(r.done==null){let s=new ut(r.active.source,0);for(let o of r.updates)s=s.update(o,t);s.state!=1&&e.push(s)}else this.startQuery(n)}e.length&&this.view.dispatch({effects:Tm.of(e)})}},{eventHandlers:{blur(){let O=this.view.state.field(bt,!1);O&&O.tooltip&&this.view.state.facet(Zt).closeOnBlur&&this.view.dispatch({effects:Gs.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ic.of(!1)}),20),this.composing=0}}}),vm=z.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:`${400}px`,boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:`${30}px`},".cm-completionInfo.cm-completionInfo-right-narrow":{left:`${30}px`},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class RW{constructor(e,t,i,r){this.field=e,this.line=t,this.from=i,this.to=r}}class Ec{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){let t=e.mapPos(this.from,-1,Fe.TrackDel),i=e.mapPos(this.to,1,Fe.TrackDel);return t==null||i==null?null:new Ec(this.field,t,i)}}class Ac{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let i=[],r=[t],n=e.doc.lineAt(t),s=/^\s*/.exec(n.text)[0];for(let a of this.lines){if(i.length){let l=s,c=/^\t*/.exec(a)[0].length;for(let h=0;hnew Ec(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:i,ranges:o}}static parse(e){let t=[],i=[],r=[],n;for(let s of e.split(/\r\n?|\n/)){for(;n=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(s);){let o=n[1]?+n[1]:null,a=n[2]||n[3]||"",l=-1;for(let c=0;c=l&&h.field++}r.push(new RW(l,i.length,n.index,n.index+a.length)),s=s.slice(0,n.index)+a+s.slice(n.index+n[0].length)}for(let o;o=/\\([{}])/.exec(s);){s=s.slice(0,o.index)+o[1]+s.slice(o.index+o[0].length);for(let a of r)a.line==i.length&&a.from>o.index&&(a.from--,a.to--)}i.push(s)}return new Ac(i,r)}}let UW=I.widget({widget:new class extends hO{toDOM(){let O=document.createElement("span");return O.className="cm-snippetFieldPosition",O}ignoreEvent(){return!1}}}),VW=I.mark({class:"cm-snippetField"});class er{constructor(e,t){this.ranges=e,this.active=t,this.deco=I.set(e.map(i=>(i.from==i.to?UW:VW).range(i.from,i.to)))}map(e){let t=[];for(let i of this.ranges){let r=i.map(e);if(!r)return null;t.push(r)}return new er(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(i=>i.field==this.active&&i.from<=t.from&&i.to>=t.to))}}const fn=B.define({map(O,e){return O&&O.map(e)}}),zW=B.define(),Br=Ae.define({create(){return null},update(O,e){for(let t of e.effects){if(t.is(fn))return t.value;if(t.is(zW)&&O)return new er(O.ranges,t.value)}return O&&e.docChanged&&(O=O.map(e.changes)),O&&e.selection&&!O.selectionInsideField(e.selection)&&(O=null),O},provide:O=>z.decorations.from(O,e=>e?e.deco:I.none)});function Dc(O,e){return X.create(O.filter(t=>t.field==e).map(t=>X.range(t.from,t.to)))}function _W(O){let e=Ac.parse(O);return(t,i,r,n)=>{let{text:s,ranges:o}=e.instantiate(t.state,r),a={changes:{from:r,to:n,insert:le.of(s)},scrollIntoView:!0,annotations:wm.of(i)};if(o.length&&(a.selection=Dc(o,0)),o.length>1){let l=new er(o,0),c=a.effects=[fn.of(l)];t.state.field(Br,!1)===void 0&&c.push(B.appendConfig.of([Br,EW,AW,vm]))}t.dispatch(t.state.update(a))}}function qm(O){return({state:e,dispatch:t})=>{let i=e.field(Br,!1);if(!i||O<0&&i.active==0)return!1;let r=i.active+O,n=O>0&&!i.ranges.some(s=>s.field==r+O);return t(e.update({selection:Dc(i.ranges,r),effects:fn.of(n?null:new er(i.ranges,r))})),!0}}const jW=({state:O,dispatch:e})=>O.field(Br,!1)?(e(O.update({effects:fn.of(null)})),!0):!1,GW=qm(1),CW=qm(-1),IW=[{key:"Tab",run:GW,shift:CW},{key:"Escape",run:jW}],yQ=_.define({combine(O){return O.length?O[0]:IW}}),EW=MO.highest(Ki.compute([yQ],O=>O.facet(yQ)));function Re(O,e){return Object.assign(Object.assign({},e),{apply:_W(O)})}const AW=z.domEventHandlers({mousedown(O,e){let t=e.state.field(Br,!1),i;if(!t||(i=e.posAtCoords({x:O.clientX,y:O.clientY}))==null)return!1;let r=t.ranges.find(n=>n.from<=i&&n.to>=i);return!r||r.field==t.active?!1:(e.dispatch({selection:Dc(t.ranges,r.field),effects:fn.of(t.ranges.some(n=>n.field>r.field)?new er(t.ranges,r.field):null)}),!0)}}),Hr={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ai=B.define({map(O,e){let t=e.mapPos(O,-1,Fe.TrackAfter);return t??void 0}}),Mc=B.define({map(O,e){return e.mapPos(O)}}),Nc=new class extends fi{};Nc.startSide=1;Nc.endSide=-1;const km=Ae.define({create(){return ce.empty},update(O,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,i=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(i,-1)&&(O=ce.empty)}O=O.map(e.changes);for(let t of e.effects)t.is(ai)?O=O.update({add:[Nc.range(t.value,t.value+1)]}):t.is(Mc)&&(O=O.update({filter:i=>i!=t.value}));return O}});function DW(){return[NW,km]}const ta="()[]{}<>";function Zm(O){for(let e=0;e{if((MW?O.composing:O.compositionStarted)||O.state.readOnly)return!1;let r=O.state.selection.main;if(i.length>2||i.length==2&&wt(Be(i,0))==1||e!=r.from||t!=r.to)return!1;let n=HW(O.state,i);return n?(O.dispatch(n),!0):!1}),LW=({state:O,dispatch:e})=>{if(O.readOnly)return!1;let i=Rm(O,O.selection.main.head).brackets||Hr.brackets,r=null,n=O.changeByRange(s=>{if(s.empty){let o=FW(O.doc,s.head);for(let a of i)if(a==o&&mo(O.doc,s.head)==Zm(Be(a,0)))return{changes:{from:s.head-a.length,to:s.head+a.length},range:X.cursor(s.head-a.length)}}return{range:r=s}});return r||e(O.update(n,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},BW=[{key:"Backspace",run:LW}];function HW(O,e){let t=Rm(O,O.selection.main.head),i=t.brackets||Hr.brackets;for(let r of i){let n=Zm(Be(r,0));if(e==r)return n==r?e0(O,r,i.indexOf(r+r+r)>-1,t):KW(O,r,n,t.before||Hr.before);if(e==n&&Um(O,O.selection.main.from))return JW(O,r,n)}return null}function Um(O,e){let t=!1;return O.field(km).between(0,O.doc.length,i=>{i==e&&(t=!0)}),t}function mo(O,e){let t=O.sliceString(e,e+2);return t.slice(0,wt(Be(t,0)))}function FW(O,e){let t=O.sliceString(e-2,e);return wt(Be(t,0))==t.length?t:t.slice(1)}function KW(O,e,t,i){let r=null,n=O.changeByRange(s=>{if(!s.empty)return{changes:[{insert:e,from:s.from},{insert:t,from:s.to}],effects:ai.of(s.to+e.length),range:X.range(s.anchor+e.length,s.head+e.length)};let o=mo(O.doc,s.head);return!o||/\s/.test(o)||i.indexOf(o)>-1?{changes:{insert:e+t,from:s.head},effects:ai.of(s.head+e.length),range:X.cursor(s.head+e.length)}:{range:r=s}});return r?null:O.update(n,{scrollIntoView:!0,userEvent:"input.type"})}function JW(O,e,t){let i=null,r=O.selection.ranges.map(n=>n.empty&&mo(O.doc,n.head)==t?X.cursor(n.head+t.length):i=n);return i?null:O.update({selection:X.create(r,O.selection.mainIndex),scrollIntoView:!0,effects:O.selection.ranges.map(({from:n})=>Mc.of(n))})}function e0(O,e,t,i){let r=i.stringPrefixes||Hr.stringPrefixes,n=null,s=O.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:e,from:o.to}],effects:ai.of(o.to+e.length),range:X.range(o.anchor+e.length,o.head+e.length)};let a=o.head,l=mo(O.doc,a),c;if(l==e){if(xQ(O,a))return{changes:{insert:e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)};if(Um(O,a)){let h=t&&O.sliceDoc(a,a+e.length*3)==e+e+e;return{range:X.cursor(a+e.length*(h?3:1)),effects:Mc.of(a)}}}else{if(t&&O.sliceDoc(a-2*e.length,a)==e+e&&(c=bQ(O,a-2*e.length,r))>-1&&xQ(O,c))return{changes:{insert:e+e+e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)};if(O.charCategorizer(a)(l)!=xe.Word&&bQ(O,a,r)>-1&&!t0(O,a,e,r))return{changes:{insert:e+e,from:a},effects:ai.of(a+e.length),range:X.cursor(a+e.length)}}return{range:n=o}});return n?null:O.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function xQ(O,e){let t=ue(O).resolveInner(e+1);return t.parent&&t.from==e}function t0(O,e,t,i){let r=ue(O).resolveInner(e,-1),n=i.reduce((s,o)=>Math.max(s,o.length),0);for(let s=0;s<5;s++){let o=O.sliceDoc(r.from,Math.min(r.to,r.from+t.length+n)),a=o.indexOf(t);if(!a||a>-1&&i.indexOf(o.slice(0,a))>-1){let c=r.firstChild;for(;c&&c.from==r.from&&c.to-c.from>t.length+a;){if(O.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let l=r.to==e&&r.parent;if(!l)break;r=l}return!1}function bQ(O,e,t){let i=O.charCategorizer(e);if(i(O.sliceDoc(e-1,e))!=xe.Word)return e;for(let r of t){let n=e-r.length;if(O.sliceDoc(n,e)==r&&i(O.sliceDoc(n-1,n))!=xe.Word)return n}return-1}function O0(O={}){return[bt,Zt.of(O),ZW,i0,vm]}const Vm=[{key:"Ctrl-Space",run:TW},{key:"Escape",run:YW},{key:"ArrowDown",run:Gn(!0)},{key:"ArrowUp",run:Gn(!1)},{key:"PageDown",run:Gn(!0,"page")},{key:"PageUp",run:Gn(!1,"page")},{key:"Enter",run:WW}],i0=MO.highest(Ki.computeN([Zt],O=>O.facet(Zt).defaultKeymap?[Vm]:[]));class r0{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class ri{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let r=e,n=i.facet(wi).markerFilter;n&&(r=n(r));let s=I.set(r.map(o=>o.from==o.to||o.from==o.to-1&&i.doc.lineAt(o.from).to==o.from?I.widget({widget:new u0(o),diagnostic:o}).range(o.from):I.mark({attributes:{class:"cm-lintRange cm-lintRange-"+o.severity},diagnostic:o}).range(o.from,o.to)),!0);return new ri(s,t,Mi(s))}}function Mi(O,e=null,t=0){let i=null;return O.between(t,1e9,(r,n,{spec:s})=>{if(!(e&&s.diagnostic!=e))return i=new r0(r,n,s.diagnostic),!1}),i}function n0(O,e){return!!(O.effects.some(t=>t.is(Lc))||O.changes.touchesRange(e.pos))}function zm(O,e){return O.field(yt,!1)?e:e.concat(B.appendConfig.of([yt,z.decorations.compute([yt],t=>{let{selected:i,panel:r}=t.field(yt);return!i||!r||i.from==i.to?I.none:I.set([o0.range(i.from,i.to)])}),Qx(a0,{hideOn:n0}),d0]))}function s0(O,e){return{effects:zm(O,[Lc.of(e)])}}const Lc=B.define(),Bc=B.define(),_m=B.define(),yt=Ae.define({create(){return new ri(I.none,null,null)},update(O,e){if(e.docChanged){let t=O.diagnostics.map(e.changes),i=null;if(O.selected){let r=e.changes.mapPos(O.selected.from,1);i=Mi(t,O.selected.diagnostic,r)||Mi(t,null,r)}O=new ri(t,O.panel,i)}for(let t of e.effects)t.is(Lc)?O=ri.init(t.value,O.panel,e.state):t.is(Bc)?O=new ri(O.diagnostics,t.value?Po.open:null,O.selected):t.is(_m)&&(O=new ri(O.diagnostics,O.panel,t.value));return O},provide:O=>[Ar.from(O,e=>e.panel),z.decorations.from(O,e=>e.diagnostics)]}),o0=I.mark({class:"cm-lintRange cm-lintRange-active"});function a0(O,e,t){let{diagnostics:i}=O.state.field(yt),r=[],n=2e8,s=0;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,l,{spec:c})=>{e>=a&&e<=l&&(a==l||(e>a||t>0)&&(eGm(O,t,!1)))}const c0=O=>{let e=O.state.field(yt,!1);(!e||!e.panel)&&O.dispatch({effects:zm(O.state,[Bc.of(!0)])});let t=Er(O,Po.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},wQ=O=>{let e=O.state.field(yt,!1);return!e||!e.panel?!1:(O.dispatch({effects:Bc.of(!1)}),!0)},h0=O=>{let e=O.state.field(yt,!1);if(!e)return!1;let t=O.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(O.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},f0=[{key:"Mod-Shift-m",run:c0,preventDefault:!0},{key:"F8",run:h0}],Q0=qe.fromClass(class{constructor(O){this.view=O,this.timeout=-1,this.set=!0;let{delay:e}=O.state.facet(wi);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let O=Date.now();if(OPromise.resolve(i(this.view)))).then(i=>{let r=i.reduce((n,s)=>n.concat(s));this.view.state.doc==e.doc&&this.view.dispatch(s0(this.view.state,r))},i=>{xt(this.view.state,i)})}}update(O){let e=O.state.facet(wi);(O.docChanged||e!=O.startState.facet(wi)||e.needsRefresh&&e.needsRefresh(O))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),wi=_.define({combine(O){return Object.assign({sources:O.map(e=>e.source)},cO(O.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t}))},enables:Q0});function jm(O){let e=[];if(O)e:for(let{name:t}of O){for(let i=0;in.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function Gm(O,e,t){var i;let r=t?jm(e.actions):[];return me("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},me("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(i=e.actions)===null||i===void 0?void 0:i.map((n,s)=>{let o=!1,a=Q=>{if(Q.preventDefault(),o)return;o=!0;let u=Mi(O.state.field(yt).diagnostics,e);u&&n.apply(O,u.from,u.to)},{name:l}=n,c=r[s]?l.indexOf(r[s]):-1,h=c<0?l:[l.slice(0,c),me("u",l.slice(c,c+1)),l.slice(c+1)];return me("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${l}${c<0?"":` (access key "${r[s]})"`}.`},h)}),e.source&&me("div",{class:"cm-diagnosticSource"},e.source))}class u0 extends hO{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return me("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class WQ{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Gm(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Po{constructor(e){this.view=e,this.items=[];let t=r=>{if(r.keyCode==27)wQ(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],s=jm(n.actions);for(let o=0;o{for(let n=0;nwQ(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(yt).selected;if(!e)return-1;for(let t=0;t{let l=-1,c;for(let h=i;hi&&(this.items.splice(i,l-i),r=!0)),t&&c.diagnostic==t.diagnostic?c.dom.hasAttribute("aria-selected")||(c.dom.setAttribute("aria-selected","true"),n=c):c.dom.hasAttribute("aria-selected")&&c.dom.removeAttribute("aria-selected"),i++});i({sel:n.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:o})=>{s.topo.bottom&&(this.list.scrollTop+=s.bottom-o.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(yt),i=Mi(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:_m.of(i)})}static open(e){return new Po(e)}}function $0(O,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(O)}')`}function Oa(O){return $0(``,'width="6" height="3"')}const d0=z.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Oa("#d11")},".cm-lintRange-warning":{backgroundImage:Oa("orange")},".cm-lintRange-info":{backgroundImage:Oa("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),p0=(()=>[yx(),wx(),E1(),Cb(),ub(),k1(),z1(),te.allowMultipleSelections.of(!0),ib(),kp(mb,{fallback:!0}),bb(),DW(),O0(),ix(),sx(),B1(),Dw(),Ki.of([...BW,...jw,...cW,...Hb,...hb,...Vm,...f0])])();/*! +* VueCodemirror v6.1.1 +* Copyright (c) Surmon. All rights reserved. +* Released under the MIT License. +* Surmon +*/var m0=Object.freeze({autofocus:!1,disabled:!1,indentWithTab:!0,tabSize:2,placeholder:"",autoDestroy:!0,extensions:[p0]}),P0=Symbol("vue-codemirror-global-config"),ot,g0=function(O){var e=O.onUpdate,t=O.onChange,i=O.onFocus,r=O.onBlur,n=function(s,o){var a={};for(var l in s)Object.prototype.hasOwnProperty.call(s,l)&&o.indexOf(l)<0&&(a[l]=s[l]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function"){var c=0;for(l=Object.getOwnPropertySymbols(s);ct%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let r=e.parser.context;return new Cs(e,[],t,i,i,0,[],0,r?new YQ(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,r=e&65535,{parser:n}=this.p,s=n.dynamicPrecedence(r);if(s&&(this.score+=s),i==0){this.pushState(n.getGoto(this.state,r,!0),this.reducePos),r=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(r,a)}storeNode(e,t,i,r=4,n=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&s.buffer[o-4]==0&&s.buffer[o-1]>-1){if(t==i)return;if(s.buffer[o-2]>=t){s.buffer[o-2]=i;return}}}if(!n||this.pos==i)this.buffer.push(e,t,i,r);else{let s=this.buffer.length;if(s>0&&this.buffer[s-4]!=0)for(;s>0&&this.buffer[s-2]>i;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,r>4&&(r-=4);this.buffer[s]=e,this.buffer[s+1]=t,this.buffer[s+2]=i,this.buffer[s+3]=r}}shift(e,t,i){let r=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=i,this.shiftContext(t,r),t<=this.p.parser.maxNode&&this.buffer.push(t,r,i,4);else{let n=e,{parser:s}=this.p;(i>this.pos||t<=s.maxNode)&&(this.pos=i,s.stateFlag(n,1)||(this.reducePos=i)),this.pushState(n,r),this.shiftContext(t,r),t<=s.maxNode&&this.buffer.push(t,r,i,4)}}apply(e,t,i){e&65536?this.reduce(e):this.shift(e,t,i)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(i,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new Cs(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new W0(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if(!(i&65536))return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let r=[];for(let n=0,s;na&1&&o==s)||r.push(t[n],s)}t=r}let i=[];for(let r=0;r>19,r=e&65535,n=this.stack.length-i*3;if(n<0||t.getGoto(this.stack[n],r,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class YQ{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}var vQ;(function(O){O[O.Insert=200]="Insert",O[O.Delete=190]="Delete",O[O.Reduce=100]="Reduce",O[O.MaxNext=4]="MaxNext",O[O.MaxInsertStackDepth=300]="MaxInsertStackDepth",O[O.DampenInsertStackDepth=120]="DampenInsertStackDepth",O[O.MinBigReduction=2e3]="MinBigReduction"})(vQ||(vQ={}));class W0{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}}class Is{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Is(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Is(this.stack,this.pos,this.index)}}function pr(O,e=Uint16Array){if(typeof O!="string")return O;let t=null;for(let i=0,r=0;i=92&&s--,s>=34&&s--;let a=s-32;if(a>=46&&(a-=46,o=!0),n+=a,o)break;n*=46}t?t[r++]=n:t=new e(n)}return t}class os{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const qQ=new os;class T0{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=qQ,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,r=this.rangeIndex,n=this.pos+e;for(;ni.to:n>=i.to;){if(r==this.ranges.length-1)return null;let s=this.ranges[++r];n+=s.from-i.to,i=s}return n}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,r;if(t>=0&&t=this.chunk2Pos&&io.to&&(this.chunk2=this.chunk2.slice(0,o.to-i)),r=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),r}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=qQ,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(i+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return i}}class Ui{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Im(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}Ui.prototype.contextual=Ui.prototype.fallback=Ui.prototype.extend=!1;class pO{constructor(e,t,i){this.precTable=t,this.elseToken=i,this.data=typeof e=="string"?pr(e):e}token(e,t){let i=e.pos,r;for(;r=e.pos,Im(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(r+1,e.token)}r>i&&(e.reset(i,e.token),e.acceptToken(this.elseToken,r-i))}}pO.prototype.contextual=Ui.prototype.fallback=Ui.prototype.extend=!1;class de{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Im(O,e,t,i,r,n){let s=0,o=1<0){let $=O[u];if(a.allows($)&&(e.token.value==-1||e.token.value==$||Y0($,e.token.value,r,n))){e.acceptToken($);break}}let c=e.next,h=0,Q=O[s+2];if(e.next<0&&Q>h&&O[l+Q*3-3]==65535&&O[l+Q*3-3]==65535){s=O[l+Q*3-1];continue e}for(;h>1,$=l+u+(u<<1),d=O[$],p=O[$+1]||65536;if(c=p)h=u+1;else{s=O[$+2],e.advance();continue e}}break}}function kQ(O,e,t){for(let i=e,r;(r=O[i])!=65535;i++)if(r==t)return i-e;return-1}function Y0(O,e,t,i){let r=kQ(t,i,e);return r<0||kQ(t,i,O)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(O.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:O.length}}let v0=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?RQ(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?RQ(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=s,null;if(n instanceof he){if(s==e){if(s=Math.max(this.safeFrom,e)&&(this.trees.push(n),this.start.push(s),this.index.push(0))}else this.index[t]++,this.nextStart=s+n.length}}};class q0{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new os)}getActions(e){let t=0,i=null,{parser:r}=e.p,{tokenizers:n}=r,s=r.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,a=0;for(let l=0;lh.end+25&&(a=Math.max(h.lookAhead,a)),h.value!=0)){let Q=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!c.extend&&(i=h,t>Q))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new os,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new os,{pos:i,p:r}=e;return t.start=i,t.end=Math.min(i+1,r.stream.end),t.value=i==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,i){let r=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(r,e),i),e.value>-1){let{parser:n}=i.p;for(let s=0;s=0&&i.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,i,r){for(let n=0;ne.bufferLength*4?new v0(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],r,n;if(this.bigReductionCount>300&&e.length==1){let[s]=e;for(;s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let s=0;st)i.push(o);else{if(this.advanceStack(o,i,e))continue;{r||(r=[],n=[]),r.push(o);let a=this.tokens.getMainToken(o);n.push(a.value,a.end)}}break}}if(!i.length){let s=r&&R0(r);if(s)return this.stackToTree(s);if(this.parser.strict)throw zt&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let s=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,n,i);if(s)return this.stackToTree(s.forceAll())}if(this.recovering){let s=this.recovering==1?1:this.recovering*3;if(i.length>s)for(i.sort((o,a)=>a.score-o.score);i.length>s;)i.pop();i.some(o=>o.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let s=0;s500&&l.buffer.length>500)if((o.score-l.score||o.buffer.length-l.buffer.length)>0)i.splice(a--,1);else{i.splice(s--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let s=1;s ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,c=l?e.curContext.hash:0;for(let h=this.fragments.nodeAt(r);h;){let Q=this.parser.nodeSet.types[h.type.id]==h.type?n.getGoto(e.state,h.type.id):-1;if(Q>-1&&h.length&&(!l||(h.prop(M.contextHash)||0)==c))return e.useNode(h,Q),zt&&console.log(s+this.stackID(e)+` (via reuse of ${n.getName(h.type.id)})`),!0;if(!(h instanceof he)||h.children.length==0||h.positions[0]>0)break;let u=h.children[0];if(u instanceof he&&h.positions[0]==0)h=u;else break}}let o=n.stateSlot(e.state,4);if(o>0)return e.reduce(o),zt&&console.log(s+this.stackID(e)+` (via always-reduce ${n.getName(o&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let l=0;lr?t.push($):i.push($)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return VQ(e,t),!0}}runRecovery(e,t,i){let r=null,n=!1;for(let s=0;s ":"";if(o.deadEnd&&(n||(n=!0,o.restart(),zt&&console.log(c+this.stackID(o)+" (restarted)"),this.advanceFully(o,i))))continue;let h=o.split(),Q=c;for(let u=0;h.forceReduce()&&u<10&&(zt&&console.log(Q+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));u++)zt&&(Q=this.stackID(h)+" -> ");for(let u of o.recoverByInsert(a))zt&&console.log(c+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,i);this.stream.end>o.pos?(l==o.pos&&(l++,a=0),o.recoverByDelete(a,l),zt&&console.log(c+this.stackID(o)+` (via recover-delete ${this.parser.getName(a)})`),VQ(o,i)):(!r||r.scoreO;class go{constructor(e){this.start=e.start,this.shift=e.shift||ra,this.reduce=e.reduce||ra,this.reuse=e.reuse||ra,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Ee extends wc{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (${14})`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let o=0;oe.topRules[o][1]),r=[];for(let o=0;o=0)n(c,a,o[l++]);else{let h=o[l+-c];for(let Q=-c;Q>0;Q--)n(o[l++],a,h);l++}}}this.nodeSet=new on(t.map((o,a)=>je.define({name:a>=this.minRepeatTerm?void 0:o,id:a,props:r[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=dp;let s=pr(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new Ui(s,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let r=new k0(this,e,t,i);for(let n of this.wrappers)r=n(r,e,t,i);return r}getGoto(e,t,i=!1){let r=this.goto;if(t>=r[0])return-1;for(let n=r[t+1];;){let s=r[n++],o=s&1,a=r[n++];if(o&&i)return a;for(let l=n+(s>>1);n0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=mO(this.data,i+2);else return!1;if(t==mO(this.data,i+1))return!0}}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=mO(this.data,i+2);else break;if(!(this.data[i+2]&1)){let r=this.data[i+1];t.some((n,s)=>s&1&&n==r)||t.push(this.data[i],r)}}return t}configure(e){let t=Object.assign(Object.create(Ee.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let r=e.tokenizers.find(n=>n.from==i);return r?r.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,r)=>{let n=e.specializers.find(o=>o.from==i.external);if(!n)return i;let s=Object.assign(Object.assign({},i),{external:n.to});return t.specializers[r]=zQ(s),s})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let n of e.split(" ")){let s=t.indexOf(n);s>=0&&(i[s]=!0)}let r=null;for(let n=0;ni)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoreO.external(t,i)<<1|e}return O.get}const _Q=301,jQ=1,U0=2,GQ=302,V0=304,z0=305,_0=3,j0=4,G0=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Em=125,C0=59,CQ=47,I0=42,E0=43,A0=45,D0=new go({start:!1,shift(O,e){return e==_0||e==j0||e==V0?O:e==z0},strict:!1}),M0=new de((O,e)=>{let{next:t}=O;(t==Em||t==-1||e.context)&&e.canShift(GQ)&&O.acceptToken(GQ)},{contextual:!0,fallback:!0}),N0=new de((O,e)=>{let{next:t}=O,i;G0.indexOf(t)>-1||t==CQ&&((i=O.peek(1))==CQ||i==I0)||t!=Em&&t!=C0&&t!=-1&&!e.context&&e.canShift(_Q)&&O.acceptToken(_Q)},{contextual:!0}),L0=new de((O,e)=>{let{next:t}=O;if((t==E0||t==A0)&&(O.advance(),t==O.next)){O.advance();let i=!e.context&&e.canShift(jQ);O.acceptToken(i?jQ:U0)}},{contextual:!0}),B0=De({"get set async static":f.modifier,"for while do if else switch try catch finally return throw break continue default case":f.controlKeyword,"in of await yield void typeof delete instanceof":f.operatorKeyword,"let var const function class extends":f.definitionKeyword,"import export from":f.moduleKeyword,"with debugger as new":f.keyword,TemplateString:f.special(f.string),super:f.atom,BooleanLiteral:f.bool,this:f.self,null:f.null,Star:f.modifier,VariableName:f.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":f.function(f.variableName),VariableDefinition:f.definition(f.variableName),Label:f.labelName,PropertyName:f.propertyName,PrivatePropertyName:f.special(f.propertyName),"CallExpression/MemberExpression/PropertyName":f.function(f.propertyName),"FunctionDeclaration/VariableDefinition":f.function(f.definition(f.variableName)),"ClassDeclaration/VariableDefinition":f.definition(f.className),PropertyDefinition:f.definition(f.propertyName),PrivatePropertyDefinition:f.definition(f.special(f.propertyName)),UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Number:f.number,String:f.string,Escape:f.escape,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,RegExp:f.regexp,Equals:f.definitionOperator,Arrow:f.function(f.punctuation),": Spread":f.punctuation,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,"InterpolationStart InterpolationEnd":f.special(f.brace),".":f.derefOperator,", ;":f.separator,"@":f.meta,TypeName:f.typeName,TypeDefinition:f.definition(f.typeName),"type enum interface implements namespace module declare":f.definitionKeyword,"abstract global Privacy readonly override":f.modifier,"is keyof unique infer":f.operatorKeyword,JSXAttributeValue:f.attributeValue,JSXText:f.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":f.angleBracket,"JSXIdentifier JSXNameSpacedName":f.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":f.attributeName,"JSXBuiltin/JSXIdentifier":f.standard(f.tagName)}),H0={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:219,private:219,protected:219,readonly:221,instanceof:240,satisfies:243,in:244,const:246,import:278,keyof:333,unique:337,infer:343,is:379,abstract:399,implements:401,type:403,let:406,var:408,interface:415,enum:419,namespace:425,module:427,declare:431,global:435,for:456,of:465,while:468,with:472,do:476,if:480,else:482,switch:486,case:492,try:498,catch:502,finally:506,return:510,throw:514,break:518,continue:522,debugger:526},F0={__proto__:null,async:117,get:119,set:121,public:181,private:181,protected:181,static:183,abstract:185,override:187,readonly:193,accessor:195,new:383},K0={__proto__:null,"<":137},J0=Ee.deserialize({version:14,states:"$BhO`QUOOO%QQUOOO'TQWOOP(_OSOOO*mQ(CjO'#CfO*tOpO'#CgO+SO!bO'#CgO+bO07`O'#DZO-sQUO'#DaO.TQUO'#DlO%QQUO'#DvO0[QUO'#EOOOQ(CY'#EW'#EWO0rQSO'#ETOOQO'#I_'#I_O0zQSO'#GjOOQO'#Eh'#EhO1VQSO'#EgO1[QSO'#EgO3^Q(CjO'#JbO5}Q(CjO'#JcO6kQSO'#FVO6pQ#tO'#FnOOQ(CY'#F_'#F_O6{O&jO'#F_O7ZQ,UO'#FuO8qQSO'#FtOOQ(CY'#Jc'#JcOOQ(CW'#Jb'#JbOOQQ'#J|'#J|O8vQSO'#IOO8{Q(C[O'#IPOOQQ'#JO'#JOOOQQ'#IT'#ITQ`QUOOO%QQUO'#DnO9TQUO'#DzO%QQUO'#D|O9[QSO'#GjO9aQ,UO'#ClO9oQSO'#EfO9zQSO'#EqO:PQ,UO'#F^O:nQSO'#GjO:sQSO'#GnO;OQSO'#GnO;^QSO'#GqO;^QSO'#GrO;^QSO'#GtO9[QSO'#GwO;}QSO'#GzO=`QSO'#CbO=pQSO'#HXO=xQSO'#H_O=xQSO'#HaO`QUO'#HcO=xQSO'#HeO=xQSO'#HhO=}QSO'#HnO>SQ(C]O'#HtO%QQUO'#HvO>_Q(C]O'#HxO>jQ(C]O'#HzO8{Q(C[O'#H|O>uQ(CjO'#CfO?wQWO'#DfQOQSOOO@_QSO'#EPO9aQ,UO'#EfO@jQSO'#EfO@uQ`O'#F^OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jf'#JfO%QQUO'#JfOBOQWO'#E_OOQ(CW'#E^'#E^OBYQ(C`O'#E_OBtQWO'#ESOOQO'#Ji'#JiOCYQWO'#ESOCgQWO'#E_OC}QWO'#EeODQQWO'#E_O@}QWO'#E_OBtQWO'#E_PDkO?MpO'#C`POOO)CDm)CDmOOOO'#IU'#IUODvOpO,59ROOQ(CY,59R,59ROOOO'#IV'#IVOEUO!bO,59RO%QQUO'#D]OOOO'#IX'#IXOEdO07`O,59uOOQ(CY,59u,59uOErQUO'#IYOFVQSO'#JdOHXQbO'#JdO+pQUO'#JdOH`QSO,59{OHvQSO'#EhOITQSO'#JqOI`QSO'#JpOI`QSO'#JpOIhQSO,5;UOImQSO'#JoOOQ(CY,5:W,5:WOItQUO,5:WOKuQ(CjO,5:bOLfQSO,5:jOLkQSO'#JmOMeQ(C[O'#JnO:sQSO'#JmOMlQSO'#JmOMtQSO,5;TOMyQSO'#JmOOQ(CY'#Cf'#CfO%QQUO'#EOONmQ`O,5:oOOQO'#Jj'#JjOOQO-E<]-E<]O9[QSO,5=UO! TQSO,5=UO! YQUO,5;RO!#]Q,UO'#EcO!$pQSO,5;RO!&YQ,UO'#DpO!&aQUO'#DuO!&kQWO,5;[O!&sQWO,5;[O%QQUO,5;[OOQQ'#E}'#E}OOQQ'#FP'#FPO%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]O%QQUO,5;]OOQQ'#FT'#FTO!'RQUO,5;nOOQ(CY,5;s,5;sOOQ(CY,5;t,5;tO!)UQSO,5;tOOQ(CY,5;u,5;uO%QQUO'#IeO!)^Q(C[O,5jOOQQ'#JW'#JWOOQQ,5>k,5>kOOQQ-EgQWO'#EkOOQ(CW'#Jo'#JoO!>nQ(C[O'#J}O8{Q(C[O,5=YO;^QSO,5=`OOQO'#Cr'#CrO!>yQWO,5=]O!?RQ,UO,5=^O!?^QSO,5=`O!?cQ`O,5=cO=}QSO'#G|O9[QSO'#HOO!?kQSO'#HOO9aQ,UO'#HRO!?pQSO'#HROOQQ,5=f,5=fO!?uQSO'#HSO!?}QSO'#ClO!@SQSO,58|O!@^QSO,58|O!BfQUO,58|OOQQ,58|,58|O!BsQ(C[O,58|O%QQUO,58|O!COQUO'#HZOOQQ'#H['#H[OOQQ'#H]'#H]O`QUO,5=sO!C`QSO,5=sO`QUO,5=yO`QUO,5={O!CeQSO,5=}O`QUO,5>PO!CjQSO,5>SO!CoQUO,5>YOOQQ,5>`,5>`O%QQUO,5>`O8{Q(C[O,5>bOOQQ,5>d,5>dO!GvQSO,5>dOOQQ,5>f,5>fO!GvQSO,5>fOOQQ,5>h,5>hO!G{QWO'#DXO%QQUO'#JfO!HjQWO'#JfO!IXQWO'#DgO!IjQWO'#DgO!K{QUO'#DgO!LSQSO'#JeO!L[QSO,5:QO!LaQSO'#ElO!LoQSO'#JrO!LwQSO,5;VO!L|QWO'#DgO!MZQWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO!MbQSO,5:kO=}QSO,5;QO!;xQWO,5;QO!tO+pQUO,5>tOOQO,5>z,5>zO#$vQUO'#IYOOQO-EtO$8XQSO1G5jO$8aQSO1G5vO$8iQbO1G5wO:sQSO,5>zO$8sQSO1G5sO$8sQSO1G5sO:sQSO1G5sO$8{Q(CjO1G5tO%QQUO1G5tO$9]Q(C[O1G5tO$9nQSO,5>|O:sQSO,5>|OOQO,5>|,5>|O$:SQSO,5>|OOQO-E<`-E<`OOQO1G0]1G0]OOQO1G0_1G0_O!)XQSO1G0_OOQQ7+([7+([O!#]Q,UO7+([O%QQUO7+([O$:bQSO7+([O$:mQ,UO7+([O$:{Q(CjO,59nO$=TQ(CjO,5UOOQQ,5>U,5>UO%QQUO'#HkO%&qQSO'#HmOOQQ,5>[,5>[O:sQSO,5>[OOQQ,5>^,5>^OOQQ7+)`7+)`OOQQ7+)f7+)fOOQQ7+)j7+)jOOQQ7+)l7+)lO%&vQWO1G5lO%'[Q$IUO1G0rO%'fQSO1G0rOOQO1G/m1G/mO%'qQ$IUO1G/mO=}QSO1G/mO!'RQUO'#DgOOQO,5>u,5>uOOQO-E{,5>{OOQO-E<_-E<_O!;xQWO1G/mOOQO-E<[-E<[OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO!MeQSO7+%qOOQ(CY7+&W7+&WO=}QSO7+&WO!;xQWO7+&WOOQO7+%t7+%tO$7kQ(CjO7+&POOQO7+&P7+&PO%QQUO7+&PO%'{Q(C[O7+&PO=}QSO7+%tO!;xQWO7+%tO%(WQ(C[O7+&POBtQWO7+%tO%(fQ(C[O7+&PO%(zQ(C`O7+&PO%)UQWO7+%tOBtQWO7+&PO%)cQWO7+&PO%)yQSO7++_O%)yQSO7++_O%*RQ(CjO7++`O%QQUO7++`OOQO1G4h1G4hO:sQSO1G4hO%*cQSO1G4hOOQO7+%y7+%yO!MeQSO<vOOQO-EwO%QQUO,5>wOOQO-ESQ$IUO1G0wO%>ZQ$IUO1G0wO%@RQ$IUO1G0wO%@fQ(CjO<VOOQQ,5>X,5>XO&#WQSO1G3vO:sQSO7+&^O!'RQUO7+&^OOQO7+%X7+%XO&#]Q$IUO1G5wO=}QSO7+%XOOQ(CY<zAN>zO%QQUOAN?VO=}QSOAN>zO&<^Q(C[OAN?VO!;xQWOAN>zO&zO&RO!V+iO^(qX'j(qX~O#W+mO'|%OO~Og+pO!X$yO'|%OO~O!X+rO~Oy+tO!XXO~O!t+yO~Ob,OO~O's#jO!W(sP~Ob%lO~O%a!OO's%|O~PRO!V,yO!W(fa~O!W2SO~P'TO^%^O#W2]O'j%^O~O^%^O!a#rO#W2]O'j%^O~O^%^O!a#rO!h%ZO!l2aO#W2]O'j%^O'|%OO(`'dO~O!]2bO!^2bO't!iO~PBtO![2eO!]2bO!^2bO#S2fO#T2fO't!iO~PBtO![2eO!]2bO!^2bO#P2gO#S2fO#T2fO't!iO~PBtO^%^O!a#rO!l2aO#W2]O'j%^O(`'dO~O^%^O'j%^O~P!3jO!V$^Oo$ja~O!S&|i!V&|i~P!3jO!V'xO!S(Wi~O!V(PO!S(di~O!S(ei!V(ei~P!3jO!V(]O!g(ai~O!V(bi!g(bi^(bi'j(bi~P!3jO#W2kO!V(bi!g(bi^(bi'j(bi~O|%vO!X%wO!x]O#a2nO#b2mO's%eO~O|%vO!X%wO#b2mO's%eO~Og2uO!X'QO%`2tO~Og2uO!X'QO%`2tO'|%OO~O#cvaPvaXva^vakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva'jva(Qva(`va!gva!Sva'hvaova!Xva%`va!ava~P#M{O#c$kaP$kaX$ka^$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka'j$ka(Q$ka(`$ka!g$ka!S$ka'h$kao$ka!X$ka%`$ka!a$ka~P#NqO#c$maP$maX$ma^$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma'j$ma(Q$ma(`$ma!g$ma!S$ma'h$mao$ma!X$ma%`$ma!a$ma~P$ dO#c${aP${aX${a^${ak${az${a!V${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a'j${a(Q${a(`${a!g${a!S${a'h${a#W${ao${a!X${a%`${a!a${a~P#(yO^#Zq!V#Zq'j#Zq'h#Zq!S#Zq!g#Zqo#Zq!X#Zq%`#Zq!a#Zq~P!3jOd'OX!V'OX~P!$uO!V._Od(Za~O!U2}O!V'PX!g'PX~P%QO!V.bO!g([a~O!V.bO!g([a~P!3jO!S3QO~O#x!ja!W!ja~PI{O#x!ba!V!ba!W!ba~P#?dO#x!na!W!na~P!6TO#x!pa!W!pa~P!8nO!X3dO$TfO$^3eO~O!W3iO~Oo3jO~P#(yO^$gq!V$gq'j$gq'h$gq!S$gq!g$gqo$gq!X$gq%`$gq!a$gq~P!3jO!S3kO~Ol.}O'uTO'xUO~Oy)sO|)tO(h)xOg%Wi(g%Wi!V%Wi#W%Wi~Od%Wi#x%Wi~P$HbOy)sO|)tOg%Yi(g%Yi(h%Yi!V%Yi#W%Yi~Od%Yi#x%Yi~P$ITO(`$WO~P#(yO!U3nO's%eO!V'YX!g'YX~O!V/VO!g(ma~O!V/VO!a#rO!g(ma~O!V/VO!a#rO(`'dO!g(ma~Od$ti!V$ti#W$ti#x$ti~P!-jO!U3vO's*UO!S'[X!V'[X~P!.XO!V/_O!S(na~O!V/_O!S(na~P#(yO!a#rO~O!a#rO#n4OO~Ok4RO!a#rO(`'dO~Od(Oi!V(Oi~P!-jO#W4UOd(Oi!V(Oi~P!-jO!g4XO~O^$hq!V$hq'j$hq'h$hq!S$hq!g$hqo$hq!X$hq%`$hq!a$hq~P!3jO!V4]O!X(oX~P#(yO!f#tO~P3zO!X$rX%TYX^$rX!V$rX'j$rX~P!,aO%T4_OghXyhX|hX!XhX(ghX(hhX^hX!VhX'jhX~O%T4_O~O%a4fO's+WO'uTO'xUO!V'eX!W'eX~O!V0_O!W(ua~OX4jO~O]4kO~O!S4oO~O^%^O'j%^O~P#(yO!X$yO~P#(yO!V4tO#W4vO!W(rX~O!W4wO~Ol!kO|4yO![5WO!]4}O!^4}O!x;oO!|5VO!}5UO#O5UO#P5TO#S5SO#T!wO't!iO'uTO'xUO(T!jO(_!nO~O!W5RO~P%#XOg5]O!X0zO%`5[O~Og5]O!X0zO%`5[O'|%OO~O's#jO!V'dX!W'dX~O!V1VO!W(sa~O'uTO'xUO(T5fO~O]5jO~O!g5mO~P%QO^5oO~O^5oO~P%QO#n5qO&Q5rO~PMPO_1mO!W5vO&`1lO~P`O!a5xO~O!a5zO!V(Yi!W(Yi!a(Yi!h(Yi'|(Yi~O!V#`i!W#`i~P#?dO#W5{O!V#`i!W#`i~O!V!Zi!W!Zi~P#?dO^%^O#W6UO'j%^O~O^%^O!a#rO#W6UO'j%^O~O^%^O!a#rO!l6ZO#W6UO'j%^O(`'dO~O!h%ZO'|%OO~P%(fO!]6[O!^6[O't!iO~PBtO![6_O!]6[O!^6[O#S6`O#T6`O't!iO~PBtO!V(]O!g(aq~O!V(bq!g(bq^(bq'j(bq~P!3jO|%vO!X%wO#b6dO's%eO~O!X'QO%`6gO~Og6jO!X'QO%`6gO~O#c%WiP%WiX%Wi^%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi'j%Wi(Q%Wi(`%Wi!g%Wi!S%Wi'h%Wio%Wi!X%Wi%`%Wi!a%Wi~P$HbO#c%YiP%YiX%Yi^%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi'j%Yi(Q%Yi(`%Yi!g%Yi!S%Yi'h%Yio%Yi!X%Yi%`%Yi!a%Yi~P$ITO#c$tiP$tiX$ti^$tik$tiz$ti!V$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti'j$ti(Q$ti(`$ti!g$ti!S$ti'h$ti#W$tio$ti!X$ti%`$ti!a$ti~P#(yOd'Oa!V'Oa~P!-jO!V'Pa!g'Pa~P!3jO!V.bO!g([i~O#x#Zi!V#Zi!W#Zi~P#?dOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(QVOX#eik#ei!e#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~O#f#ei~P%2xO#f;wO~P%2xOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO(QVOX#ei!e#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~Ok#ei~P%5TOk;yO~P%5TOP$YOk;yOy#vOz#wO|#xO!f#tO!h#uO!l$YO#f;wO#g;xO#h;xO#i;xO#j;zO(QVO#p#ei#r#ei#t#ei#u#ei#x#ei(`#ei(g#ei(h#ei!V#ei!W#ei~OX#ei!e#ei#k#ei#l#ei#m#ei#n#ei~P%7`OXbO^#vy!V#vy'j#vy'h#vy!S#vy!g#vyo#vy!X#vy%`#vy!a#vy~P!3jOg=jOy)sO|)tO(g)vO(h)xO~OP#eiX#eik#eiz#ei!e#ei!f#ei!h#ei!l#ei#f#ei#g#ei#h#ei#i#ei#j#ei#k#ei#l#ei#m#ei#n#ei#p#ei#r#ei#t#ei#u#ei#x#ei(Q#ei(`#ei!V#ei!W#ei~P%AYO!f#tOP(PXX(PXg(PXk(PXy(PXz(PX|(PX!e(PX!h(PX!l(PX#f(PX#g(PX#h(PX#i(PX#j(PX#k(PX#l(PX#m(PX#n(PX#p(PX#r(PX#t(PX#u(PX#x(PX(Q(PX(`(PX(g(PX(h(PX!V(PX!W(PX~O#x#yi!V#yi!W#yi~P#?dO#x!ni!W!ni~P$!qO!W6vO~O!V'Xa!W'Xa~P#?dO!a#rO(`'dO!V'Ya!g'Ya~O!V/VO!g(mi~O!V/VO!a#rO!g(mi~Od$tq!V$tq#W$tq#x$tq~P!-jO!S'[a!V'[a~P#(yO!a6}O~O!V/_O!S(ni~P#(yO!V/_O!S(ni~O!S7RO~O!a#rO#n7WO~Ok7XO!a#rO(`'dO~O!S7ZO~Od$vq!V$vq#W$vq#x$vq~P!-jO^$hy!V$hy'j$hy'h$hy!S$hy!g$hyo$hy!X$hy%`$hy!a$hy~P!3jO!V4]O!X(oa~O^#Zy!V#Zy'j#Zy'h#Zy!S#Zy!g#Zyo#Zy!X#Zy%`#Zy!a#Zy~P!3jOX7`O~O!V0_O!W(ui~O]7fO~O!a5zO~O(T(qO!V'aX!W'aX~O!V4tO!W(ra~O!h%ZO'|%OO^(YX!a(YX!l(YX#W(YX'j(YX(`(YX~O's7oO~P.[O!x;oO!|7rO!}7qO#O7qO#P7pO#S'bO#T'bO~PBtO^%^O!a#rO!l'hO#W'fO'j%^O(`'dO~O!W7vO~P%#XOl!kO'uTO'xUO(T!jO(_!nO~O|7wO~P%MdO![7{O!]7zO!^7zO#P7pO#S'bO#T'bO't!iO~PBtO![7{O!]7zO!^7zO!}7|O#O7|O#P7pO#S'bO#T'bO't!iO~PBtO!]7zO!^7zO't!iO(T!jO(_!nO~O!X0zO~O!X0zO%`8OO~Og8RO!X0zO%`8OO~OX8WO!V'da!W'da~O!V1VO!W(si~O!g8[O~O!g8]O~O!g8^O~O!g8^O~P%QO^8`O~O!a8cO~O!g8dO~O!V(ei!W(ei~P#?dO^%^O#W8lO'j%^O~O^%^O!a#rO#W8lO'j%^O~O^%^O!a#rO!l8pO#W8lO'j%^O(`'dO~O!h%ZO'|%OO~P&$QO!]8qO!^8qO't!iO~PBtO!V(]O!g(ay~O!V(by!g(by^(by'j(by~P!3jO!X'QO%`8uO~O#c$tqP$tqX$tq^$tqk$tqz$tq!V$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq'j$tq(Q$tq(`$tq!g$tq!S$tq'h$tq#W$tqo$tq!X$tq%`$tq!a$tq~P#(yO#c$vqP$vqX$vq^$vqk$vqz$vq!V$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq'j$vq(Q$vq(`$vq!g$vq!S$vq'h$vq#W$vqo$vq!X$vq%`$vq!a$vq~P#(yO!V'Pi!g'Pi~P!3jO#x#Zq!V#Zq!W#Zq~P#?dOy/yOz/yO|/zOPvaXvagvakva!eva!fva!hva!lva#fva#gva#hva#iva#jva#kva#lva#mva#nva#pva#rva#tva#uva#xva(Qva(`va(gva(hva!Vva!Wva~Oy)sO|)tOP$kaX$kag$kak$kaz$ka!e$ka!f$ka!h$ka!l$ka#f$ka#g$ka#h$ka#i$ka#j$ka#k$ka#l$ka#m$ka#n$ka#p$ka#r$ka#t$ka#u$ka#x$ka(Q$ka(`$ka(g$ka(h$ka!V$ka!W$ka~Oy)sO|)tOP$maX$mag$mak$maz$ma!e$ma!f$ma!h$ma!l$ma#f$ma#g$ma#h$ma#i$ma#j$ma#k$ma#l$ma#m$ma#n$ma#p$ma#r$ma#t$ma#u$ma#x$ma(Q$ma(`$ma(g$ma(h$ma!V$ma!W$ma~OP${aX${ak${az${a!e${a!f${a!h${a!l${a#f${a#g${a#h${a#i${a#j${a#k${a#l${a#m${a#n${a#p${a#r${a#t${a#u${a#x${a(Q${a(`${a!V${a!W${a~P%AYO#x$gq!V$gq!W$gq~P#?dO#x$hq!V$hq!W$hq~P#?dO!W9PO~O#x9QO~P!-jO!a#rO!V'Yi!g'Yi~O!a#rO(`'dO!V'Yi!g'Yi~O!V/VO!g(mq~O!S'[i!V'[i~P#(yO!V/_O!S(nq~O!S9WO~P#(yO!S9WO~Od(Oy!V(Oy~P!-jO!V'_a!X'_a~P#(yO!X%Sq^%Sq!V%Sq'j%Sq~P#(yOX9]O~O!V0_O!W(uq~O#W9aO!V'aa!W'aa~O!V4tO!W(ri~P#?dOPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#WYX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!a%QX#n%QX~P&6lO#S-cO#T-cO~PBtO#P9eO#S-cO#T-cO~PBtO!}9fO#O9fO#P9eO#S-cO#T-cO~PBtO!]9iO!^9iO't!iO(T!jO(_!nO~O![9lO!]9iO!^9iO#P9eO#S-cO#T-cO't!iO~PBtO!X0zO%`9oO~O'uTO'xUO(T9tO~O!V1VO!W(sq~O!g9wO~O!g9wO~P%QO!g9yO~O!g9zO~O#W9|O!V#`y!W#`y~O!V#`y!W#`y~P#?dO^%^O#W:QO'j%^O~O^%^O!a#rO#W:QO'j%^O~O^%^O!a#rO!l:UO#W:QO'j%^O(`'dO~O!X'QO%`:XO~O#x#vy!V#vy!W#vy~P#?dOP$tiX$tik$tiz$ti!e$ti!f$ti!h$ti!l$ti#f$ti#g$ti#h$ti#i$ti#j$ti#k$ti#l$ti#m$ti#n$ti#p$ti#r$ti#t$ti#u$ti#x$ti(Q$ti(`$ti!V$ti!W$ti~P%AYOy)sO|)tO(h)xOP%WiX%Wig%Wik%Wiz%Wi!e%Wi!f%Wi!h%Wi!l%Wi#f%Wi#g%Wi#h%Wi#i%Wi#j%Wi#k%Wi#l%Wi#m%Wi#n%Wi#p%Wi#r%Wi#t%Wi#u%Wi#x%Wi(Q%Wi(`%Wi(g%Wi!V%Wi!W%Wi~Oy)sO|)tOP%YiX%Yig%Yik%Yiz%Yi!e%Yi!f%Yi!h%Yi!l%Yi#f%Yi#g%Yi#h%Yi#i%Yi#j%Yi#k%Yi#l%Yi#m%Yi#n%Yi#p%Yi#r%Yi#t%Yi#u%Yi#x%Yi(Q%Yi(`%Yi(g%Yi(h%Yi!V%Yi!W%Yi~O#x$hy!V$hy!W$hy~P#?dO#x#Zy!V#Zy!W#Zy~P#?dO!a#rO!V'Yq!g'Yq~O!V/VO!g(my~O!S'[q!V'[q~P#(yO!S:`O~P#(yO!V0_O!W(uy~O!V4tO!W(rq~O#S2fO#T2fO~PBtO#P:gO#S2fO#T2fO~PBtO!]:kO!^:kO't!iO(T!jO(_!nO~O!X0zO%`:nO~O!g:qO~O^%^O#W:vO'j%^O~O^%^O!a#rO#W:vO'j%^O~O!X'QO%`:{O~OP$tqX$tqk$tqz$tq!e$tq!f$tq!h$tq!l$tq#f$tq#g$tq#h$tq#i$tq#j$tq#k$tq#l$tq#m$tq#n$tq#p$tq#r$tq#t$tq#u$tq#x$tq(Q$tq(`$tq!V$tq!W$tq~P%AYOP$vqX$vqk$vqz$vq!e$vq!f$vq!h$vq!l$vq#f$vq#g$vq#h$vq#i$vq#j$vq#k$vq#l$vq#m$vq#n$vq#p$vq#r$vq#t$vq#u$vq#x$vq(Q$vq(`$vq!V$vq!W$vq~P%AYOd%[!Z!V%[!Z#W%[!Z#x%[!Z~P!-jO!V'aq!W'aq~P#?dO#S6`O#T6`O~PBtO!V#`!Z!W#`!Z~P#?dO^%^O#W;ZO'j%^O~O#c%[!ZP%[!ZX%[!Z^%[!Zk%[!Zz%[!Z!V%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z'j%[!Z(Q%[!Z(`%[!Z!g%[!Z!S%[!Z'h%[!Z#W%[!Zo%[!Z!X%[!Z%`%[!Z!a%[!Z~P#(yOP%[!ZX%[!Zk%[!Zz%[!Z!e%[!Z!f%[!Z!h%[!Z!l%[!Z#f%[!Z#g%[!Z#h%[!Z#i%[!Z#j%[!Z#k%[!Z#l%[!Z#m%[!Z#n%[!Z#p%[!Z#r%[!Z#t%[!Z#u%[!Z#x%[!Z(Q%[!Z(`%[!Z!V%[!Z!W%[!Z~P%AYOo(UX~P1dO't!iO~P!'RO!ScX!VcX#WcX~P&6lOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#WYX#WcX#ccX#fYX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#pYX#rYX#tYX#uYX#zYX(QYX(`YX(gYX(hYX~O!acX!gYX!gcX(`cX~P'!sOP;nOQ;nOa=_Ob!fOikOk;nOlkOmkOskOu;nOw;nO|WO!QkO!RkO!XXO!c;qO!hZO!k;nO!l;nO!m;nO!o;rO!q;sO!t!eO$P!hO$TfO's)RO'uTO'xUO(QVO(_[O(l=]O~O!Vv!>v!BnPPP!BuHdPPPPPPPPPPP!FTP!GiPPHd!HyPHdPHdHdHdHdPHd!J`PP!MiP#!nP#!r#!|##Q##QP!MfP##U##UP#&ZP#&_HdHd#&e#)iAQPAQPAQAQP#*sAQAQ#,mAQ#.zAQ#0nAQAQ#1[#3W#3W#3[#3d#3W#3lP#3WPAQ#4hAQ#5pAQAQ6iPPP#6{PP#7e#7eP#7eP#7z#7ePP#8QP#7wP#7w#8d!1p#7w#9O#9U6f(}#9X(}P#9`#9`#9`P(}P(}P(}P(}PP(}P#9f#9iP#9i(}P#9mP#9pP(}P(}P(}P(}P(}P(}(}PP#9v#9|#:W#:^#:d#:j#:p#;O#;U#;[#;f#;l#b#?r#@Q#@W#@^#@d#@j#@t#@z#AQ#A[#An#AtPPPPPPPPPP#AzPPPPPPP#Bn#FYP#Gu#G|#HUPPPP#L`$ U$'t$'w$'z$)w$)z$)}$*UPP$*[$*`$+X$,X$,]$,qPP$,u$,{$-PP$-S$-W$-Z$.P$.g$.l$.o$.r$.x$.{$/P$/TR!yRmpOXr!X#a%]&d&f&g&i,^,c1g1jU!pQ'Q-OQ%ctQ%kwQ%rzQ&[!TS&x!c,vQ'W!f[']!m!r!s!t!u!vS*[$y*aQ+U%lQ+c%tQ+}&UQ,|'PQ-W'XW-`'^'_'`'aQ/p*cQ1U,OU2b-b-d-eS4}0z5QS6[2e2gU7z5U5V5WQ8q6_S9i7{7|Q:k9lR TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:362,context:D0,nodeProps:[["group",-26,6,14,16,62,198,202,205,206,208,211,214,225,227,233,235,237,239,242,248,254,256,258,260,262,264,265,"Statement",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,102,103,112,113,130,133,135,136,137,138,140,141,161,162,164,"Expression",-23,24,26,30,34,36,38,165,167,169,170,172,173,174,176,177,178,180,181,182,192,194,196,197,"Type",-3,84,95,101,"ClassItem"],["openedBy",31,"InterpolationStart",50,"[",54,"{",69,"(",142,"JSXStartTag",154,"JSXStartTag JSXStartCloseTag"],["closedBy",33,"InterpolationEnd",44,"]",55,"}",70,")",143,"JSXSelfCloseEndTag JSXEndTag",159,"JSXEndTag"]],propSources:[B0],skippedNodes:[0,3,4,268],repeatNodeCount:32,tokenData:"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$c&j'vpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'vpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'vp'y!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$c&j'vp'y!b'l(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'w#S$c&j'm(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$c&j'vp'y!b'm(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$c&j!l$Ip'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#p$Id$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'u$(n$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$c&j'y!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$c&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$^#t$c&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$^#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$^#t$c&j'y!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'y!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$^#t'y!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$c&j'vp'y!bOY%ZYZ&cZr%Zrs&}st%Ztu`k$c&j'vp'y!b(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$c&j'vp'y!b$V#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$c&j'vp'y!b#h$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$c&j#z$Id'vp'y!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(h%Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$c&j'vp'y!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$c&j#x%Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$c&j'vp'y!b'm(;d(T!LY's&;d$V#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P",tokenizers:[N0,L0,2,3,4,5,6,7,8,9,10,11,12,13,M0,new pO("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(S~~",141,325),new pO("j~RQYZXz{^~^O'p~~aP!P!Qd~iO'q~~",25,307)],topRules:{Script:[0,5],SingleExpression:[1,266],SingleClassItem:[2,267]},dialects:{jsx:13213,ts:13215},dynamicPrecedences:{76:1,78:1,162:1,190:1},specialized:[{term:311,get:O=>H0[O]||-1},{term:327,get:O=>F0[O]||-1},{term:67,get:O=>K0[O]||-1}],tokenPrec:13238}),eT=[Re("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Re("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Re("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Re("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Re("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Re(`try { + \${} +} catch (\${error}) { + \${} +}`,{label:"try",detail:"/ catch block",type:"keyword"}),Re("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Re(`if (\${}) { + \${} +} else { + \${} +}`,{label:"if",detail:"/ else block",type:"keyword"}),Re(`class \${name} { + constructor(\${params}) { + \${} + } +}`,{label:"class",detail:"definition",type:"keyword"}),Re('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Re('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],IQ=new bc,Am=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function ar(O){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,O),!0}}const tT=["FunctionDeclaration"],OT={FunctionDeclaration:ar("function"),ClassDeclaration:ar("class"),ClassExpression:()=>!0,EnumDeclaration:ar("constant"),TypeAliasDeclaration:ar("type"),NamespaceDeclaration:ar("namespace"),VariableDefinition(O,e){O.matchContext(tT)||e(O,"variable")},TypeDefinition(O,e){e(O,"type")},__proto__:null};function Dm(O,e){let t=IQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(Pe.IncludeAnonymous).iterate(s=>{if(r)r=!1;else if(s.name){let o=OT[s.name];if(o&&o(s,n)||Am.has(s.name))return!1}else if(s.to-s.from>8192){for(let o of Dm(O,s.node))i.push(o);return!1}}),IQ.set(e,i),i}const EQ=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Mm=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName"];function iT(O){let e=ue(O.state).resolveInner(O.pos,-1);if(Mm.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&EQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)Am.has(r.name)&&(i=i.concat(Dm(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:EQ}}const kt=Ie.define({name:"javascript",parser:J0.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:qc,SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:zO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ce({except:/^{/}),JSXElement(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},JSXEscape(O){let e=/\s*\}/.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"JSXOpenTag JSXSelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ft.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Nm={test:O=>/^JSX/.test(O.name),facet:Wc({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Lm=kt.configure({dialect:"ts"},"typescript"),Bm=kt.configure({dialect:"jsx",props:[Tc.add(O=>O.isTop?[Nm]:void 0)]}),Hm=kt.configure({dialect:"jsx ts",props:[Tc.add(O=>O.isTop?[Nm]:void 0)]},"typescript"),rT="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(O=>({label:O,type:"keyword"}));function Fm(O={}){let e=O.jsx?O.typescript?Hm:Bm:O.typescript?Lm:kt;return new Je(e,[kt.data.of({autocomplete:Cc(Mm,po(eT.concat(rT)))}),kt.data.of({autocomplete:iT}),O.jsx?oT:[]])}function nT(O){for(;;){if(O.name=="JSXOpenTag"||O.name=="JSXSelfClosingTag"||O.name=="JSXFragmentTag")return O;if(!O.parent)return null;O=O.parent}}function AQ(O,e,t=O.length){for(let i=e==null?void 0:e.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return O.sliceString(i.from,Math.min(i.to,t));return""}const sT=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),oT=z.inputHandler.of((O,e,t,i)=>{if((sT?O.composing:O.compositionStarted)||O.state.readOnly||e!=t||i!=">"&&i!="/"||!kt.isActiveAt(O.state,e,-1))return!1;let{state:r}=O,n=r.changeByRange(s=>{var o,a;let{head:l}=s,c=ue(r).resolveInner(l,-1),h;if(c.name=="JSXStartTag"&&(c=c.parent),i==">"&&c.name=="JSXFragmentTag")return{range:X.cursor(l+1),changes:{from:l,insert:">"}};if(i=="/"&&c.name=="JSXFragmentTag"){let Q=c.parent,u=Q==null?void 0:Q.parent;if(Q.from==l-1&&((o=u.lastChild)===null||o===void 0?void 0:o.name)!="JSXEndTag"&&(h=AQ(r.doc,u==null?void 0:u.firstChild,l))){let $=`/${h}>`;return{range:X.cursor(l+$.length),changes:{from:l,insert:$}}}}else if(i==">"){let Q=nT(c);if(Q&&((a=Q.lastChild)===null||a===void 0?void 0:a.name)!="JSXEndTag"&&r.sliceDoc(l,l+2)!="`}}}return{range:s}});return n.changes.empty?!1:(O.dispatch(n,{userEvent:"input.type",scrollIntoView:!0}),!0)}),aT=De({null:f.null,instanceof:f.operatorKeyword,this:f.self,"new super assert open to with void":f.keyword,"class interface extends implements enum var":f.definitionKeyword,"module package import":f.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":f.controlKeyword,["requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws"]:f.modifier,IntegerLiteral:f.integer,FloatingPointLiteral:f.float,"StringLiteral TextBlock":f.string,CharacterLiteral:f.character,LineComment:f.lineComment,BlockComment:f.blockComment,BooleanLiteral:f.bool,PrimitiveType:f.standard(f.typeName),TypeName:f.typeName,Identifier:f.variableName,"MethodName/Identifier":f.function(f.variableName),Definition:f.definition(f.variableName),ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,UpdateOp:f.updateOperator,Asterisk:f.punctuation,Label:f.labelName,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,".":f.derefOperator,", ;":f.separator}),lT={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:236,open:265,module:267,requires:272,transitive:274,exports:276,to:278,opens:280,uses:282,provides:284,with:286,package:290,import:294,if:306,else:308,while:312,for:316,var:323,assert:330,switch:334,case:340,do:344,break:348,continue:352,return:356,throw:362,try:366,catch:370,finally:378},cT=Ee.deserialize({version:14,states:"#!hQ]QPOOO&tQQO'#H[O(xQQO'#CbOOQO'#Cb'#CbO)PQPO'#CaO)XOSO'#CpOOQO'#Ha'#HaOOQO'#Cu'#CuO*tQPO'#D_O+_QQO'#HkOOQO'#Hk'#HkO-sQQO'#HfO-zQQO'#HfOOQO'#Hf'#HfOOQO'#He'#HeO0OQPO'#DUO0]QPO'#GlO3TQPO'#D_O3[QPO'#DzO)PQPO'#E[O3}QPO'#E[OOQO'#DV'#DVO5]QQO'#H_O7dQQO'#EeO7kQPO'#EdO7pQPO'#EfOOQO'#H`'#H`O5sQQO'#H`O8sQQO'#FgO8zQPO'#EwO9PQPO'#E|O9PQPO'#FOOOQO'#H_'#H_OOQO'#HW'#HWOOQO'#Gf'#GfOOQO'#HV'#HVO:aQPO'#FhOOQO'#HU'#HUOOQO'#Ge'#GeQ]QPOOOOQO'#Hq'#HqO:fQPO'#HqO:kQPO'#D{O:kQPO'#EVO:kQPO'#EQO:sQPO'#HnO;UQQO'#EfO)PQPO'#C`O;^QPO'#C`O)PQPO'#FbO;cQPO'#FdO;nQPO'#FjO;nQPO'#FmO:kQPO'#FrO;sQPO'#FoO9PQPO'#FvO;nQPO'#FxO]QPO'#F}O;xQPO'#GPOyOSO,59[OOQO,59[,59[OOQO'#Hg'#HgO?jQPO,59eO@lQPO,59yOOQO-E:d-E:dO)PQPO,58zOA`QPO,58zO)PQPO,5;|OAeQPO'#DQOAjQPO'#DQOOQO'#Gi'#GiOBjQQO,59jOOQO'#Dm'#DmODRQPO'#HsOD]QPO'#DlODkQPO'#HrODsQPO,5<^ODxQPO,59^OEcQPO'#CxOOQO,59c,59cOEjQPO,59bOGrQQO'#H[OJVQQO'#CbOJmQPO'#D_OKrQQO'#HkOLSQQO,59pOLZQPO'#DvOLiQPO'#HzOLqQPO,5:`OLvQPO,5:`OM^QPO,5;mOMiQPO'#IROMtQPO,5;dOMyQPO,5=WOOQO-E:j-E:jOOQO,5:f,5:fO! aQPO,5:fO! hQPO,5:vO! mQPO,5<^O)PQPO,5:vO:kQPO,5:gO:kQPO,5:qO:kQPO,5:lO:kQPO,5<^O!!^QPO,59qO9PQPO,5:}O!!eQPO,5;QO9PQPO,59TO!!sQPO'#DXOOQO,5;O,5;OOOQO'#El'#ElOOQO'#En'#EnO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;UO9PQPO,5;eOOQO,5;h,5;hOOQO,5],5>]O!%SQPO,5:gO!%bQPO,5:qO!%jQPO,5:lO!%uQPO,5>YOLZQPO,5>YO! {QPO,59UO!&QQQO,58zO!&YQQO,5;|O!&bQQO,5_O!.ZQPO,5:WO:kQPO'#GnO!.bQPO,5>^OOQO1G1x1G1xOOQO1G.x1G.xO!.{QPO'#CyO!/kQPO'#HkO!/uQPO'#CzO!0TQPO'#HjO!0]QPO,59dOOQO1G.|1G.|OEjQPO1G.|O!0sQPO,59eO!1QQQO'#H[O!1cQQO'#CbOOQO,5:b,5:bO:kQPO,5:cOOQO,5:a,5:aO!1tQQO,5:aOOQO1G/[1G/[O!1yQPO,5:bO!2[QPO'#GqO!2oQPO,5>fOOQO1G/z1G/zO!2wQPO'#DvO!3YQPO'#D_O!3aQPO1G/zO!!zQPO'#GoO!3fQPO1G1XO9PQPO1G1XO:kQPO'#GwO!3nQPO,5>mOOQO1G1O1G1OOOQO1G0Q1G0QO!3vQPO'#E]OOQO1G0b1G0bO!4gQPO1G1xO! hQPO1G0bO!%SQPO1G0RO!%bQPO1G0]O!%jQPO1G0WOOQO1G/]1G/]O!4lQQO1G.pO7kQPO1G0jO)PQPO1G0jO:sQPO'#HnO!6`QQO1G.pOOQO1G.p1G.pO!6eQQO1G0iOOQO1G0l1G0lO!6lQPO1G0lO!6wQQO1G.oO!7_QQO'#HoO!7lQPO,59sO!8{QQO1G0pO!:dQQO1G0pO!;rQQO1G0pO!UOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#1TQQO1G/{OOQO1G/}1G/}O#1YQPO1G/{OOQO1G/|1G/|O:kQPO1G/}OOQO,5=],5=]OOQO-E:o-E:oOOQO7+%f7+%fOOQO,5=Z,5=ZOOQO-E:m-E:mO9PQPO7+&sOOQO7+&s7+&sOOQO,5=c,5=cOOQO-E:u-E:uO#1_QPO'#EUO#1mQPO'#EUOOQO'#Gu'#GuO#2UQPO,5:wOOQO,5:w,5:wOOQO7+'d7+'dOOQO7+%|7+%|OOQO7+%m7+%mO!AYQPO7+%mO!A_QPO7+%mO!AgQPO7+%mOOQO7+%w7+%wO!BVQPO7+%wOOQO7+%r7+%rO!CUQPO7+%rO!CZQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO7kQPO7+&UO7kQPO,5>YO#2uQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO9PQPO'#GjO#3TQPO,5>ZOOQO1G/_1G/_O9PQPO7+&kO#3`QQO,59eO#4cQPO'#DrO! pQPO'#DrO#4nQPO'#HwO#4vQPO,5:]O#5aQQO'#HgO#5|QQO'#CuO! mQPO'#HvO#6lQPO'#DpO#6vQPO'#HvO#7XQPO'#DpO#7aQPO'#IPO#7fQPO'#E`OOQO'#Hp'#HpOOQO'#Gk'#GkO#7nQPO,59vOOQO,59v,59vO#7uQPO'#HqOOQO,5:h,5:hO#9]QPO'#H|OOQO'#EP'#EPOOQO,5:i,5:iO#9hQPO'#EYO:kQPO'#EYO#9yQPO'#H}O#:UQPO,5:sO! mQPO'#HvO!!zQPO'#HvO#:^QPO'#DpOOQO'#Gs'#GsO#:eQPO,5:oOOQO,5:o,5:oOOQO,5:n,5:nOOQO,5;S,5;SO#;_QQO,5;SO#;fQPO,5;SOOQO-E:t-E:tOOQO7+&X7+&XOOQO7+)`7+)`O#;mQQO7+)`OOQO'#Gz'#GzO#=ZQPO,5;rOOQO,5;r,5;rO#=bQPO'#FXO)PQPO'#FXO)PQPO'#FXO)PQPO'#FXO#=pQPO7+'UO#=uQPO7+'UOOQO7+'U7+'UO]QPO7+'[O#>QQPO1G1{O! mQPO1G1{O#>`QQO1G1wO!!sQPO1G1wO#>gQPO1G1wO#>nQQO7+'hOOQO'#G}'#G}O#>uQPO,5|QPO'#HqO9PQPO'#F{O#?UQPO7+'oO#?ZQPO,5=OO! mQPO,5=OO#?`QPO1G2iO#@iQPO1G2iOOQO1G2i1G2iOOQO-E:|-E:|OOQO7+'z7+'zO!2[QPO'#G^OpOOQO1G.n1G.nOOQO<X,5>XOOQO,5=S,5=SOOQO-E:f-E:fO#EjQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<cOOQO1G/w1G/wO#IfQPO'#HsO#ImQPO,59xO#IrQPO,5>bO! mQPO,59xO#I}QPO,5:[O#7fQPO,5:zO! mQPO,5>bO!!zQPO,5>bO#7aQPO,5>kOOQO,5:[,5:[OLvQPO'#DtOOQO,5>k,5>kO#JVQPO'#EaOOQO,5:z,5:zO#MWQPO,5:zO!!zQPO'#DxOOQO-E:i-E:iOOQO1G/b1G/bOOQO,5:y,5:yO!!zQPO'#GrO#M]QPO,5>hOOQO,5:t,5:tO#MhQPO,5:tO#MvQPO,5:tO#NXQPO'#GtO#NoQPO,5>iO#NzQPO'#EZOOQO1G0_1G0_O$ RQPO1G0_O! mQPO,5:pOOQO-E:q-E:qOOQO1G0Z1G0ZOOQO1G0n1G0nO$ WQQO1G0nOOQO<oOOQO1G1Y1G1YO$%uQPO'#FTOOQO,5=e,5=eOOQO-E:w-E:wO$%zQPO'#GmO$&XQPO,5>aOOQO1G/u1G/uOOQO<sAN>sO!AYQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O7kQPOAN?[O$&pQPO,5:_OOQO1G/x1G/xOOQO,5=[,5=[OOQO-E:n-E:nO$&{QPO,5>eOOQO1G/d1G/dOOQO1G3|1G3|O$'^QPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO#MWQPO1G0fO#7aQPO'#HyO$'cQPO1G3|O! mQPO1G3|OOQO1G4V1G4VOK^QPO'#DvOJmQPO'#D_OOQO,5:{,5:{O$'nQPO,5:{O$'nQPO,5:{O$'uQQO'#H_O$'|QQO'#H`O$(WQQO'#EbO$(cQPO'#EbOOQO,5:d,5:dOOQO,5=^,5=^OOQO-E:p-E:pOOQO1G0`1G0`O$(kQPO1G0`OOQO,5=`,5=`OOQO-E:r-E:rO$(yQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1_1G1_O$)QQQO1G1_OOQO-E:y-E:yO$)YQQO'#IWO$)TQPO1G1_O$ mQPO1G1_O)PQPO1G1_OOQOAN@[AN@[O$)eQQO<rO$,cQPO7+&yO$,hQQO'#IXOOQOAN@mAN@mO$,sQQOAN@mOOQOAN@iAN@iO$,zQPOAN@iO$-PQQO<sOOQOG26XG26XOOQOG26TG26TOOQO<bPPP>hP@|PPPAv2vPCoPPDjPEaEgPPPPPPPPPPPPFpGXPJ_JgJqKZKaKgMVMZMZMcPMrNx! k! uP!![NxP!!b!!l!!{!#TP!#r!#|!$SNx!$V!$]EaEa!$a!$k!$n2v!&Y2v2v!(RP.^P!(VP!(vPPPPPP.^P.^!)d.^PP.^P.^PP.^!*x!+SPP!+Y!+cPPPPPPPP&}P&}PP!+g!+g!+z!+gPP!+gP!+gP!,e!,hP!+g!-O!+gP!+gP!-R!-UP!+gP!+gP!+gP!+gP!+g!+gP!+gP!-YP!-`!-c!-iP!+g!-u!-x!.Q!.d!2a!2g!2m!3s!3y!4T!5X!5_!5e!5o!5u!5{!6R!6X!6_!6e!6k!6q!6w!6}!7T!7Z!7e!7k!7u!7{PPP!8R!+g!8vP!a!]!^!?q!^!_!@_!_!`!Ax!`!a!Bl!a!b!DY!b!c!Dx!c!}!Kt!}#O!MQ#O#P%Q#P#Q!Mn#Q#R!N[#R#S4e#S#T%Q#T#o4e#o#p# O#p#q# l#q#r##U#r#s##r#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%QS%VV&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&WSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&WS%wZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&WS%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%wZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#sP&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&WSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&WSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&WSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&USXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&VP_4la%}Z&WSOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o;'S%Q;'S;=`&s<%lO%QU5xX#gQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU6lV#]Q&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7YZ&lR&WSOY%QYZ%lZr%Qrs%qsv%Qvw7{w!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU8SV#aQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8nZ&WSOY9aYZ%lZr9ars:Xsw9awx%Qx#O9a#O#Pt<%lO9aT9fZ&WSOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT:[ZOY:}YZ%lZr:}rs>zsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T;QZOY9aYZ%lZr9ars:Xsw9awx;sx#O9a#O#Pt<%lO9aT;zVbP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTt<%lO9aT=QW&WSOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP=mWOY=jZw=jwx>Vx#O=j#O#P>[#P;'S=j;'S;=`>n<%lO=jP>[ObPP>_TOY=jYZ=jZ;'S=j;'S;=`>n<%lO=jP>qP;=`<%l=jT>wP;=`<%l9aT>}ZOY:}YZ%lZr:}rs=jsw:}wx?px#O:}#O#P@[#P;'S:};'S;=`@t<%lO:}T?uVbPOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT@_VOY9aYZ<{Zr9ars:Xs;'S9a;'S;=`>t<%lO9aT@wP;=`<%l:}_ARVZZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVAoVYR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVB_X$YP&WS#fQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVCRZ#eR&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ct|!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVC{V#qR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDiVqR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVEV[#eR&WSOY%QYZ%lZr%Qrs%qs}%Q}!OCt!O!_%Q!_!`6e!`!aE{!a;'S%Q;'S;=`&s<%lO%QVFSV&vR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_FpZWY&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGc!P!Q%Q!Q![Hq![;'S%Q;'S;=`&s<%lO%QVGhX&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHT!P;'S%Q;'S;=`&s<%lO%QVH[V&oR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTHxc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#R%Q#R#SNk#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTJ[V&WS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTJv]&WSOY%QYZ%lZr%Qrs%qs{%Q{|Ko|}%Q}!OKo!O!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTKtX&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![;'S%Q;'S;=`&s<%lO%QTLhc&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![!f%Q!f!gJT!g!h%Q!h!iJT!i#R%Q#R#SMs#S#W%Q#W#XJT#X#Y%Q#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QTMxZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![La![#R%Q#R#SMs#S;'S%Q;'S;=`&s<%lO%QTNpZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![#R%Q#R#SNk#S;'S%Q;'S;=`&s<%lO%Q_! j]&WS#fQOY%QYZ%lZr%Qrs%qsz%Qz{!!c{!P%Q!P!Q!)U!Q!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%Q_!!hX&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!#YT&WSOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!#lTOz!#iz{!#{{;'S!#i;'S;=`!$j<%lO!#iZ!$OVOz!#iz{!#{{!P!#i!P!Q!$e!Q;'S!#i;'S;=`!$j<%lO!#iZ!$jOQZZ!$mP;=`<%l!#i_!$sXOY!%`YZ!#TZr!%`rs!'jsz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!%cXOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{;'S!!c;'S;=`!'d<%lO!!c_!&TZ&WSOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!&}V&WSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'gP;=`<%l!!c_!'mXOY!%`YZ!#TZr!%`rs!#isz!%`z{!(Y{;'S!%`;'S;=`!)O<%lO!%`_!(]ZOY!!cYZ!#TZr!!crs!$psz!!cz{!&O{!P!!c!P!Q!&v!Q;'S!!c;'S;=`!'d<%lO!!c_!)RP;=`<%l!%`_!)]V&WSPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!)wVPZOY!*^YZ%lZr!*^rs!+Os;'S!*^;'S;=`!,R<%lO!*^_!*cVPZOY!)UYZ%lZr!)Urs!)rs;'S!)U;'S;=`!*x<%lO!)U_!*{P;=`<%l!)U_!+TVPZOY!*^YZ%lZr!*^rs!+js;'S!*^;'S;=`!,R<%lO!*^Z!+oSPZOY!+jZ;'S!+j;'S;=`!+{<%lO!+jZ!,OP;=`<%l!+j_!,UP;=`<%l!*^T!,`u&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!d%Q!d!e!3Z!e!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o!q%Q!q!r!5X!r!z%Q!z!{!7P!{#R%Q#R#S!2c#S#U%Q#U#V!3Z#V#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a#c%Q#c#d!5X#d#l%Q#l#m!7P#m;'S%Q;'S;=`&s<%lO%QT!.za&WS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hq![!f%Q!f!gJT!g!hJq!h!iJT!i#W%Q#W#XJT#X#YJq#Y#ZJT#Z;'S%Q;'S;=`&s<%lO%QT!0Wi&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.s!P!Q%Q!Q![!0P![!f%Q!f!gJT!g!hJq!h!iJT!i!n%Q!n!o!1u!o#R%Q#R#S!2c#S#W%Q#W#XJT#X#YJq#Y#ZJT#Z#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!1|V&WS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2hZ&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0P![#R%Q#R#S!2c#S;'S%Q;'S;=`&s<%lO%QT!3`Y&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S;'S%Q;'S;=`&s<%lO%QT!4V`&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4O!R!S!4O!S!n%Q!n!o!1u!o#R%Q#R#S!3Z#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!5^X&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y;'S%Q;'S;=`&s<%lO%QT!6Q_&WS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!5y!Y!n%Q!n!o!1u!o#R%Q#R#S!5X#S#`%Q#`#a!1u#a;'S%Q;'S;=`&s<%lO%QT!7U_&WSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8T!P!Q%Q!Q![!:c![!c%Q!c!i!:c!i#T%Q#T#Z!:c#Z;'S%Q;'S;=`&s<%lO%QT!8Y]&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i#T%Q#T#Z!9R#Z;'S%Q;'S;=`&s<%lO%QT!9Wc&WSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9R![!c%Q!c!i!9R!i!r%Q!r!sJq!s#R%Q#R#S!8T#S#T%Q#T#Z!9R#Z#d%Q#d#eJq#e;'S%Q;'S;=`&s<%lO%QT!:ji&WS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!hX#oR&WSOY%QYZ%lZr%Qrs%qs![%Q![!]!?T!];'S%Q;'S;=`&s<%lO%QV!?[V&tR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!?xV!PR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@fY&]Z&WSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!AU!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!A]X#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV!BPX!bR&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!BsY&[R&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Cc!a;'S%Q;'S;=`&s<%lO%QU!CjY#hQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`!a!AU!a;'S%Q;'S;=`&s<%lO%Q_!DcV&`X#nQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!EPX%{Z&WSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!El#^;'S%Q;'S;=`&s<%lO%QV!EqX&WSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!F^#c;'S%Q;'S;=`&s<%lO%QV!FcX&WSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!GO#i;'S%Q;'S;=`&s<%lO%QV!GTX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Gp#Y;'S%Q;'S;=`&s<%lO%QV!GuX&WSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hb#g;'S%Q;'S;=`&s<%lO%QV!HgX&WSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!IS#Z;'S%Q;'S;=`&s<%lO%QV!IXX&WSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!It#U;'S%Q;'S;=`&s<%lO%QV!IyX&WSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Jf#W;'S%Q;'S;=`&s<%lO%QV!JkX&WSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!KW#Y;'S%Q;'S;=`&s<%lO%QV!K_V&rR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!K{a&PZ&WSOY%QYZ%lZr%Qrs%qst%Qtu!Ktu!Q%Q!Q![!Kt![!c%Q!c!}!Kt!}#R%Q#R#S!Kt#S#T%Q#T#o!Kt#o;'S%Q;'S;=`&s<%lO%Q_!MXVuZ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!MuVsR&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!NcX#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV# VV}R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_# uZ&|X#cQ&WSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`#p%Q#p#q#!h#q;'S%Q;'S;=`&s<%lO%QU#!oV#dQ&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##]V|R&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT##yV#tP&WSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q",tokenizers:[0,1,2,3],topRules:{Program:[0,3]},dynamicPrecedences:{27:1,230:-1,241:-1},specialized:[{term:229,get:O=>lT[O]||-1}],tokenPrec:7067}),hT=Ie.define({name:"java",parser:cT.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch|finally)\b/}),LabeledStatement:qc,SwitchBlock:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},Block:zO({closing:"}"}),BlockComment:()=>null,Statement:Ce({except:/^{/})}),ft.add({["Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer"]:fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function fT(){return new Je(hT)}const QT=De({String:f.string,Number:f.number,"True False":f.bool,PropertyName:f.propertyName,Null:f.null,",":f.separator,"[ ]":f.squareBracket,"{ }":f.brace}),uT=Ee.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",stateData:"#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",goto:"!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",maxTerm:25,nodeProps:[["openedBy",7,"{",12,"["],["closedBy",8,"}",13,"]"]],propSources:[QT],skippedNodes:[0],repeatNodeCount:2,tokenData:"(p~RaXY!WYZ!W]^!Wpq!Wrs!]|}$i}!O$n!Q!R$w!R![&V![!]&h!}#O&m#P#Q&r#Y#Z&w#b#c'f#h#i'}#o#p(f#q#r(k~!]Oc~~!`Upq!]qr!]rs!rs#O!]#O#P!w#P~!]~!wOe~~!zXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#g~#jR!Q![#s!c!i#s#T#Z#s~#vR!Q![$P!c!i$P#T#Z$P~$SR!Q![$]!c!i$]#T#Z$]~$`R!Q![!]!c!i!]#T#Z!]~$nOh~~$qQ!Q!R$w!R![&V~$|RT~!O!P%V!g!h%k#X#Y%k~%YP!Q![%]~%bRT~!Q![%]!g!h%k#X#Y%k~%nR{|%w}!O%w!Q![%}~%zP!Q![%}~&SPT~!Q![%}~&[ST~!O!P%V!Q![&V!g!h%k#X#Y%k~&mOg~~&rO]~~&wO[~~&zP#T#U&}~'QP#`#a'T~'WP#g#h'Z~'^P#X#Y'a~'fOR~~'iP#i#j'l~'oP#`#a'r~'uP#`#a'x~'}OS~~(QP#f#g(T~(WP#i#j(Z~(^P#X#Y(a~(fOQ~~(kOW~~(pOV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),$T=Ie.define({name:"json",parser:uT.configure({props:[pt.add({Object:Ce({except:/^\s*\}/}),Array:Ce({except:/^\s*\]/})}),ft.add({"Object Array":fO})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function dT(){return new Je($T)}const DQ=1,pT=2,mT=3,PT=82,gT=76,ST=117,XT=85,yT=97,xT=122,bT=65,wT=90,WT=95,wl=48,MQ=34,TT=40,NQ=41,YT=32,LQ=62,vT=new de(O=>{if(O.next==gT||O.next==XT?O.advance():O.next==ST&&(O.advance(),O.next==wl+8&&O.advance()),O.next!=PT||(O.advance(),O.next!=MQ))return;O.advance();let e="";for(;O.next!=TT;){if(O.next==YT||O.next<=13||O.next==NQ)return;e+=String.fromCharCode(O.next),O.advance()}for(O.advance();;){if(O.next<0)return O.acceptToken(DQ);if(O.next==NQ){let t=!0;for(let i=0;t&&i{if(O.next==LQ)O.peek(1)==LQ&&O.acceptToken(pT,1);else{let e=!1,t=0;for(;;t++){if(O.next>=bT&&O.next<=wT)e=!0;else{if(O.next>=yT&&O.next<=xT)return;if(O.next!=WT&&!(O.next>=wl&&O.next<=wl+9))break}O.advance()}e&&t>1&&O.acceptToken(mT)}},{extend:!0}),kT=De({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":f.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":f.modifier,"if else switch for while do case default return break continue goto throw try catch":f.controlKeyword,"co_return co_yield co_await":f.controlKeyword,"new sizeof delete static_assert":f.operatorKeyword,"NULL nullptr":f.null,this:f.self,"True False":f.bool,"TypeSize PrimitiveType":f.standard(f.typeName),TypeIdentifier:f.typeName,FieldIdentifier:f.propertyName,"CallExpression/FieldExpression/FieldIdentifier":f.function(f.propertyName),"ModuleName/Identifier":f.namespace,PartitionName:f.labelName,StatementIdentifier:f.labelName,"Identifier DestructorName":f.variableName,"CallExpression/Identifier":f.function(f.variableName),"CallExpression/ScopedIdentifier/Identifier":f.function(f.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":f.function(f.definition(f.variableName)),NamespaceIdentifier:f.namespace,OperatorName:f.operator,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Number:f.number,String:f.string,"RawString SystemLibString":f.special(f.string),CharLiteral:f.character,EscapeSequence:f.escape,"UserDefinedLiteral/Identifier":f.literal,PreProcArg:f.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":f.processingInstruction,MacroName:f.special(f.name),"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,"< >":f.angleBracket,". ->":f.derefOperator,", ;":f.separator}),ZT={__proto__:null,bool:34,char:34,int:34,float:34,double:34,void:34,size_t:34,ssize_t:34,intptr_t:34,uintptr_t:34,charptr_t:34,int8_t:34,int16_t:34,int32_t:34,int64_t:34,uint8_t:34,uint16_t:34,uint32_t:34,uint64_t:34,char8_t:34,char16_t:34,char32_t:34,char64_t:34,const:68,volatile:70,restrict:72,_Atomic:74,mutable:76,constexpr:78,constinit:80,consteval:82,struct:86,__declspec:90,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:786,true:786,FALSE:788,false:788,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:284,import:288,case:298,default:300,if:310,else:316,switch:320,do:324,while:326,for:332,return:336,break:340,continue:344,goto:348,co_return:352,co_yield:356,using:364,typedef:368,namespace:382,new:400,delete:402,co_await:404,concept:408,enum:412,static_assert:416,friend:424,union:426,explicit:432,operator:446,module:458,signed:520,unsigned:520,long:520,short:520,decltype:530,auto:532,sizeof:568,NULL:574,nullptr:588,this:590},RT={__proto__:null,"<":131},UT={__proto__:null,">":135},VT={__proto__:null,operator:390,new:578,delete:584},zT=Ee.deserialize({version:14,states:"$;fQ!QQVOOP'gOUOOO(XOWO'#CdO,RQUO'#CgO,]QUO'#FkO-sQbO'#CwO.UQUO'#CwO0TQUO'#K[O0[QUO'#CvO0gOpO'#DvO0oQ!dO'#D]OOQR'#JP'#JPO5XQVO'#GVO5fQUO'#JWOOQQ'#JW'#JWO8zQUO'#KnO{QVO'#E^O?]QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?bQVO'#EfO@XQVO'#EiOBUQUO'#FPOBvQUO'#FiOOQR'#Fk'#FkOB{QUO'#FkOOQR'#LR'#LROOQR'#LQ'#LQOETQVO'#KROFxQUO'#LWOGVQUO'#KrOGkQUO'#LWOH]QUO'#LYOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#HX'#HXOOQR'#K}'#K}OOQR'#J`'#J`Q!QQVOOOHkQVO'#F^OIWQUO'#EhOI_QUOOOKZQVO'#HhOKkQUO'#HhONVQUO'#KrONaQUO'#KrOOQQ'#Kr'#KrO!!_QUO'#KrOOQQ'#Jr'#JrO!!lQUO'#HyOOQQ'#K['#K[O!&^QUO'#K[O!&zQUO'#KRO!(zQVO'#I^O!(zQVO'#IaOCQQUO'#KROOQQ'#Iq'#IqOOQQ'#KR'#KRO!,}QUO'#K[OOQR'#KZ'#KZO!-UQUO'#DYO!/mQUO'#KoOOQQ'#Ko'#KoO!/tQUO'#KoO!/{QUO'#ETO!0QQUO'#EWO!0VQUO'#FRO8zQUO'#FPO!QQVO'#F_O!0[Q#vO'#FaO!0gQUO'#FlO!0oQUO'#FqO!0tQVO'#FsO!0oQUO'#FvO!3sQUO'#FwO!3xQVO'#FyO!4SQUO'#F{O!4XQUO'#F}O!4^QUO'#GPO!4cQVO'#GRO!(zQVO'#GTO!4jQUO'#GqO!4xQUO'#GZO!(zQVO'#FfO!6VQUO'#FfO!6[QVO'#GaO!6cQUO'#GbO!6nQUO'#GoO!6sQUO'#GsO!6xQUO'#G{O!7jQ&lO'#HjO!:mQUO'#GvO!:}QUO'#HYO!;YQUO'#H[O!;bQUO'#DWO!;bQUO'#HvO!;bQUO'#HwO!;yQUO'#HxO!<[QUO'#H}O!=PQUO'#IOO!>uQVO'#IcO!(zQVO'#IeO!?PQUO'#IhO!?WQVO'#IkP!@}{,UO'#CbP!6n{,UO'#CbP!AY{7[O'#CbP!6n{,UO'#CbP!A_{,UO'#CbP!AjOSO'#I{POOO)CEo)CEoOOOO'#I}'#I}O!AtOWO,59OOOQR,59O,59OO!(zQVO,59UOOQQ,59W,59WO!(zQVO,5;ROOQR,5rOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[OOQR'#I]'#I]O!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!(zQVO,5>sO!DOQVO,5>{OOQQ,5?X,5?XO!EqQVO'#ChO!IjQUO'#CyOOQQ,59c,59cOOQQ,59b,59bOOQQ,5=O,5=OO!IwQ&lO,5=nO!?PQUO,5?SO!LkQVO,5?VO!LrQbO,59cO!L}QVO'#FYOOQQ,5?Q,5?QO!M_QVO,59VO!MfO`O,5:bO!MkQbO'#D^O!M|QbO'#K_O!N[QbO,59wO!NdQbO'#CwO!NuQUO'#CwO!NzQUO'#K[O# UQUO'#CvOOQR-E<}-E<}O# aQUO,5ApO# hQVO'#EfO@XQVO'#EiOBUQUO,5;kOOQR,5m,5>mO#3gQUO'#CgO#4]QUO,5>qO#6OQUO'#IfOOQR'#JO'#JOO#6WQUO,5:xO#6tQUO,5:xO#7eQUO,5:xO#8YQUO'#CtO!0QQUO'#ClOOQQ'#JX'#JXO#6tQUO,5:xO#8bQUO,5;QO!4xQUO'#C}O#9kQUO,5;QO#9pQUO,5>RO#:|QUO'#C}O#;dQUO,5>|O#;iQUO'#KxO#}QUO'#L]O#?UQUO,5>VO#?ZQbO'#CwO#?fQUO'#GdO#?kQUO'#E^O#@[QUO,5;kO#@sQUO'#LOO#@{QUO,5;rOKkQUO'#HgOBUQUO'#HhO#AQQUO'#KrO!6nQUO'#HkO#AxQUO'#CtO!0tQVO,5QO$(WQUO'#E[O$(eQUO,5>SOOQQ,5>T,5>TO$,RQVO'#C{OOQQ-E=p-E=pOOQQ,5>e,5>eOOQQ,59`,59`O$,]QUO,5>xO$.]QUO,5>{O!6nQUO,59tO$.pQUO,5;qO$.}QUO,5<|O!0QQUO,5:oOOQQ,5:r,5:rO$/YQUO,5;mO$/_QUO'#KnOBUQUO,5;kOOQR,5;y,5;yO$0OQUO'#FcO$0^QUO'#FcO$0cQUO,5;{O$3|QVO'#FnO!0tQVO,5eQUO,5pQUO,5=]O$>uQUO,5=]O!4xQUO,5}QUO,5uQUO,5<|O$DXQUO,5<|O$DdQUO,5=ZO!(zQVO,5=_O!(zQVO,5=gO#NeQUO,5=nOOQQ,5>U,5>UO$FiQUO,5>UO$FsQUO,5>UO$FxQUO,5>UO$F}QUO,5>UO!6nQUO,5>UO$H{QUO'#K[O$ISQUO,5=pO$I_QUO,5=bOKkQUO,5=pO$JXQUO,5=tOOQR,5=t,5=tO$JaQUO,5=tO$LlQVO'#H]OOQQ,5=v,5=vO!;]QUO,5=vO%#gQUO'#KkO%#nQUO'#K]O%$SQUO'#KkO%$^QUO'#DyO%$oQUO'#D|O%'lQUO'#K]OOQQ'#K]'#K]O%)_QUO'#K]O%#nQUO'#K]O%)dQUO'#K]OOQQ,59r,59rOOQQ,5>b,5>bOOQQ,5>c,5>cO%)lQUO'#H{O%)tQUO,5>dOOQQ,5>d,5>dO%-`QUO,5>dO%-kQUO,5>iO%1VQVO,5>jO%1^QUO,5>}O# hQVO'#EfO%4dQUO,5>}OOQQ,5>},5>}O%5TQUO,5?PO%7XQUO,5?SO!<[QUO,5?SO%9TQUO,5?VO%zQUO1G0mOOQQ1G0m1G0mO%@WQUO'#CoO%BgQbO'#CwO%BrQUO'#CrO%BwQUO'#CrO%B|QUO1G.tO#AxQUO'#CqOOQQ1G.t1G.tO%EPQUO1G4^O%FVQUO1G4_O%GxQUO1G4_O%IkQUO1G4_O%K^QUO1G4_O%MPQUO1G4_O%NrQUO1G4_O&!eQUO1G4_O&$WQUO1G4_O&%yQUO1G4_O&'lQUO1G4_O&)_QUO1G4_O&+QQUO'#KQO&,ZQUO'#KQO&,cQUO,59SOOQQ,5=Q,5=QO&.kQUO,5=QO&.uQUO,5=QO&.zQUO,5=QO&/PQUO,5=QO!6nQUO,5=QO#NeQUO1G3YO&/ZQUO1G4nO!<[QUO1G4nO&1VQUO1G4qO&2xQVO1G4qOOQQ1G.}1G.}OOQQ1G.|1G.|OOQQ1G2j1G2jO!IwQ&lO1G3YO&3PQUO'#LPO@XQVO'#EiO&4YQUO'#F]OOQQ'#Jb'#JbO&4_QUO'#FZO&4jQUO'#LPO&4rQUO,5;tO&4wQUO1G.qOOQQ1G.q1G.qOOQR1G/|1G/|O&6jQ!dO'#JQO&6oQbO,59xO&9QQ!eO'#D`O&9XQ!dO'#JSO&9^QbO,5@yO&9^QbO,5@yOOQR1G/c1G/cO&9iQbO1G/cO&9nQ&lO'#GfO&:lQbO,59cOOQR1G7[1G7[O#@[QUO1G1VO&:wQUO1G1^OBUQUO1G1VO&=YQUO'#CyO#*wQbO,59cO&@{QUO1G6tOOQR-E<|-E<|O&B_QUO1G0dO#6WQUO1G0dOOQQ-E=V-E=VO#6tQUO1G0dOOQQ1G0l1G0lO&CSQUO,59iOOQQ1G3m1G3mO&CjQUO,59iO&DQQUO,59iO!M_QVO1G4hO!(zQVO'#JZO&DlQUO,5AdOOQQ1G0o1G0oO!(zQVO1G0oO!6nQUO'#JoO&DtQUO,5AwOOQQ1G3q1G3qOOQR1G1V1G1VO&J]QVO'#FOO!M_QVO,5;sOOQQ,5;s,5;sOBUQUO'#JdO&JmQUO,5AjO&JuQVO'#E[OOQR1G1^1G1^O&MdQUO'#L]OOQR1G1o1G1oOOQR-E=g-E=gOOQR1G7^1G7^O#DhQUO1G7^OGVQUO1G7^O#DhQUO1G7`OOQR1G7`1G7`O&MlQUO'#HOO&MtQUO'#LXOOQQ,5=i,5=iO&NSQUO,5=kO&NXQUO,5=lOOQR1G7a1G7aO#EfQVO1G7aO&N^QUO1G7aO' dQVO,5=lOOQR1G1U1G1UO$.vQUO'#E]O'!YQUO'#E]OOQQ'#Kz'#KzO'!sQUO'#KyO'#OQUO,5;UO'#WQUO'#ElO'#kQUO'#ElO'$OQUO'#EtOOQQ'#J]'#J]O'$TQUO,5;cO'$zQUO,5;cO'%uQUO,5;dO'&{QVO,5;dOOQQ,5;d,5;dO''VQVO,5;dO'&{QVO,5;dO''^QUO,5;bO'(ZQUO,5;eO'(fQUO'#KqO'(nQUO,5:vO'(sQUO,5;fOOQQ1G0n1G0nOOQQ'#J^'#J^O''^QUO,5;bO!4xQUO'#E}OOQQ,5;b,5;bO')nQUO'#E`O'+hQUO'#E{OHrQUO1G0nO'+mQUO'#EbOOQQ'#JY'#JYO'-VQUO'#KsOOQQ'#Ks'#KsO'.PQUO1G0eO'.wQUO1G3lO'/}QVO1G3lOOQQ1G3l1G3lO'0XQVO1G3lO'0`QUO'#L`O'1lQUO'#KYO'1zQUO'#KXO'2VQUO,59gO'2_QUO1G/`O'2dQUO'#FPOOQR1G1]1G1]OOQR1G2h1G2hO$>uQUO1G2hO'2nQUO1G2hO'2yQUO1G0ZOOQR'#Ja'#JaO'3OQVO1G1XO'8wQUO'#FTO'8|QUO1G1VO!6nQUO'#JeO'9[QUO,5;}O$0^QUO,5;}OOQQ'#Fd'#FdOOQQ,5;},5;}O'9jQUO1G1gOOQR1G1g1G1gO'9rQUO,5}QUO1G2aOOQQ'#Cu'#CuO'DRQUO'#G]O'D|QUO'#G]O'ERQUO'#LSO'EaQUO'#G`OOQQ'#LT'#LTO'EoQUO1G2aO'EtQVO1G1lO'HVQVO'#GVOBUQUO'#FWOOQR'#Jf'#JfO'EtQVO1G1lO'HaQUO'#FwOOQR1G2g1G2gOOQR,5;x,5;xO'HfQVO,5;xO'HmQUO1G2hO'HrQUO'#JhO'2nQUO1G2hO!(zQVO1G2uO'HzQUO1G2yO'JTQUO1G3RO'KZQUO1G3YOOQQ1G3p1G3pO'KoQUO1G3pOOQR1G3[1G3[O'KtQUO'#K[O'2dQUO'#LUOGkQUO'#LWOOQR'#Gz'#GzO#DhQUO'#LYOOQR'#HR'#HRO'LOQUO'#GwO'$OQUO'#GvOOQR1G2|1G2|O'L{QUO1G2|O'MrQUO1G3[O'M}QUO1G3`O'NSQUO1G3`OOQR1G3`1G3`O'N[QUO'#H^OOQR'#H^'#H^O( eQUO'#H^O!(zQVO'#HaO!(zQVO'#H`OOQR'#L['#L[O( jQUO'#L[OOQR'#Jl'#JlO( oQVO,5=wOOQQ,5=w,5=wO( vQUO'#H_O(!OQUO'#H[OOQQ1G3b1G3bO(!YQUO,5@wOOQQ,5@w,5@wO%)_QUO,5@wO%)dQUO,5@wO%$^QUO,5:eO(%wQUO'#KlO(&VQUO'#KlOOQQ,5:e,5:eOOQQ'#JT'#JTO(&bQUO'#D}O(&lQUO'#KrOGkQUO'#LWO('hQUO'#D}OOQQ'#Hq'#HqOOQQ'#Hs'#HsOOQQ'#Ht'#HtOOQQ'#Km'#KmOOQQ'#JV'#JVO('rQUO,5:hOOQQ,5:h,5:hO((oQUO'#LWO((|QUO'#HuO()dQUO,5@wO()kQUO'#H|O()vQUO'#L_O(*OQUO,5>gO(*TQUO'#L^OOQQ1G4O1G4OO(-zQUO1G4OO(.RQUO1G4OO(.YQUO1G4UO(/`QUO1G4UO(/eQUO,5A}O!6nQUO1G4iO!(zQVO'#IjOOQQ1G4n1G4nO(/jQUO1G4nO(1mQVO1G4qPOOO1G.h1G.hP!A_{,UO1G.hP(3mQUO'#LfP(3x{,UO1G.hP(3}{7[O1G.hPO{O-E=t-E=tPOOO,5BO,5BOP(4V{,UO,5BOPOOO1G5R1G5RO!(zQVO7+$[O(4[QUO'#CyOOQQ,59^,59^O(4gQbO,59cO(4rQbO,59^OOQQ,59],59]OOQQ7+)x7+)xO!M_QVO'#JuO(4}QUO,5@lOOQQ1G.n1G.nOOQQ1G2l1G2lO(5VQUO1G2lO(5[QUO7+(tOOQQ7+*Y7+*YO(7pQUO7+*YO(7wQUO7+*YO(1mQVO7+*]O#NeQUO7+(tO(8UQVO'#JcO(8iQUO,5AkO(8qQUO,5;vOOQQ'#Co'#CoOOQQ,5;w,5;wO!(zQVO'#F[OOQQ-E=`-E=`O!M_QVO,5;uOOQQ1G1`1G1`OOQQ,5?l,5?lOOQQ-E=O-E=OOOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(9zQ!eO'#K`O(:RQMkO'#K`O(:YQ!eO'#K`OOQR'#K`'#K`OOQR'#JR'#JRO(:aQ!eO,59zOOQQ,59z,59zO(:hQbO,5?nOOQQ-E=Q-E=QO(:vQbO1G6eOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'8|QUO7+&qO(;RQUO7+&OO#6WQUO7+&OO(;vQUO1G/TO(<^QUO1G/TO(kQUO,5?uOOQQ-E=X-E=XO(?tQUO7+&ZOOQQ,5@Z,5@ZOOQQ-E=m-E=mO(?yQUO'#LPO@XQVO'#EiO(AVQUO1G1_OOQQ1G1_1G1_O(B`QUO,5@OOOQQ,5@O,5@OOOQQ-E=b-E=bO(BtQUO'#KqOOQR7+,x7+,xO#DhQUO7+,xOOQR7+,z7+,zO(CRQUO,5=jO#DsQUO'#JkO(CdQUO,5AsOOQR1G3V1G3VOOQR1G3W1G3WO(CrQUO7+,{OOQR7+,{7+,{O(EjQUO,5:wO(GXQUO'#EwO!(zQVO,5;VO(GzQUO,5:wO(HUQUO'#EpO(HgQUO'#EzOOQQ,5;Z,5;ZO#K]QVO'#ExO(H}QUO,5:wO(IUQUO'#EyO#GgQUO'#J[O(JnQUO,5AeOOQQ1G0p1G0pO(JyQUO,5;WO!<[QUO,5;^O(KdQUO,5;_O(KrQUO,5;WO(NUQUO,5;`OOQQ-E=Z-E=ZO(N^QUO1G0}OOQQ1G1O1G1OO) XQUO1G1OO)!_QVO1G1OO)!fQVO1G1OO)!pQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)#mQUO'#JpO)#wQUO,5A]OOQQ1G0b1G0bOOQQ-E=[-E=[O)$PQUO,5;iO!<[QUO,5;iO)$|QVO,5:zO)%TQUO,5;gO$ mQUO7+&YOOQQ7+&Y7+&YO!(zQVO'#EfO)%[QUO,5:|OOQQ'#Kt'#KtOOQQ-E=W-E=WOOQQ,5A_,5A_OOQQ'#Jm'#JmO))PQUO7+&PPOQQ7+&P7+&POOQQ7+)W7+)WO))wQUO7+)WO)*}QVO7+)WOOQQ,5>n,5>nO$)YQVO'#JtO)+UQUO,5@sOOQQ1G/R1G/ROOQQ7+$z7+$zO)+aQUO7+(SO)+fQUO7+(SOOQR7+(S7+(SO$>uQUO7+(SOOQQ7+%u7+%uOOQR-E=_-E=_O!0VQUO,5;oOOQQ,5@P,5@POOQQ-E=c-E=cO$0^QUO1G1iOOQQ1G1i1G1iOOQR7+'R7+'ROOQR1G1t1G1tOBUQUO,5;rO),SQUO,5hQUO,5VQUO7+(aO)?]QUO7+(eO)?bQVO7+(eOOQQ7+(m7+(mOOQQ7+)[7+)[O)?jQUO'#KkO)?tQUO'#KkOOQR,5=c,5=cO)@RQUO,5=cO!;bQUO,5=cO!;bQUO,5=cO!;bQUO,5=cOOQR7+(h7+(hOOQR7+(v7+(vOOQR7+(z7+(zOOQR,5=x,5=xO)@WQUO,5={O)A^QUO,5=zOOQR,5Av,5AvOOQR-E=j-E=jOOQQ1G3c1G3cO)BdQUO,5=yO)BiQVO'#EfOOQQ1G6c1G6cO%)_QUO1G6cO%)dQUO1G6cOOQQ1G0P1G0POOQQ-E=R-E=RO)EQQUO,5AWO(%wQUO'#JUO)E]QUO,5AWO)E]QUO,5AWO)EeQUO,5:iO8zQUO,5:iOOQQ,5>^,5>^O)EoQUO,5ArO)EvQUO'#EVO)GQQUO'#EVO)GkQUO,5:iO)GuQUO'#HmO)GuQUO'#HnOOQQ'#Kp'#KpO)HdQUO'#KpO!(zQVO'#HoOOQQ,5:i,5:iO)IUQUO,5:iO!M_QVO,5:iOOQQ-E=T-E=TOOQQ1G0S1G0SOOQQ,5>a,5>aO)IZQUO1G6cO!(zQVO,5>hO)LxQUO'#JsO)MTQUO,5AyOOQQ1G4R1G4RO)M]QUO,5AxOOQQ,5Ax,5AxOOQQ7+)j7+)jO*!zQUO7+)jOOQQ7+)p7+)pO*'yQVO1G7iO*){QUO7+*TO**QQUO,5?UO*+WQUO7+*]POOO7+$S7+$SP*,yQUO'#LgP*-RQUO,5BQP*-W{,UO7+$SPOOO1G7j1G7jO*-]QUO<RQUO'#ElOOQQ1G0z1G0zOOQQ7+&j7+&jO*>gQUO7+&jO*?mQVO7+&jOOQQ7+&h7+&hOOQQ,5@[,5@[OOQQ-E=n-E=nO*@iQUO1G1TO*@sQUO1G1TO*A^QUO1G0fOOQQ1G0f1G0fO*BdQUO'#K|O*BlQUO1G1ROOQQ<OOOQQ-E=k-E=kPOQQ<uQUO<WO)GuQUO'#JqO*N`QUO1G0TO*NqQVO1G0TOOQQ1G3v1G3vO*NxQUO,5>XO+ TQUO,5>YO+ rQUO,5>ZO+!xQUO1G0TO%)dQUO7++}O+$OQUO1G4SOOQQ,5@_,5@_OOQQ-E=q-E=qOOQQ<o,5>oO+/wQUOANAYOOQRANAYANAYO+/|QUO7+'aOOQRAN@dAN@dO+1YQVOAN@oO+1aQUOAN@oO!0tQVOAN@oO+2jQUOAN@oO+2oQUOANAOO+2zQUOANAOO+4QQUOANAOOOQRAN@oAN@oO!M_QVOANAOOOQRANAPANAPO+4VQUO7+'}O)7eQUO7+'}OOQQ7+(P7+(PO+4hQUO7+(PO+5nQVO7+(PO+5uQVO7+'iO+5|QUOANAkOOQR7+(i7+(iOOQR7+)Q7+)QO+6RQUO7+)QO+6WQUO7+)QOOQQ<= i<= iO+6`QUO7+,^O+6hQUO1G5[OOQQ1G5[1G5[O+6sQUO7+%oOOQQ7+%o7+%oO+7UQUO7+%oO*NqQVO7+%oOOQQ7+)b7+)bO+7ZQUO7+%oO+8aQUO7+%oO!M_QVO7+%oO+8kQUO1G0]O*LyQUO1G0]O)EvQUO1G0]OOQQ1G0a1G0aO+9YQUO1G3rO+:`QVO1G3rOOQQ1G3r1G3rO+:jQVO1G3rO+:qQUO,5@]OOQQ-E=o-E=oOOQQ1G3s1G3sO%)_QUO<= iOOQQ7+*[7+*[POQQ,5@c,5@cPOQQ-E=u-E=uOOQQ1G/}1G/}OOQQ,5?y,5?yOOQQ-E=]-E=]OOQRG26tG26tO+;YQUOG26ZO!0tQVOG26ZO+UQUO<ZQUO<`QUO<uAN>uO+COQUOAN>uO+DUQUOAN>uO!M_QVOAN>uO+DZQUO<|QUO'#K[O,?^QUO'#CyO,?lQbO,59cO,6eQUO7+&OO,XP>r?U?jFdMf!&l!-UP!4Q!4u!5jP!6UPPPPPPPP!6oP!8ZPP!9n!;YP!;`PPPPPP!;cP!;cPP!;cPPPPPPPPP!;o!?XP!?[PP!?x!@mPPPPP!@qP>u!BUPP>u!D_!F`!Fn!HV!IxP!JTP!Jd!Jd!Mv##X#$q#(P#+]!F`#+gPP!F`#+n#+t#+g#+g#+wP#+{#,j#,j#,j#,j!IxP#-T#-f#/lP#0SP#1qP#1u#2P#2v#3R#5a#5i#5i#5p#1uP#1uP#6U#6[P#6fPP#7T#7t#8h#7TP#9[#9hP#7TP#7TPP#7T#7TP#7TP#7TP#7TP#7TP#7TP#7TP#9k#6f#:ZP#:rP#;Z#;Z#;Z#;Z#;h#1uP#u>u>u$%V!@m!@m!@m!@m!@m!@m!6o!6o!6o$%jP$'X$'g!6o$'mPP!6o$)}$*Q#B[$*T:{7o$-]$/W$0w$2g7oPP7o$4Z7oP7o7oP7oP$7c7oP7oPP7o$7oPPPPPPPPP*]P$:y$;P$=h$?p$?v$@^$@h$@s$AS$AY$Bj$Ci$Cp$Cw$C}$DV$Da$Dg$Dv$D|$EV$E_$Ej$Ep$Ez$FQ$F[$Fc$Ft$Fz$GQP$GW$G`$Gg$Gu$Ie$Ik$Iq$Ix$JRPPPPPPPP$JX$J]PPPPP%#a$)}%#d%&n%(xP%)V%)YPPPPPPPPPP%)f%*i%*o%*s%,l%-{%.n%.u%1W%1^PPP%1h%1s%1v%1|%3T%3W%3d%3n%3r%4x%5m%5s#BeP%6^%6p%6s%7V%7e%7i%7o%7u$)}$*Q$*Q%7x%7{P%8V%8YR#cP'dmO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jU%om%p7UQ&m!`Q(k#]d0S*O0P0Q0R0U5R5S5T5W8UR7U3Xf}Oaewx{!g&S'e*r-f&v$i[!W!X!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&W&b&f&x&y&|'O'P'b'j'k'z(a(c(j)m)s*i*j*m*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-j.S.T.X/Q/T/_/f/o/q/v/x1O1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jS%`f0k#d%jgnp|#O$g$|$}%S%d%h%i%w&s'u'v(R*Z*a*c*u+^,m,w-`-s-z.i.p.r0`0|0}1R1V2b2m5e6k;[;];^;d;e;f;s;t;u;v;z;{;|;}<[<]<^S%qm!YS&u!h#PQ']!tQ'h!yQ'i!zQ(k#`Q(l#]Q(m#^Q*y%kQ,X&lQ,^&nQ-T'^Q-g'gQ-n'rS.u([4]Q/i)hQ0h*nQ2T,]Q2[,dQ3S-hQ4f/PQ4j/WQ5j1QQ6`2WQ7R3TQ8e6_Q9i8OR;_1T$|#hS!]$y%Q%T%Z&j&k'Q'X'Z'a'c(b(f(i(x(y)S)T)U)V)W)X)Y)Z)[)])^)_)`)l)r)y+Y+h,P,T,k,v-k-l.P.|/s0c0e0j0l0z1c1|2d2k3V3g3h4g4h4n4q4w4y4}5O5h5t5{6Y6i6m6w7O7u7v7x8W8X8g8j8n8v9X9`9o9u:Q:X:^:d:mQ&p!dQ(h#ZQ(t#bQ)k$T[*t%e*X0n2c2j3OQ,_&oQ/R(gQ/V(lQ/^(uS/l)j/SQ0u+RS4u/m/nR8S4v'e![O[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:j'e!VO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'e'j'k'z(a(c(j)m)s*i*j*m*r*s*w+X+Z+i+k+l,Q,S,o,r,x-^-_-b-f-j.S.T.X/Q/T/_/f/o/q/v/x0k1O1T1d1e1o1s1}2P2f2i2l2x2}3Q3m4S4V4[4e5^5i5u6c6g6j6l6n6x6z7P7f7n7q8i8k8q8w8x9V9Z9a9c9p9s9t:P:S:Y:[:a:f:jQ)P#kS+R%y0vQ/u)tk4R.j3w3{4O4P7g7i7j7l7o9]9^:VQ)R#kk4Q.j3w3{4O4P7g7i7j7l7o9]9^:Vl)Q#k.j3w3{4O4P7g7i7j7l7o9]9^:VT+R%y0v`UOwx!g&S'e*r-fW$`[e$e(c#l$p_!f!u!}#R#S#T#U#V#Z$S$T$l%U&U&Y&c&m'_(O(Q(V(_(h)k)q+]+b+c+u+z,Y,l,{-R-r-w.Z.[.b.c.g.t.x1W1[1i1n1p2o3`3a3b3t3x5n6R6T7`8_![%cg$g%d%i&s*Z*u+^,m,w-`0}1R2b;[;];^;e;f;s;t;u;v;z;{;}<[<]<^Y%snp%w-s.il(}#k.j3w3{4O4P7g7i7j7l7o9]9^:VS;i'u-zU;j(R.p.r&| MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ArgumentList ( ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec ) Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator DeclarationList ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:426,nodeProps:[["group",-35,1,8,11,14,15,16,18,71,72,100,101,102,104,192,209,230,243,244,271,272,273,278,281,282,283,285,286,287,288,291,293,294,295,296,297,"Expression",-13,17,24,25,26,42,256,257,258,259,263,264,266,267,"Type",-19,126,129,148,151,153,154,159,161,164,165,167,169,171,173,175,177,179,180,189,"Statement"]],propSources:[kT],skippedNodes:[0,3,4,5,6,7,10,298,299,300,301,302,303,304,305,306,307,348,349],repeatNodeCount:41,tokenData:"&*r7ZR!UOX$eXY({YZ.gZ]$e]^+P^p$epq({qr.}rs0}st2ktu$euv!7dvw!9bwx!;exy!O{|!?R|}!AV}!O!BQ!O!P!DX!P!Q#+y!Q!R#Az!R![$(x![!]$Ag!]!^$Cc!^!_$D^!_!`%1W!`!a%2X!a!b%5_!b!c$e!c!n%6Y!n!o%7q!o!w%6Y!w!x%7q!x!}%6Y!}#O%:n#O#P%u#Y#]4Y#]#^NZ#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e4eb)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#o4Y#o;'S$e;'S;=`(u<%lO$e4e5xd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#X4Y#X#Y7W#Y#o4Y#o;'S$e;'S;=`(u<%lO$e4e7cd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#Y4Y#Y#Z8q#Z#o4Y#o;'S$e;'S;=`(u<%lO$e4e8|d)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#]4Y#]#^:[#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e:gd)[W(qQ'g&j'n.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#b4Y#b#c;u#c#o4Y#o;'S$e;'S;=`(u<%lO$e4e][)T,g)[W(qQ%[!b'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!?`^)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|!@[|!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!@gY)[W!X-y(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!AbY!h,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!B__)[W(qQ%[!b!Y,g'g&jOY$eZr$ers%^sw$ewx(Ox}$e}!O!@[!O!_$e!_!`!8g!`!a!C^!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!CiY(y-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Dd^)[W(qQ'g&j(x,gOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!E`!P!Q$e!Q![!GY![#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Ei[)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!F_!P#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!FjY)Y,k)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]!Gen)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Icx!Q$e!Q![!GY![!g$e!g!h#$w!h!i#*Y!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#X$e#X#Y#$w#Y#Z#*Y#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2T!IjY(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![!JY![#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O2T!Jcn(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Icx!Q(O!Q![!JY![!g(O!g!h!La!h!i##`!i!n(O!n!o##`!o!r(O!r!s!La!s!w(O!w!x##`!x#O(O#O#P&f#P#X(O#X#Y!La#Y#Z##`#Z#`(O#`#a##`#a#d(O#d#e!La#e#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ljl(qQ!i,g'g&jOY(OZr(Ors%}s{(O{|!Nb|}(O}!O!Nb!O!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ni^(qQ'g&jOY(OZr(Ors%}s!Q(O!Q![# e![!c(O!c!i# e!i#O(O#O#P&f#P#T(O#T#Z# e#Z;'S(O;'S;=`(o<%lO(O2T# nj(qQ!i,g'g&jOY(OZr(Ors%}sw(Owx!Nbx!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T##id(qQ!i,g'g&jOY(OZr(Ors%}s!h(O!h!i##`!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#Y(O#Y#Z##`#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2]#%Sn)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox{$e{|#'Q|}$e}!O#'Q!O!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#'Z`)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![#(]![!c$e!c!i#(]!i#O$e#O#P&f#P#T$e#T#Z#(]#Z;'S$e;'S;=`(u<%lO$e2]#(hj)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx!Nbx!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#*ef)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx(Ox!h$e!h!i#*Y!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#Y$e#Y#Z#*Y#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e7Z#,W`)[W(qQ%[!b![,g'g&jOY$eZr$ers%^sw$ewx(Oxz$ez{#-Y{!P$e!P!Q#:s!Q!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#-c])[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y1e#._TOz#.[z{#.n{;'S#.[;'S;=`#/]<%lO#.[1e#.qVOz#.[z{#.n{!P#.[!P!Q#/W!Q;'S#.[;'S;=`#/]<%lO#.[1e#/]OT1e1e#/`P;=`<%l#.[7X#/jZ)[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7P#0bX'g&jOY#0]YZ#.[Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1SZ'g&jOY#0]YZ#.[Zz#0]z{#0}{!P#0]!P!Q#1u!Q#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1|UT1e'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}7P#2eZ'g&jOY#0]YZ#0]Z]#0]]^#3W^z#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3]X'g&jOY#0]YZ#0]Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3{P;=`<%l#0]7X#4V])[W'g&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{!P#/c!P!Q#5O!Q#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7X#5XW)[WT1e'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^7X#5tP;=`<%l#/c7R#6OZ(qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#6x](qQ'g&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{!P#5w!P!Q#7q!Q#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#7zW(qQT1e'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O7R#8gP;=`<%l#5w7Z#8s_)[W(qQ'g&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{!P#-Y!P!Q#9r!Q#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y7Z#9}Y)[W(qQT1e'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#:pP;=`<%l#-Y7Z#;OY)[W(qQS1e'g&jOY#:sZr#:srs#;nsw#:swx#@{x#O#:s#O#P#[<%lO#b#P;'S#[<%lO#[<%lO#_P;=`<%l#i]S1e'g&jOY#b#P#b#[<%lO#[<%lO#b#P#b#[<%lO#t!R![$2V![!c$e!c!i$2V!i#O$e#O#P&f#P#T$e#T#Z$2V#Z;'S$e;'S;=`(u<%lO$e2]$?Pv)[W(qQ!i,g'g&jOY$eZr$ers%^sw$ewx$4lx!O$e!O!P$ m!P!Q$e!Q![$2V![!c$e!c!g$2V!g!h$:p!h!i$2V!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#U$2V#U#V$2V#V#X$2V#X#Y$:p#Y#Z$2V#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j#l$e#l#m$0z#m;'S$e;'S;=`(u<%lO$e4e$Ar[(w-X)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox![$e![!]$Bh!]#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3s$BsYl-})[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]$CnY)X,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7V$Dk_p,g%^!b)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!^$Ej!^!_%+w!_!`%.U!`!a%0]!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej*[$Es])[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ejp$FoTO!`$Fl!`!a$GO!a;'S$Fl;'S;=`$GT<%lO$Flp$GTO$Xpp$GWP;=`<%l$Fl*Y$GbZ)[W'g&jOY$GZYZ$FlZw$GZwx$HTx!`$GZ!`!a%(U!a#O$GZ#O#P$Ib#P;'S$GZ;'S;=`%(y<%lO$GZ*Q$HYX'g&jOY$HTYZ$FlZ!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q$IOU$XpY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}*Q$Ig['g&jOY$HTYZ$HTZ]$HT]^$J]^!`$HT!`!a$NO!a#O$HT#O#P%&n#P;'S$HT;'S;=`%'f;=`<%l%$z<%lO$HT*Q$JbX'g&jOY$HTYZ$J}Z!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT'[$KSX'g&jOY$J}YZ$FlZ!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$KvU$Xp'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}'[$L_Z'g&jOY$J}YZ$J}Z]$J}]^$MQ^!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MVX'g&jOY$J}YZ$J}Z!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MuP;=`<%l$J}*Q$M{P;=`<%l$HT*Q$NVW$Xp'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`$NtW'g&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`% eUY#t'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%})`% |Y'g&jOY$NoYZ$NoZ]$No]^%!l^#O$No#O#P%#d#P;'S$No;'S;=`%$[;=`<%l%$z<%lO$No)`%!qX'g&jOY$NoYZ%}Z!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%#aP;=`<%l$No)`%#iZ'g&jOY$NoYZ%}Z]$No]^%!l^!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%$_XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$No<%lO%$z#t%$}WOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h<%lO%$z#t%%lOY#t#t%%oRO;'S%$z;'S;=`%%x;=`O%$z#t%%{XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l%$z<%lO%$z#t%&kP;=`<%l%$z*Q%&sZ'g&jOY$HTYZ$J}Z]$HT]^$J]^!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q%'iXOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$HT<%lO%$z*Y%(aW$XpY#t)[W'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^*Y%(|P;=`<%l$GZ*S%)WZ(qQ'g&jOY%)PYZ$FlZr%)Prs$HTs!`%)P!`!a%)y!a#O%)P#O#P$Ib#P;'S%)P;'S;=`%*n<%lO%)P*S%*UW$XpY#t(qQ'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O*S%*qP;=`<%l%)P*[%+RY$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e*[%+tP;=`<%l$Ej7V%,U^)[W(qQ%]!b!f,g'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!_$Ej!_!`%-Q!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%-]]!g-y)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%.c]%^!b!b,g)[W(qQ'g&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%/[!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%/mY%^!b!b,g$XpY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e)j%0hYY#t)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%1c[)k!c)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`0Q!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%2f]%^!b)[W(qQ!d,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`%3_!`!a%4[!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%3lY%^!b!b,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%4i[)[W(qQ%]!b!f,g'g&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%5jY(vP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z%6ib)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e7Z%8Qb)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e5P%9cW)[W(p/]'g&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^2T%:UW(qQ)Z,g'g&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O3o%:yZ!V-y)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox!}$e!}#O%;l#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%;wY)QP)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e4e%[Z]%=q]^%?Z^!Q%=q!Q![%?w![!w%=q!w!x%AX!x#O%=q#O#P%H_#P#i%=q#i#j%Ds#j#l%=q#l#m%IR#m;'S%=q;'S;=`%Kt<%lO%=q&t%=xUXY'g&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}4e%>e[XY(o.o'g&jOX%}XY-OYZ*[Z]%}]^-O^p%}pq-Oq#O%}#O#P,^#P;'S%};'S;=`'r<%lO%}4e%?bVXY'g&jOY%}YZ-OZ#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@OWXY'g&jOY%}Z!Q%}!Q![%@h![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@oWXY'g&jOY%}Z!Q%}!Q![%=q![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%A^['g&jOY%}Z!Q%}!Q![%BS![!c%}!c!i%BS!i#O%}#O#P&f#P#T%}#T#Z%BS#Z;'S%};'S;=`'r<%lO%}&t%BX['g&jOY%}Z!Q%}!Q![%B}![!c%}!c!i%B}!i#O%}#O#P&f#P#T%}#T#Z%B}#Z;'S%};'S;=`'r<%lO%}&t%CS['g&jOY%}Z!Q%}!Q![%Cx![!c%}!c!i%Cx!i#O%}#O#P&f#P#T%}#T#Z%Cx#Z;'S%};'S;=`'r<%lO%}&t%C}['g&jOY%}Z!Q%}!Q![%Ds![!c%}!c!i%Ds!i#O%}#O#P&f#P#T%}#T#Z%Ds#Z;'S%};'S;=`'r<%lO%}&t%Dx['g&jOY%}Z!Q%}!Q![%En![!c%}!c!i%En!i#O%}#O#P&f#P#T%}#T#Z%En#Z;'S%};'S;=`'r<%lO%}&t%Es['g&jOY%}Z!Q%}!Q![%Fi![!c%}!c!i%Fi!i#O%}#O#P&f#P#T%}#T#Z%Fi#Z;'S%};'S;=`'r<%lO%}&t%Fn['g&jOY%}Z!Q%}!Q![%Gd![!c%}!c!i%Gd!i#O%}#O#P&f#P#T%}#T#Z%Gd#Z;'S%};'S;=`'r<%lO%}&t%Gi['g&jOY%}Z!Q%}!Q![%=q![!c%}!c!i%=q!i#O%}#O#P&f#P#T%}#T#Z%=q#Z;'S%};'S;=`'r<%lO%}&t%HfXXY'g&jOY%}YZ%}Z]%}]^'W^#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%IW['g&jOY%}Z!Q%}!Q![%I|![!c%}!c!i%I|!i#O%}#O#P&f#P#T%}#T#Z%I|#Z;'S%};'S;=`'r<%lO%}&t%JR['g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KO[XY'g&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KwP;=`<%l%=q2a%LVZ!W,V)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P#Q%Lx#Q;'S$e;'S;=`(u<%lO$e'Y%MTY)^d)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%NQ[)[W(qQ%]!b'g&j!_,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z& Vd)[W(zS(qQ!R,f(s%y'g&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q!Y%6Y!Y!Z%7q!Z![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e2]&!pY!T,g)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o&#m^)[W(qQ%]!b'g&j!^,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P#p$e#p#q&$i#q;'S$e;'S;=`(u<%lO$e3o&$vY)U,g%_!b)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e'V&%qY!Ua)[W(qQ'g&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e(]&&nc)[W(qQ%]!b'SP'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&(Sc)[W(qQ'g&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&)jb)[W(qQdT'g&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![&)_![!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e",tokenizers:[vT,qT,0,1,2,3,4,5,6,7,8,9],topRules:{Program:[0,308]},dynamicPrecedences:{87:1,94:1,119:1,185:1,188:-10,241:-10,242:1,245:-1,247:-10,248:1,263:-1,268:2,269:2,307:-10,366:3,418:1,419:3,420:1,421:1},specialized:[{term:357,get:O=>ZT[O]||-1},{term:32,get:O=>RT[O]||-1},{term:66,get:O=>UT[O]||-1},{term:364,get:O=>VT[O]||-1}],tokenPrec:24905}),_T=Ie.define({name:"cpp",parser:zT.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b)/}),TryStatement:Ce({except:/^\s*({|catch)\b/}),LabeledStatement:qc,CaseStatement:O=>O.baseIndent+O.unit,BlockComment:()=>null,CompoundStatement:zO({closing:"}"}),Statement:Ce({except:/^{/})}),ft.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function jT(){return new Je(_T)}const GT=1,Km=189,Jm=190,CT=191,IT=192,ET=193,AT=194,DT=22,MT=23,NT=47,LT=48,BT=53,HT=54,FT=55,KT=57,JT=58,eY=59,tY=60,OY=61,iY=63,rY=230,nY=71,sY=255,oY=121,aY=142,lY=143,cY=146,Fr=10,Kr=13,Hc=32,So=9,Fc=35,hY=40,fY=46,QY=new Set([MT,NT,LT,sY,iY,oY,HT,FT,rY,tY,OY,JT,eY,nY,aY,lY,cY]),uY=new de((O,e)=>{if(O.next<0)O.acceptToken(AT);else if(!(O.next!=Fr&&O.next!=Kr))if(e.context.depth<0)O.acceptToken(IT,1);else{O.advance();let t=0;for(;O.next==Hc||O.next==So;)O.advance(),t++;let i=O.next==Fr||O.next==Kr||O.next==Fc;O.acceptToken(i?ET:CT,-t)}},{contextual:!0,fallback:!0}),$Y=new de((O,e)=>{let t=e.context.depth;if(t<0)return;let i=O.peek(-1);if((i==Fr||i==Kr)&&e.context.depth>=0){let r=0,n=0;for(;;){if(O.next==Hc)r++;else if(O.next==So)r+=8-r%8;else break;O.advance(),n++}r!=t&&O.next!=Fr&&O.next!=Kr&&O.next!=Fc&&(r{for(let e=0;e<5;e++){if(O.next!="print".charCodeAt(e))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let e=0;;e++){let t=O.peek(e);if(!(t==Hc||t==So)){t!=hY&&t!=fY&&t!=Fr&&t!=Kr&&t!=Fc&&O.acceptToken(GT);return}}}),gY=De({'async "*" "**" FormatConversion FormatSpec':f.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":f.controlKeyword,"in not and or is del":f.operatorKeyword,"from def class global nonlocal lambda":f.definitionKeyword,import:f.moduleKeyword,"with as print":f.keyword,Boolean:f.bool,None:f.null,VariableName:f.variableName,"CallExpression/VariableName":f.function(f.variableName),"FunctionDefinition/VariableName":f.function(f.definition(f.variableName)),"ClassDefinition/VariableName":f.definition(f.className),PropertyName:f.propertyName,"CallExpression/MemberExpression/PropertyName":f.function(f.propertyName),Comment:f.lineComment,Number:f.number,String:f.string,FormatString:f.special(f.string),UpdateOp:f.updateOperator,ArithOp:f.arithmeticOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,AssignOp:f.definitionOperator,Ellipsis:f.punctuation,At:f.meta,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,".":f.derefOperator,", ;":f.separator}),SY={__proto__:null,await:40,or:50,and:52,in:56,not:58,is:60,if:66,else:68,lambda:72,yield:90,from:92,async:98,for:100,None:152,True:154,False:154,del:168,pass:172,break:176,continue:180,return:184,raise:192,import:196,as:198,global:202,nonlocal:204,assert:208,elif:218,while:222,try:228,except:230,finally:232,with:236,def:240,class:250,match:261,case:267},XY=Ee.deserialize({version:14,states:"!L`O`Q$IXOOO%fQ$I[O'#G|OOQ$IS'#Cm'#CmOOQ$IS'#Cn'#CnO'UQ$IWO'#ClO(wQ$I[O'#G{OOQ$IS'#G|'#G|OOQ$IS'#DS'#DSOOQ$IS'#G{'#G{O)eQ$IWO'#CsO)uQ$IWO'#DdO*VQ$IWO'#DhOOQ$IS'#Ds'#DsO*jO`O'#DsO*rOpO'#DsO*zO!bO'#DtO+VO#tO'#DtO+bO&jO'#DtO+mO,UO'#DtO-oQ$I[O'#GmOOQ$IS'#Gm'#GmO'UQ$IWO'#GlO/RQ$I[O'#GlOOQ$IS'#E]'#E]O/jQ$IWO'#E^OOQ$IS'#Gk'#GkO/tQ$IWO'#GjOOQ$IV'#Gj'#GjO0PQ$IWO'#FPOOQ$IS'#GX'#GXO0UQ$IWO'#FOOOQ$IV'#Hx'#HxOOQ$IV'#Gi'#GiOOQ$IT'#Fh'#FhQ`Q$IXOOO'UQ$IWO'#CoO0dQ$IWO'#C{O0kQ$IWO'#DPO0yQ$IWO'#HQO1ZQ$I[O'#EQO'UQ$IWO'#EROOQ$IS'#ET'#ETOOQ$IS'#EV'#EVOOQ$IS'#EX'#EXO1oQ$IWO'#EZO2VQ$IWO'#E_O0PQ$IWO'#EaO2jQ$I[O'#EaO0PQ$IWO'#EdO/jQ$IWO'#EgO/jQ$IWO'#EkO/jQ$IWO'#EnO2uQ$IWO'#EpO2|Q$IWO'#EuO3XQ$IWO'#EqO/jQ$IWO'#EuO0PQ$IWO'#EwO0PQ$IWO'#E|O3^Q$IWO'#FROOQ$IS'#Cc'#CcOOQ$IS'#Cd'#CdOOQ$IS'#Ce'#CeOOQ$IS'#Cf'#CfOOQ$IS'#Cg'#CgOOQ$IS'#Ch'#ChOOQ$IS'#Cj'#CjO'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O'UQ$IWO,58|O3eQ$IWO'#DmOOQ$IS,5:W,5:WO3xQ$IWO'#H[OOQ$IS,5:Z,5:ZO4VQ%1`O,5:ZO4[Q$I[O,59WO0dQ$IWO,59`O0dQ$IWO,59`O0dQ$IWO,59`O6zQ$IWO,59`O7PQ$IWO,59`O7WQ$IWO,59hO7_Q$IWO'#G{O8eQ$IWO'#GzOOQ$IS'#Gz'#GzOOQ$IS'#DY'#DYO8|Q$IWO,59_O'UQ$IWO,59_O9[Q$IWO,59_O9aQ$IWO,5:PO'UQ$IWO,5:POOQ$IS,5:O,5:OO9oQ$IWO,5:OO9tQ$IWO,5:VO'UQ$IWO,5:VO'UQ$IWO,5:TOOQ$IS,5:S,5:SO:VQ$IWO,5:SO:[Q$IWO,5:UOOOO'#Fp'#FpO:aO`O,5:_OOQ$IS,5:_,5:_OOOO'#Fq'#FqO:iOpO,5:_O:qQ$IWO'#DuOOOO'#Fr'#FrO;RO!bO,5:`OOQ$IS,5:`,5:`OOOO'#Fu'#FuO;^O#tO,5:`OOOO'#Fv'#FvO;iO&jO,5:`OOOO'#Fw'#FwO;tO,UO,5:`OOQ$IS'#Fx'#FxOqQ$I[O,5=WO?[Q%GlO,5=WO?{Q$I[O,5=WOOQ$IS,5:x,5:xO@dQ$IXO'#GQOAsQ$IWO,5;TOOQ$IV,5=U,5=UOBOQ$I[O'#HtOBgQ$IWO,5;kOOQ$IS-E:V-E:VOOQ$IV,5;j,5;jO3SQ$IWO'#EwOOQ$IT-E9f-E9fOBoQ$I[O,59ZODvQ$I[O,59gOEaQ$IWO'#G}OElQ$IWO'#G}O0PQ$IWO'#G}OEwQ$IWO'#DROFPQ$IWO,59kOFUQ$IWO'#HRO'UQ$IWO'#HRO/jQ$IWO,5=lOOQ$IS,5=l,5=lO/jQ$IWO'#D|OOQ$IS'#D}'#D}OFsQ$IWO'#FzOGTQ$IWO,58zOGTQ$IWO,58zO)hQ$IWO,5:jOGcQ$I[O'#HTOOQ$IS,5:m,5:mOOQ$IS,5:u,5:uOGvQ$IWO,5:yOHXQ$IWO,5:{OOQ$IS'#F}'#F}OHgQ$I[O,5:{OHuQ$IWO,5:{OHzQ$IWO'#HwOOQ$IS,5;O,5;OOIYQ$IWO'#HsOOQ$IS,5;R,5;RO3XQ$IWO,5;VO3XQ$IWO,5;YOIkQ$I[O'#HyO'UQ$IWO'#HyOIuQ$IWO,5;[O2uQ$IWO,5;[O/jQ$IWO,5;aO0PQ$IWO,5;cOIzQ$IXO'#ElOKTQ$IZO,5;]ONiQ$IWO'#HzO3XQ$IWO,5;aONtQ$IWO,5;cONyQ$IWO,5;hO! RQ$I[O,5;mO'UQ$IWO,5;mO!#uQ$I[O1G.hO!#|Q$I[O1G.hO!&mQ$I[O1G.hO!&wQ$I[O1G.hO!)bQ$I[O1G.hO!)uQ$I[O1G.hO!*YQ$IWO'#HZO!*hQ$I[O'#GmO/jQ$IWO'#HZO!*rQ$IWO'#HYOOQ$IS,5:X,5:XO!*zQ$IWO,5:XO!+PQ$IWO'#H]O!+[Q$IWO'#H]O!+oQ$IWO,5=vOOQ$IS'#Dq'#DqOOQ$IS1G/u1G/uOOQ$IS1G.z1G.zO!,oQ$I[O1G.zO!,vQ$I[O1G.zO0dQ$IWO1G.zO!-cQ$IWO1G/SOOQ$IS'#DX'#DXO/jQ$IWO,59rOOQ$IS1G.y1G.yO!-jQ$IWO1G/cO!-zQ$IWO1G/cO!.SQ$IWO1G/dO'UQ$IWO'#HSO!.XQ$IWO'#HSO!.^Q$I[O1G.yO!.nQ$IWO,59gO!/tQ$IWO,5=rO!0UQ$IWO,5=rO!0^Q$IWO1G/kO!0cQ$I[O1G/kOOQ$IS1G/j1G/jO!0sQ$IWO,5=mO!1jQ$IWO,5=mO/jQ$IWO1G/oO!2XQ$IWO1G/qO!2^Q$I[O1G/qO!2nQ$I[O1G/oOOQ$IS1G/n1G/nOOQ$IS1G/p1G/pOOOO-E9n-E9nOOQ$IS1G/y1G/yOOOO-E9o-E9oO!3OQ$IWO'#HhO/jQ$IWO'#HhO!3^Q$IWO,5:aOOOO-E9p-E9pOOQ$IS1G/z1G/zOOOO-E9s-E9sOOOO-E9t-E9tOOOO-E9u-E9uOOQ$IS-E9v-E9vO!3iQ%GlO1G2rO!4YQ$I[O1G2rO'UQ$IWO,5`OOQ$IS1G1V1G1VO!5YQ$IWO1G1VOOQ$IS'#DT'#DTO/jQ$IWO,5=iOOQ$IS,5=i,5=iO!5_Q$IWO'#FiO!5jQ$IWO,59mO!5rQ$IWO1G/VO!5|Q$I[O,5=mOOQ$IS1G3W1G3WOOQ$IS,5:h,5:hO!6mQ$IWO'#GlOOQ$IS,5cO!8oQ$IWO,5>cO!8}Q$IWO,5>_O!9eQ$IWO,5>_O!9vQ$IZO1G0qO!=XQ$IZO1G0tO!@gQ$IWO,5>eO!@qQ$IWO,5>eO!@yQ$I[O,5>eO/jQ$IWO1G0vO!ATQ$IWO1G0vO3XQ$IWO1G0{ONtQ$IWO1G0}OOQ$IV,5;W,5;WO!AYQ$IYO,5;WO!A_Q$IZO1G0wO!DsQ$IWO'#GUO3XQ$IWO1G0wO3XQ$IWO1G0wO!EQQ$IWO,5>fO!E_Q$IWO,5>fO0PQ$IWO,5>fOOQ$IV1G0{1G0{O!EgQ$IWO'#EyO!ExQ%1`O1G0}OOQ$IV1G1S1G1SO3XQ$IWO1G1SO!FQQ$IWO'#FTOOQ$IV1G1X1G1XO! RQ$I[O1G1XOOQ$IS,5=u,5=uOOQ$IS'#Dn'#DnO/jQ$IWO,5=uO!FVQ$IWO,5=tO!FjQ$IWO,5=tOOQ$IS1G/s1G/sO!FrQ$IWO,5=wO!GSQ$IWO,5=wO!G[Q$IWO,5=wO!GoQ$IWO,5=wO!HPQ$IWO,5=wOOQ$IS1G3b1G3bOOQ$IS7+$f7+$fO!5rQ$IWO7+$nO!IrQ$IWO1G.zO!IyQ$IWO1G.zOOQ$IS1G/^1G/^OOQ$IS,5SO!NaQ$IWO,5>SO!NaQ$IWO,5>SO!NoO!LQO'#DwO!NzOSO'#HiOOOO1G/{1G/{O# PQ$IWO1G/{O# XQ%GlO7+(^O# xQ$I[O1G2PP#!cQ$IWO'#FyOOQ$IS,5T,5>TOOOO7+%g7+%gO#8UQ$IWO1G2rO#8oQ$IWO1G2rP'UQ$IWO'#FlO/jQ$IWO<bO#9cQ$IWO,5>bO0PQ$IWO,5>bO#9tQ$IWO,5>aOOQ$IS<hO#CeQ$IWO,5>hOOQ$IS,5>h,5>hO#CpQ$IWO,5>gO#DRQ$IWO,5>gOOQ$IS1G1P1G1POOQ$IS,5;g,5;gO#DZQ$IWO1G1ZP#D`Q$IWO'#FnO#DpQ$IWO1G1uO#ETQ$IWO1G1uO#EeQ$IWO1G1uP#EpQ$IWO'#FoO#E}Q$IWO7+(}O#F_Q$IWO7+(}O#F_Q$IWO7+(}O#FgQ$IWO7+(}O#FwQ$IWO7+(tO7WQ$IWO7+(tOOQ$ISAN>TAN>TO#GbQ$IWO<aAN>aO/jQ$IWO1G1sO#GrQ$I[O1G1sP#G|Q$IWO'#FmOOQ$IS1G1y1G1yP#HZQ$IWO'#FsO#HhQ$IWO7+)YOOOO-E9r-E9rO#IOQ$IWO7+(^OOQ$ISAN?VAN?VO#IiQ$IWO,5jO$,bQ$IWO,5>jO0PQ$IWO,5;vO$,sQ$IWO,5;zO$,xQ$IWO,5;zO#NzQ$IWO'#IQO$,}Q$IWO'#IQO$-SQ$IWO,5;{OOQ$IS,5;|,5;|O'UQ$IWO'#FgOOQ$IU1G1[1G1[O3XQ$IWO1G1[OOQ$ISAN@gAN@gO$-XQ$IWOG27oO$-iQ$IWO,59{OOQ$IS1G3[1G3[OOQ$IS,5lO#NzQ$IWO,5>lOOQ$IS1G1g1G1gO$0YQ$I[O,5mO$0hQ$IWO,5>mOOQ$IS1G1j1G1jOOQ$IS7+&y7+&yP#NzQ$IWO'#G_O$0pQ$IWO1G4WO$0zQ$IWO1G4WO$1SQ$IWO1G4WOOQ$IS7+%R7+%RO$1bQ$IWO1G1kO$1pQ$I[O'#FWO$1wQ$IWO,5m'PP>pP>vByFcPFw'PPPPF{GR&wP&w&wP&wP&wP&wP&wP&w&w&wP&wPP&wPP&wPGXPG`GfPG`PG`G`PPPG`PIePInItIzIePG`JQPG`PJXJ_PJcJwKfLPJcJcLVLdJcJcJcJcLxMOMRMWMZMaMgMsNVN]NgNm! Z! a! g! m! w! }!!T!!Z!!a!!g!!y!#T!#Z!#a!#g!#q!#w!#}!$T!$Z!$e!$k!$u!${!%U!%[!%k!%s!%}!&UPPPPPPPPP!&[!&d!&m!&w!'SPPPPPPPPPPPP!+r!,[!0j!3vPP!4O!4^!4g!5]!5S!5f!5l!5o!5r!5u!5}!6nPPPPPPPPPP!6q!6tPPPPPPPPP!6z!7W!7d!7j!7s!7v!7|!8S!8Y!8]P!8e!8n!9j!9m]iOr#n$n)c+c'udOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/x}!dP#j#w$Y$h$t%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!P!eP#j#w$Y$h$t$v%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!R!fP#j#w$Y$h$t$v$w%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!T!gP#j#w$Y$h$t$v$w$x%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!V!hP#j#w$Y$h$t$v$w$x$y%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!X!iP#j#w$Y$h$t$v$w$x$y$z%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m!]!iP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/m'uSOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/x&ZUOXYZhrtv|}!R!S!T!X!j!l!p!q!r!t!u#^#k#n$Q$S$U$X$l$n%O%T%[%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.b.y/i/j/k/l/n/o/p/q/t/x%eWOXYZhrv|}!R!S!T!X!j!l#^#k#n$Q$S$U$X$l$n%O%T%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,S,U,W,Y,Z,],o,q,x,{-n-o.b/o/p/qQ#}uQ.c-sR/u/w'ldOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xW#ql!O!P$`W#yu&b-s/wQ$b!QQ$r!YQ$s!ZW$}!j'h*O+vS&a#z#{Q'R$mQ(l&ZQ(z&qU({&s(|(}U)O&u)P+RQ)n'[W)o'^+q,s-]S+p)p)qY,_*|,`-T-U-wQ,b+OQ,l+gQ,n+il-`,w-f-g-i.R.T.Y.p.u.z/P/[/a/dQ-v-SQ.Z-hQ.g-{Q.r.VU/V.{/Y/bX/]/Q/^/e/fR&`#yi!xXY!S!T%a%h'y(R)V*]*`*bR%_!wQ!|XQ%z#^Q&i$UR&l$XT-r-O.y![!kP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/mQ&^#rR'a$sR'g$}Q%W!nR.e-y'tcOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xS#hc#i!P-d,w-f-g-h-i-{.R.T.Y.p.u.z.{/P/Q/Y/[/^/a/b/d/e/f'tcOSXYZehrstvx|}!R!S!T!U!X![!d!e!f!g!h!i!j!l!p!q!r!t!u!{#O#S#T#^#k#n$P$Q$S$U$X$i$k$l$n$u%O%T%[%_%a%d%h%m%o%y&R&T&`&d&m&o&p&w&{'O'V'Y'g'h'k'm'n'r'w'y'}(R(W(X(_(b(i(k(s(v)S)V)Z)[)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*l*p*q*x*z*{+S+[+]+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.^.b.y/i/j/k/l/n/o/p/q/r/t/xT#hc#iS#__#`S#b`#cS#da#eS#fb#gT*t(e*uT(f%z(hQ$WwR+o)oX$Uw$V$W&kZkOr$n)c+cXoOr)c+cQ$o!WQ&y$fQ&z$gQ']$qQ'`$sQ)a'QQ)g'VQ)i'WQ)j'XQ)w'_Q)y'aQ+V)VQ+X)WQ+Y)XQ+^)_S+`)b)xQ+d)eQ+e)fQ+f)hQ,d+UQ,e+WQ,g+_Q,h+aQ,m+hQ-W,fQ-Y,kQ-Z,lQ-x-XQ._-lR.x.`WoOr)c+cR#tnQ'_$rR)b'RQ+n)oR,q+oQ)x'_R+a)bZmOnr)c+cQ'c$tR){'dT,u+u,vu-k,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dt-k,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dQ.Z-hX/]/Q/^/e/f!P-c,w-f-g-h-i-{.R.T.Y.p.u.z.{/P/Q/Y/[/^/a/b/d/e/fQ.O-bR.l.Pg.R-e.S.h.o.t/S/U/W/c/g/hu-j,w-f-g-i-{.R.T.Y.p.u.z.{/P/Y/[/a/b/dX-|-`-j.g/VR.i-{V/X.{/Y/bR.`-lQrOR#vrQ&c#|R(q&cS%n#R$OS(Y%n(]T(]%q&eQ%b!zQ%i!}W'z%b%i(P(TQ(P%fR(T%kQ&n$YR(w&nQ(`%rQ*g(ZT*m(`*gQ'i%PR*P'iS'l%S%TY*T'l*U+|,|-pU*U'm'n'oU+|*V*W*XS,|+},OR-p,}Q#Y]R%u#YQ#]^R%w#]Q#`_R%{#`Q(c%xS*r(c*sR*s(dQ*u(eR,[*uQ#c`R%}#cQ#eaR&O#eQ#gbR&P#gQ#icR&Q#iQ#lfQ&S#jW&V#l&S(t*yQ(t&hR*y/mQ$VwS&j$V&kR&k$WQ&x$dR)T&xQ&[#qR(m&[Q$`!PR&r$`Q*}({S,a*}-VR-V,bQ&v$bR)Q&vQ#ojR&X#oQ+c)cR,i+cQ)U&yR+T)UQ&|$hS)]&|)^R)^&}Q'U$oR)d'UQ'Z$pS)m'Z+lR+l)nQ+r)sR,t+rWnOr)c+cR#snQ,v+uR-^,vd.S-e.h.o.t/S/U/W/c/g/hR.n.SU-z-`.g/VR.f-zQ/R.tS/_/R/`R/`/SS.|.h.iR/Z.|Q.U-eR.q.USqOrT+b)c+cWpOr)c+cR'S$nYjOr$n)c+cR&W#n[wOr#n$n)c+cR&i$U&YPOXYZhrtv|}!R!S!T!X!j!l!p!q!r!t!u#^#k#n$Q$S$U$X$l$n%O%T%[%_%a%h%m%o%y&R&`&d&o&p&w'O'V'Y'g'h'k'm'n'r'y(R(X(_(b(i(k(s)S)V)`)c)l)v*O*R*S*V*]*^*`*b*e*f*i*p*q*x*{+S+c+j+k+n+v+w+x+z+{,O,Q,S,U,W,Y,Z,],o,q,x,{-O-n-o.b.y/i/j/k/l/n/o/p/q/t/xQ!oSQ#jeQ#wsU$Yx%d'}S$h!U$kQ$t![Q$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ${!iQ%f!{Q%k#OQ%q#SQ%r#TQ&e$PQ&}$iQ'd$uQ(j&TU(u&m(v*zW)Y&{)[+[+]Q*Z'wQ*d(WQ+Z)ZQ,V*lQ.w.^R/m/rQ!zXQ!}YQ$f!SQ$g!T^'v%a%h'y(R*]*`*bR+W)V[fOr#n$n)c+ch!wXY!S!T%a%h'y(R)V*]*`*bQ#RZQ#mhS$Ov|Q$]}W$d!R$X'O)`S$p!X$lW$|!j'h*O+vQ%S!lQ%x#^`&U#k&R(i(k(s*x,]/qQ&f$QQ&g$SQ&h$UQ'e%OQ'o%TQ'u%_W(V%m(X*e*iQ(Z%oQ(d%yQ(o&`S(r&d/oQ(x&oQ(y&pU)R&w)S+SQ)h'VY)k'Y)l+j+k,oQ)|'g^*Q'k*S+z+{,{-o.bQ*W'mQ*X'nS*Y'r/pW*k(_*f,S,WW*o(b*q,Y,ZQ+t)vQ+y*RQ+}*VQ,X*pQ,^*{Q,p+nQ,y+wQ,z+xQ,},OQ-R,UQ-[,qQ-m,xR.a-nhTOr#k#n$n&R&d'r(i(k)c+c$z!vXYZhv|}!R!S!T!X!j!l#^$Q$S$U$X$l%O%T%_%a%h%m%o%y&`&o&p&w'O'V'Y'g'h'k'm'n'y(R(X(_(b(s)S)V)`)l)v*O*R*S*V*]*`*b*e*f*i*p*q*x*{+S+j+k+n+v+w+x+z+{,O,S,U,W,Y,Z,],o,q,x,{-n-o.b/o/p/qQ#xtW%X!p!t/j/tQ%Y!qQ%Z!rQ%]!uQ%g/iS'q%[/nQ's/kQ't/lQ,P*^Q-Q,QS-q-O.yR/v/xU#|u-s/wR(p&b[gOr#n$n)c+cX!yX#^$U$XQ#WZQ$RvR$[|Q%c!zQ%j!}Q%p#RQ'e$|Q(Q%fQ(U%kQ(^%qQ(a%rQ*h(ZQ-P,PQ-u-QR.d-tQ$ZxQ'|%dR*_'}Q-t-OR/T.yR#QYR#VZR%R!jQ%P!jV)}'h*O+v!]!mP!o#j#w$Y$h$t$v$w$x$y$z${%f%k%q%r&e&}'d(j(u)Y*Z*d+Z,V.w/mR%U!lR%z#^Q(g%zR*w(hQ$e!RQ&l$XQ)_'OR+_)`Q#rlQ$^!OQ$a!PR&t$`Q(z&sR+Q(}Q(z&sQ+P(|R+Q(}R$c!QXpOr)c+cQ$j!UR'P$kQ$q!XR'Q$lR)u'^Q)s'^V,r+q,s-]Q-l,wQ.W-fR.X-gU-e,w-f-gQ.]-iQ.h-{Q.m.RU.o.T.p/PQ.t.YQ/S.uQ/U.zU/W.{/Y/bQ/c/[Q/g/aR/h/dR.[-hR.j-{",nodeNames:"⚠ print Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatConversion FormatSpec ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:267,context:mY,nodeProps:[["group",-14,4,80,82,83,85,87,89,91,93,94,95,97,100,103,"Statement Statement",-22,6,16,19,23,38,47,48,54,55,58,59,60,61,62,65,68,69,70,74,75,76,77,"Expression",-10,105,107,110,112,113,117,119,124,126,129,"Statement",-9,134,135,138,139,141,142,143,144,145,"Pattern"],["openedBy",21,"(",52,"[",56,"{"],["closedBy",22,")",53,"]",57,"}"]],propSources:[gY],skippedNodes:[0,2],repeatNodeCount:38,tokenData:"&JdMgR!^OX$}XY!&]Y[$}[]!&]]p$}pq!&]qr!(grs!,^st!IYtu$}uv$5[vw$7nwx$8zxy%'vyz%(|z{%*S{|%,r|}%.O}!O%/U!O!P%1k!P!Q%UZ&^7[&WW&f#tOr(}rs)}sw(}wx>wx#O(}#O#P2]#P#o(}#o#p:X#p#q(}#q#r2q#r~(}:Y?QX&^7[&WW&f#tOr>wrs?ms#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:Y?rX&^7[Or>wrs@_s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:Y@dX&^7[Or>wrs-}s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>w:YAUT&^7[O#o>w#o#p6g#p#q>w#q#r6g#r~>w`x#O!`x#O!gZ&WW&R,XOY!wZ]!Ad]^>w^r!Adrs!Bhs#O!Ad#O#P!C[#P#o!Ad#o#p!9f#p#q!Ad#q#r!7x#r~!AdEc!BoX&^7[&R,XOr>wrs@_s#O>w#O#PAP#P#o>w#o#p8Y#p#q>w#q#r6g#r~>wEc!CaT&^7[O#o!Ad#o#p!7x#p#q!Ad#q#r!7x#r~!AdGZ!CuT&^7[O#o!-l#o#p!DU#p#q!-l#q#r!DU#r~!-l0}!De]&TS&WW&R,X&Z`&d!b&f#tOY!DUYZAyZ]!DU]^Ay^r!DUrs!E^sw!DUwx!5tx#O!DU#O#P!FU#P#o!DU#o#p!F[#p~!DU0}!EiX&TS&R,X&Z`&d!bOrAyrsCiswAywx5Px#OAy#O#PEo#P#oAy#o#pEu#p~Ay0}!FXPO~!DU0}!Fe]&TS&WW&R,XOY!`x#O!`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p#0Y#p~#=d2P#=mZQ1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#>gZQ1s&TSOY#=dYZ:{Z]#=d]^:{^r#=drs#?Ysw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#?aZQ1s&TSOY#=dYZ:{Z]#=d]^:{^r#=drs#,zsw#=dwx#@Sx#O#=d#O#P#Av#P~#=d2P#@ZZQ1s&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@|x#O#=d#O#P#Av#P~#=d2P#ATZQ1s&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#9bx#O#=d#O#P#Av#P~#=d2P#A{TQ1sOY#=dYZ:{Z]#=d]^:{^~#=dLe#Bg_Q1s&^7[&WW&f#tOY!NdYZ(}Z]!Nd]^(}^r!Ndrs# rsw!Ndwx#Cfx#O!Nd#O#P#/f#P#o!Nd#o#p#wZ]#Cf]^>w^r#Cfrs#Djs#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#Dq]Q1s&^7[OY#CfYZ>wZ]#Cf]^>w^r#Cfrs#Ejs#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#Eq]Q1s&^7[OY#CfYZ>wZ]#Cf]^>w^r#Cfrs#'[s#O#Cf#O#P#Fj#P#o#Cf#o#p#8h#p#q#Cf#q#r#5h#r~#CfJ}#FqXQ1s&^7[OY#CfYZ>wZ]#Cf]^>w^#o#Cf#o#p#5h#p#q#Cf#q#r#5h#r~#CfLu#GeXQ1s&^7[OY!KxYZ'PZ]!Kx]^'P^#o!Kx#o#p#HQ#p#q!Kx#q#r#HQ#r~!Kx6i#Ha]Q1s&TS&WW&Z`&d!b&f#tOY#HQYZAyZ]#HQ]^Ay^r#HQrs#IYsw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ6i#Ie]Q1s&TS&Z`&d!bOY#HQYZAyZ]#HQ]^Ay^r#HQrs#J^sw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ6i#Ji]Q1s&TS&Z`&d!bOY#HQYZAyZ]#HQ]^Ay^r#HQrs#Kbsw#HQwx#3dx#O#HQ#O#P#Mn#P#o#HQ#o#p#NS#p~#HQ3k#KmZQ1s&TS&Z`&d!bOY#KbYZD_Z]#Kb]^D_^w#Kbwx#)|x#O#Kb#O#P#L`#P#o#Kb#o#p#Lt#p~#Kb3k#LeTQ1sOY#KbYZD_Z]#Kb]^D_^~#Kb3k#L{ZQ1s&TSOY#,zYZ1OZ]#,z]^1O^w#,zwx#-nx#O#,z#O#P#/Q#P#o#,z#o#p#Kb#p~#,z6i#MsTQ1sOY#HQYZAyZ]#HQ]^Ay^~#HQ6i#N]]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p#HQ#p~#=dLu$ c_Q1s&^7[&TS&Z`&d!bOY!KxYZ'PZ]!Kx]^'P^r!Kxrs$!bsw!Kxwx!MYx#O!Kx#O#P#G^#P#o!Kx#o#p#NS#p#q!Kx#q#r#HQ#r~!KxIw$!o]Q1s&^7[&TS&Z`&d!bOY$!bYZGgZ]$!b]^Gg^w$!bwx#%[x#O$!b#O#P$#h#P#o$!b#o#p#Lt#p#q$!b#q#r#Kb#r~$!bIw$#oXQ1s&^7[OY$!bYZGgZ]$!b]^Gg^#o$!b#o#p#Kb#p#q$!b#q#r#Kb#r~$!bMV$$i_Q1s&^7[&WW&ap&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$.px#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hMV$%y_Q1s&^7[&TS&WW&ap&d!b&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$$[x#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hMV$'PXQ1s&^7[OY$%hYZIqZ]$%h]^Iq^#o$%h#o#p$'l#p#q$%h#q#r$'l#r~$%h6y$'{]Q1s&TS&WW&ap&d!b&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$(tx#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l6y$)P]Q1s&WW&ap&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$)xx#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l6y$*T]Q1s&WW&ap&f#tOY$'lYZKXZ]$'l]^KX^r$'lrs#1`sw$'lwx$*|x#O$'l#O#P$-Y#P#o$'l#o#p$-n#p~$'l5c$+XZQ1s&WW&ap&f#tOY$*|YZMmZ]$*|]^Mm^r$*|rs#6ds#O$*|#O#P$+z#P#o$*|#o#p$,`#p~$*|5c$,PTQ1sOY$*|YZMmZ]$*|]^Mm^~$*|5c$,gZQ1s&WWOY#9bYZ8tZ]#9b]^8t^r#9brs#:Us#O#9b#O#P#;h#P#o#9b#o#p$*|#p~#9b6y$-_TQ1sOY$'lYZKXZ]$'l]^KX^~$'l6y$-w]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p$'l#p~#=dMV$.}_Q1s&^7[&WW&ap&f#tOY$%hYZIqZ]$%h]^Iq^r$%hrs# rsw$%hwx$/|x#O$%h#O#P$&x#P#o$%h#o#p$-n#p#q$%h#q#r$'l#r~$%hKo$0Z]Q1s&^7[&WW&ap&f#tOY$/|YZ!!uZ]$/|]^!!u^r$/|rs#Djs#O$/|#O#P$1S#P#o$/|#o#p$,`#p#q$/|#q#r$*|#r~$/|Ko$1ZXQ1s&^7[OY$/|YZ!!uZ]$/|]^!!u^#o$/|#o#p$*|#p#q$/|#q#r$*|#r~$/|Mg$1}XQ1s&^7[OY!IYYZ$}Z]!IY]^$}^#o!IY#o#p$2j#p#q!IY#q#r$2j#r~!IY7Z$2{]Q1s&TS&WW&Z`&ap&d!b&f#tOY$2jYZ!$gZ]$2j]^!$g^r$2jrs#IYsw$2jwx$(tx#O$2j#O#P$3t#P#o$2j#o#p$4Y#p~$2j7Z$3yTQ1sOY$2jYZ!$gZ]$2j]^!$g^~$2j7Z$4c]Q1s&TS&WWOY#=dYZ:{Z]#=d]^:{^r#=drs#>`sw#=dwx#@Sx#O#=d#O#P#Av#P#o#=d#o#p$2j#p~#=dGz$5o]%jQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz$6{Z!s,W&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz$8R]%dQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}G{$9Z_&_`&^7[&WW&R,X&ap&f#tOY$:YYZIqZ]$:Y]^Iq^r$:Yrs$;jsw$:Ywx%%zx#O$:Y#O#P%!^#P#o$:Y#o#p%$x#p#q$:Y#q#r%!r#r~$:YGk$:k_&^7[&TS&WW&R,X&ap&d!b&f#tOY$:YYZIqZ]$:Y]^Iq^r$:Yrs$;jsw$:Ywx% ^x#O$:Y#O#P%!^#P#o$:Y#o#p%$x#p#q$:Y#q#r%!r#r~$:YFy$;u_&^7[&TS&R,X&d!bOY$Sx#O$Sx#O$_Z&^7[&WW&R,X&f#tOr(}rs)}sw(}wx={x#O(}#O#P2]#P#o(}#o#p:X#p#q(}#q#r2q#r~(}Fy$?VT&^7[O#o$Sx#O$T!Q!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gz%>h]%kQ&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`$6h!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%?tu!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!O$}!O!P%BX!P!Q$}!Q![%Cc![!d$}!d!e%Ee!e!g$}!g!h%7Z!h!l$}!l!m%;k!m!q$}!q!r%H_!r!z$}!z!{%KR!{#O$}#O#P!$R#P#R$}#R#S%Cc#S#U$}#U#V%Ee#V#X$}#X#Y%7Z#Y#^$}#^#_%;k#_#c$}#c#d%H_#d#l$}#l#m%KR#m#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Bj]&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%5_![#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Cvi!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!O$}!O!P%BX!P!Q$}!Q![%Cc![!g$}!g!h%7Z!h!l$}!l!m%;k!m#O$}#O#P!$R#P#R$}#R#S%Cc#S#X$}#X#Y%7Z#Y#^$}#^#_%;k#_#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Ev`&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!R%Fx!R!S%Fx!S#O$}#O#P!$R#P#R$}#R#S%Fx#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%G]`!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!R%Fx!R!S%Fx!S#O$}#O#P!$R#P#R$}#R#S%Fx#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Hp_&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!Y%Io!Y#O$}#O#P!$R#P#R$}#R#S%Io#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%JS_!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q!Y%Io!Y#O$}#O#P!$R#P#R$}#R#S%Io#S#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%Kdc&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%Lo![!c$}!c!i%Lo!i#O$}#O#P!$R#P#R$}#R#S%Lo#S#T$}#T#Z%Lo#Z#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Gy%MSc!f,V&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!Q$}!Q![%Lo![!c$}!c!i%Lo!i#O$}#O#P!$R#P#R$}#R#S%Lo#S#T$}#T#Z%Lo#Z#o$}#o#p!%i#p#q$}#q#r!$g#r~$}Mg%Nr]y1s&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx!_$}!_!`& k!`#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}x!u!}&+n!}#O$}#O#P!$R#P#R$}#R#S&+n#S#T$}#T#f&+n#f#g&>x#g#o&+n#o#p!%i#p#q$}#q#r!$g#r$g$}$g~&+nGZ&9gZ&^7[&TS&Z`&d!b&`,XOr'Prs&:Ysw'Pwx(Rx#O'P#O#PAe#P#o'P#o#pEu#p#q'P#q#rAy#r~'PGZ&:eZ&^7[&TS&Z`&d!bOr'Prs&;Wsw'Pwx(Rx#O'P#O#PAe#P#o'P#o#pEu#p#q'P#q#rAy#r~'PD]&;eX&^7[&TS&e,X&Z`&d!bOwGgwx,kx#OGg#O#PH_#P#oGg#o#pET#p#qGg#q#rD_#r~GgGk&<_Z&^7[&WW&ap&f#t&Y,XOrIqrs)}swIqwx&=Qx#OIq#O#PJs#P#oIq#o#p! T#p#qIq#q#rKX#r~IqGk&=]Z&^7[&WW&ap&f#tOrIqrs)}swIqwx&>Ox#OIq#O#PJs#P#oIq#o#p! T#p#qIq#q#rKX#r~IqFT&>]X&^7[&WW&c,X&ap&f#tOr!!urs?ms#O!!u#O#P!#m#P#o!!u#o#pNc#p#q!!u#q#rMm#r~!!uMg&?_c&^7[&TS&WW&Q&j&Z`&ap&d!b&f#t%m,XOr$}rs&9Ysw$}wx&x!i!t&+n!t!u&5j!u!}&+n!}#O$}#O#P!$R#P#R$}#R#S&+n#S#T$}#T#U&+n#U#V&5j#V#Y&+n#Y#Z&>x#Z#o&+n#o#p!%i#p#q$}#q#r!$g#r$g$}$g~&+nG{&CXZ!V,X&^7[&TS&WW&Z`&ap&d!b&f#tOr$}rs&Rsw$}wxHsx#O$}#O#P!$R#P#o$}#o#p!%i#p#q$}#q#r!$g#r~$}SY[O]||-1}],tokenPrec:7282}),BQ=new bc,eP=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function In(O){return(e,t,i)=>{if(i)return!1;let r=e.node.getChild("VariableName");return r&&t(r,O),!0}}const yY={FunctionDefinition:In("function"),ClassDefinition:In("class"),ForStatement(O,e,t){if(t){for(let i=O.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name=="in")break}},ImportStatement(O,e){var t,i;let{node:r}=O,n=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let s=r.getChild("import");s;s=s.nextSibling)s.name=="VariableName"&&((i=s.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&e(s,n?"variable":"namespace")},AssignStatement(O,e){for(let t=O.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(O,e){for(let t=null,i=O.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(i,"variable"),t=i},CapturePattern:In("variable"),AsPattern:In("variable"),__proto__:null};function tP(O,e){let t=BQ.get(e);if(t)return t;let i=[],r=!0;function n(s,o){let a=O.sliceString(s.from,s.to);i.push({label:a,type:o})}return e.cursor(Pe.IncludeAnonymous).iterate(s=>{if(s.name){let o=yY[s.name];if(o&&o(s,n,r)||!r&&eP.has(s.name))return!1;r=!1}else if(s.to-s.from>8192){for(let o of tP(O,s.node))i.push(o);return!1}}),BQ.set(e,i),i}const HQ=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,OP=["String","FormatString","Comment","PropertyName"];function xY(O){let e=ue(O.state).resolveInner(O.pos,-1);if(OP.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&HQ.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let i=[];for(let r=e;r;r=r.parent)eP.has(r.name)&&(i=i.concat(tP(O.state.doc,r)));return{options:i,from:t?e.from:O.pos,validFor:HQ}}const bY=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(O=>({label:O,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(O=>({label:O,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(O=>({label:O,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(O=>({label:O,type:"function"}))),wY=[Re("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Re("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Re("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Re("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Re(`if \${}: + +`,{label:"if",detail:"block",type:"keyword"}),Re("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Re("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Re("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Re("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],WY=Cc(OP,po(bY.concat(wY)));function FQ(O,e){let t=O.lineIndent(e.from),i=O.lineAt(O.pos,-1),r=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&O.node.tot?null:t+O.unit}const na=Ie.define({name:"python",parser:XY.configure({props:[pt.add({Body:O=>{var e;return(e=FQ(O,O.node))!==null&&e!==void 0?e:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except |finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":zO({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":zO({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":zO({closing:"]"}),"String FormatString":()=>null,Script:O=>{if(O.pos+/\s*/.exec(O.textAfter)[0].length>=O.node.to){let e=null;for(let t=O.node,i=t.to;t=t.lastChild,!(!t||t.to!=i);)t.type.name=="Body"&&(e=t);if(e){let t=FQ(O,e);if(t!=null)return t}}return O.continue()}}),ft.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":fO,Body:(O,e)=>({from:O.from+1,to:O.to-(O.to==e.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function TY(){return new Je(na,[na.data.of({autocomplete:xY}),na.data.of({autocomplete:WY})])}const YY=94,KQ=1,vY=95,qY=96,JQ=2,iP=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],kY=58,ZY=40,rP=95,RY=91,as=45,UY=46,VY=35,zY=37;function Es(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function _Y(O){return O>=48&&O<=57}const jY=new de((O,e)=>{for(let t=!1,i=0,r=0;;r++){let{next:n}=O;if(Es(n)||n==as||n==rP||t&&_Y(n))!t&&(n!=as||r>0)&&(t=!0),i===r&&n==as&&i++,O.advance();else{t&&O.acceptToken(n==ZY?vY:i==2&&e.canShift(JQ)?JQ:qY);break}}}),GY=new de(O=>{if(iP.includes(O.peek(-1))){let{next:e}=O;(Es(e)||e==rP||e==VY||e==UY||e==RY||e==kY||e==as)&&O.acceptToken(YY)}}),CY=new de(O=>{if(!iP.includes(O.peek(-1))){let{next:e}=O;if(e==zY&&(O.advance(),O.acceptToken(KQ)),Es(e)){do O.advance();while(Es(O.next));O.acceptToken(KQ)}}}),IY=De({"AtKeyword import charset namespace keyframes media supports":f.definitionKeyword,"from to selector":f.keyword,NamespaceName:f.namespace,KeyframeName:f.labelName,TagName:f.tagName,ClassName:f.className,PseudoClassName:f.constant(f.className),IdName:f.labelName,"FeatureName PropertyName":f.propertyName,AttributeName:f.attributeName,NumberLiteral:f.number,KeywordQuery:f.keyword,UnaryQueryOp:f.operatorKeyword,"CallTag ValueName":f.atom,VariableName:f.variableName,Callee:f.operatorKeyword,Unit:f.unit,"UniversalSelector NestingSelector":f.definitionOperator,MatchOp:f.compareOperator,"ChildOp SiblingOp, LogicOp":f.logicOperator,BinOp:f.arithmeticOperator,Important:f.modifier,Comment:f.blockComment,ParenthesizedContent:f.special(f.name),ColorLiteral:f.color,StringLiteral:f.string,":":f.punctuation,"PseudoOp #":f.derefOperator,"; ,":f.separator,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace}),EY={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:134},AY={__proto__:null,"@import":114,"@media":138,"@charset":142,"@namespace":146,"@keyframes":152,"@supports":164},DY={__proto__:null,not:128,only:128,from:158,to:160},MY=Ee.deserialize({version:14,states:"7WQYQ[OOO#_Q[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO#fQ[O'#CfO$YQXO'#CaO$aQ[O'#ChO$lQ[O'#DPO$qQ[O'#DTOOQP'#Ed'#EdO$vQdO'#DeO%bQ[O'#DrO$vQdO'#DtO%sQ[O'#DvO&OQ[O'#DyO&TQ[O'#EPO&cQ[O'#EROOQS'#Ec'#EcOOQS'#ET'#ETQYQ[OOO&jQXO'#CdO'_QWO'#DaO'dQWO'#EjO'oQ[O'#EjQOQWOOOOQP'#Cg'#CgOOQP,59Q,59QO#fQ[O,59QO'yQ[O'#EWO(eQWO,58{O(mQ[O,59SO$lQ[O,59kO$qQ[O,59oO'yQ[O,59sO'yQ[O,59uO'yQ[O,59vO(xQ[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)PQWO,59SO)UQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)ZQ`O,59oOOQS'#Cp'#CpO$vQdO'#CqO)cQvO'#CsO*pQtO,5:POOQO'#Cx'#CxO)UQWO'#CwO+UQWO'#CyOOQS'#Eg'#EgOOQO'#Dh'#DhO+ZQ[O'#DoO+iQWO'#EkO&TQ[O'#DmO+wQWO'#DpOOQO'#El'#ElO(hQWO,5:^O+|QpO,5:`OOQS'#Dx'#DxO,UQWO,5:bO,ZQ[O,5:bOOQO'#D{'#D{O,cQWO,5:eO,hQWO,5:kO,pQWO,5:mOOQS-E8R-E8RO$vQdO,59{O,xQ[O'#EYO-VQWO,5;UO-VQWO,5;UOOQP1G.l1G.lO-|QXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO)PQWO1G.nO)UQWO1G.nOOQP1G/V1G/VO.ZQ`O1G/ZO.tQXO1G/_O/[QXO1G/aO/rQXO1G/bO0YQWO,59zO0_Q[O'#DOO0fQdO'#CoOOQP1G/Z1G/ZO$vQdO1G/ZO0mQpO,59]OOQS,59_,59_O$vQdO,59aO0uQWO1G/kOOQS,59c,59cO0zQ!bO,59eO1SQWO'#DhO1_QWO,5:TO1dQWO,5:ZO&TQ[O,5:VO&TQ[O'#EZO1lQWO,5;VO1wQWO,5:XO'yQ[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2YQWO1G/|O2_QdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2mQtO1G/gOOQO,5:t,5:tO3TQ[O,5:tOOQO-E8W-E8WO3bQWO1G0pOOQP7+$Y7+$YOOQP7+$u7+$uO$vQdO7+$uOOQS1G/f1G/fO3mQXO'#EiO3tQWO,59jO3yQtO'#EUO4nQdO'#EfO4xQWO,59ZO4}QpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5VQWO1G/PO$vQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5[QWO,5:uOOQO-E8X-E8XO5jQXO1G/vOOQS7+%h7+%hO5qQYO'#CsO(hQWO'#E[O5yQdO,5:hOOQS,5:h,5:hO6XQtO'#EXO$vQdO'#EXO7VQdO7+%ROOQO7+%R7+%ROOQO1G0`1G0`O7jQpO<T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#[UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^[[oW#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#XPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#[UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^XKeS!RPOy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}",tokenizers:[GY,CY,jY,0,1,2,3],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:95,get:O=>EY[O]||-1},{term:56,get:O=>AY[O]||-1},{term:96,get:O=>DY[O]||-1}],tokenPrec:1123});let sa=null;function oa(){if(!sa&&typeof document=="object"&&document.body){let{style:O}=document.body,e=[],t=new Set;for(let i in O)i!="cssText"&&i!="cssFloat"&&typeof O[i]=="string"&&(/[A-Z]/.test(i)&&(i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(i)||(e.push(i),t.add(i)));sa=e.sort().map(i=>({type:"property",label:i}))}return sa||[]}const eu=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(O=>({type:"class",label:O})),tu=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(O=>({type:"keyword",label:O})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(O=>({type:"constant",label:O}))),NY=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(O=>({type:"type",label:O})),WO=/^(\w[\w-]*|-\w[\w-]*|)$/,LY=/^-(-[\w-]*)?$/;function BY(O,e){var t;if((O.name=="("||O.type.isError)&&(O=O.parent||O),O.name!="ArgList")return!1;let i=(t=O.parent)===null||t===void 0?void 0:t.firstChild;return(i==null?void 0:i.name)!="Callee"?!1:e.sliceString(i.from,i.to)=="var"}const Ou=new bc,HY=["Declaration"];function FY(O){for(let e=O;;){if(e.type.isTop)return e;if(!(e=e.parent))return O}}function nP(O,e){if(e.to-e.from>4096){let t=Ou.get(e);if(t)return t;let i=[],r=new Set,n=e.cursor(Pe.IncludeAnonymous);if(n.firstChild())do for(let s of nP(O,n.node))r.has(s.label)||(r.add(s.label),i.push(s));while(n.nextSibling());return Ou.set(e,i),i}else{let t=[],i=new Set;return e.cursor().iterate(r=>{var n;if(r.name=="VariableName"&&r.matchContext(HY)&&((n=r.node.nextSibling)===null||n===void 0?void 0:n.name)==":"){let s=O.sliceString(r.from,r.to);i.has(s)||(i.add(s),t.push({label:s,type:"variable"}))}}),t}}const KY=O=>{let{state:e,pos:t}=O,i=ue(e).resolveInner(t,-1),r=i.type.isError&&i.from==i.to-1&&e.doc.sliceString(i.from,i.to)=="-";if(i.name=="PropertyName"||(r||i.name=="TagName")&&/^(Block|Styles)$/.test(i.resolve(i.to).name))return{from:i.from,options:oa(),validFor:WO};if(i.name=="ValueName")return{from:i.from,options:tu,validFor:WO};if(i.name=="PseudoClassName")return{from:i.from,options:eu,validFor:WO};if(i.name=="VariableName"||(O.explicit||r)&&BY(i,e.doc))return{from:i.name=="VariableName"?i.from:t,options:nP(e.doc,FY(i)),validFor:LY};if(i.name=="TagName"){for(let{parent:o}=i;o;o=o.parent)if(o.name=="Block")return{from:i.from,options:oa(),validFor:WO};return{from:i.from,options:NY,validFor:WO}}if(!O.explicit)return null;let n=i.resolve(t),s=n.childBefore(t);return s&&s.name==":"&&n.name=="PseudoClassSelector"?{from:t,options:eu,validFor:WO}:s&&s.name==":"&&n.name=="Declaration"||n.name=="ArgList"?{from:t,options:tu,validFor:WO}:n.name=="Block"||n.name=="Styles"?{from:t,options:oa(),validFor:WO}:null},As=Ie.define({name:"css",parser:MY.configure({props:[pt.add({Declaration:Ce()}),ft.add({Block:fO})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function sP(){return new Je(As,As.data.of({autocomplete:KY}))}const JY=36,iu=1,ev=2,En=3,aa=4,tv=5,Ov=6,iv=7,rv=8,nv=9,sv=10,ov=11,av=12,lv=13,cv=14,hv=15,fv=16,Qv=17,ru=18,uv=19,oP=20,aP=21,nu=22,$v=23,dv=24;function Tl(O){return O>=65&&O<=90||O>=97&&O<=122||O>=48&&O<=57}function pv(O){return O>=48&&O<=57||O>=97&&O<=102||O>=65&&O<=70}function ei(O,e,t){for(let i=!1;;){if(O.next<0)return;if(O.next==e&&!i){O.advance();return}i=t&&!i&&O.next==92,O.advance()}}function mv(O){for(;;){if(O.next<0||O.peek(1)<0)return;if(O.next==36&&O.peek(1)==36){O.advance(2);return}O.advance()}}function lP(O,e){for(;!(O.next!=95&&!Tl(O.next));)e!=null&&(e+=String.fromCharCode(O.next)),O.advance();return e}function Pv(O){if(O.next==39||O.next==34||O.next==96){let e=O.next;O.advance(),ei(O,e,!1)}else lP(O)}function su(O,e){for(;O.next==48||O.next==49;)O.advance();e&&O.next==e&&O.advance()}function ou(O,e){for(;;){if(O.next==46){if(e)break;e=!0}else if(O.next<48||O.next>57)break;O.advance()}if(O.next==69||O.next==101)for(O.advance(),(O.next==43||O.next==45)&&O.advance();O.next>=48&&O.next<=57;)O.advance()}function au(O){for(;!(O.next<0||O.next==10);)O.advance()}function Pi(O,e){for(let t=0;t!=&|~^/",specialVar:"?",identifierQuotes:'"',words:cP(Sv,gv)};function Xv(O,e,t,i){let r={};for(let n in Yl)r[n]=(O.hasOwnProperty(n)?O:Yl)[n];return e&&(r.words=cP(e,t||"",i)),r}function hP(O){return new de(e=>{var t;let{next:i}=e;if(e.advance(),Pi(i,lu)){for(;Pi(e.next,lu);)e.advance();e.acceptToken(JY)}else if(i==36&&e.next==36&&O.doubleDollarQuotedStrings)mv(e),e.acceptToken(En);else if(i==39||i==34&&O.doubleQuotedStrings)ei(e,i,O.backslashEscapes),e.acceptToken(En);else if(i==35&&O.hashComments||i==47&&e.next==47&&O.slashComments)au(e),e.acceptToken(iu);else if(i==45&&e.next==45&&(!O.spaceAfterDashes||e.peek(1)==32))au(e),e.acceptToken(iu);else if(i==47&&e.next==42){e.advance();for(let r=-1,n=1;!(e.next<0);)if(e.advance(),r==42&&e.next==47){if(n--,!n){e.advance();break}r=-1}else r==47&&e.next==42?(n++,r=-1):r=e.next;e.acceptToken(ev)}else if((i==101||i==69)&&e.next==39)e.advance(),ei(e,39,!0);else if((i==110||i==78)&&e.next==39&&O.charSetCasts)e.advance(),ei(e,39,O.backslashEscapes),e.acceptToken(En);else if(i==95&&O.charSetCasts)for(let r=0;;r++){if(e.next==39&&r>1){e.advance(),ei(e,39,O.backslashEscapes),e.acceptToken(En);break}if(!Tl(e.next))break;e.advance()}else if(i==40)e.acceptToken(iv);else if(i==41)e.acceptToken(rv);else if(i==123)e.acceptToken(nv);else if(i==125)e.acceptToken(sv);else if(i==91)e.acceptToken(ov);else if(i==93)e.acceptToken(av);else if(i==59)e.acceptToken(lv);else if(O.unquotedBitLiterals&&i==48&&e.next==98)e.advance(),su(e),e.acceptToken(nu);else if((i==98||i==66)&&(e.next==39||e.next==34)){const r=e.next;e.advance(),O.treatBitsAsBytes?(ei(e,r,O.backslashEscapes),e.acceptToken($v)):(su(e,r),e.acceptToken(nu))}else if(i==48&&(e.next==120||e.next==88)||(i==120||i==88)&&e.next==39){let r=e.next==39;for(e.advance();pv(e.next);)e.advance();r&&e.next==39&&e.advance(),e.acceptToken(aa)}else if(i==46&&e.next>=48&&e.next<=57)ou(e,!0),e.acceptToken(aa);else if(i==46)e.acceptToken(cv);else if(i>=48&&i<=57)ou(e,!1),e.acceptToken(aa);else if(Pi(i,O.operatorChars)){for(;Pi(e.next,O.operatorChars);)e.advance();e.acceptToken(hv)}else if(Pi(i,O.specialVar))e.next==i&&e.advance(),Pv(e),e.acceptToken(Qv);else if(Pi(i,O.identifierQuotes))ei(e,i,!1),e.acceptToken(uv);else if(i==58||i==44)e.acceptToken(fv);else if(Tl(i)){let r=lP(e,String.fromCharCode(i));e.acceptToken(e.next==46?ru:(t=O.words[r.toLowerCase()])!==null&&t!==void 0?t:ru)}})}const fP=hP(Yl),yv=Ee.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,fP],topRules:{Script:[0,25]},tokenPrec:0});function vl(O){let e=O.cursor().moveTo(O.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function Jr(O,e){let t=O.sliceString(e.from,e.to),i=/^([`'"])(.*)\1$/.exec(t);return i?i[2]:t}function Ds(O){return O&&(O.name=="Identifier"||O.name=="QuotedIdentifier")}function xv(O,e){if(e.name=="CompositeIdentifier"){let t=[];for(let i=e.firstChild;i;i=i.nextSibling)Ds(i)&&t.push(Jr(O,i));return t}return[Jr(O,e)]}function cu(O,e){for(let t=[];;){if(!e||e.name!=".")return t;let i=vl(e);if(!Ds(i))return t;t.unshift(Jr(O,i)),e=vl(i)}}function bv(O,e){let t=ue(O).resolveInner(e,-1),i=Wv(O.doc,t);return t.name=="Identifier"||t.name=="QuotedIdentifier"||t.name=="Keyword"?{from:t.from,quoted:t.name=="QuotedIdentifier"?O.doc.sliceString(t.from,t.from+1):null,parents:cu(O.doc,vl(t)),aliases:i}:t.name=="."?{from:e,quoted:null,parents:cu(O.doc,t),aliases:i}:{from:e,quoted:null,parents:[],empty:!0,aliases:i}}const wv=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function Wv(O,e){let t;for(let r=e;!t;r=r.parent){if(!r)return null;r.name=="Statement"&&(t=r)}let i=null;for(let r=t.firstChild,n=!1,s=null;r;r=r.nextSibling){let o=r.name=="Keyword"?O.sliceString(r.from,r.to).toLowerCase():null,a=null;if(!n)n=o=="from";else if(o=="as"&&s&&Ds(r.nextSibling))a=Jr(O,r.nextSibling);else{if(o&&wv.has(o))break;s&&Ds(r)&&(a=Jr(O,r))}a&&(i||(i=Object.create(null)),i[a]=xv(O,s)),s=/Identifier$/.test(r.name)?r:null}return i}function Tv(O,e){return O?e.map(t=>Object.assign(Object.assign({},t),{label:O+t.label+O,apply:void 0})):e}const Yv=/^\w*$/,vv=/^[`'"]?\w*[`'"]?$/;class Kc{constructor(){this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null));return t[e]||(t[e]=new Kc)}childCompletions(e){return this.children?Object.keys(this.children).filter(t=>t).map(t=>({label:t,type:e})):[]}}function qv(O,e,t,i,r){let n=new Kc,s=n.child(r||"");for(let o in O){let a=o.indexOf("."),c=(a>-1?n.child(o.slice(0,a)):s).child(a>-1?o.slice(a+1):o);c.list=O[o].map(h=>typeof h=="string"?{label:h,type:"property"}:h)}s.list=(e||s.childCompletions("type")).concat(i?s.child(i).list:[]);for(let o in n.children){let a=n.child(o);a.list.length||(a.list=a.childCompletions("type"))}return n.list=s.list.concat(t||n.childCompletions("type")),o=>{let{parents:a,from:l,quoted:c,empty:h,aliases:Q}=bv(o.state,o.pos);if(h&&!o.explicit)return null;Q&&a.length==1&&(a=Q[a[0]]||a);let u=n;for(let p of a){for(;!u.children||!u.children[p];)if(u==n)u=s;else if(u==s&&i)u=u.child(i);else return null;u=u.child(p)}let $=c&&o.state.sliceDoc(o.pos,o.pos+1)==c,d=u.list;return u==n&&Q&&(d=d.concat(Object.keys(Q).map(p=>({label:p,type:"constant"})))),{from:l,to:$?o.pos+1:void 0,options:Tv(c,d),validFor:c?vv:Yv}}}function kv(O,e){let t=Object.keys(O).map(i=>({label:e?i.toUpperCase():i,type:O[i]==aP?"type":O[i]==oP?"keyword":"variable",boost:-1}));return Cc(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],po(t))}let Zv=yv.configure({props:[pt.add({Statement:Ce()}),ft.add({Statement(O){return{from:O.firstChild.to,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:f.keyword,Type:f.typeName,Builtin:f.standard(f.name),Bits:f.number,Bytes:f.string,Bool:f.bool,Null:f.null,Number:f.number,String:f.string,Identifier:f.name,QuotedIdentifier:f.special(f.string),SpecialVar:f.special(f.name),LineComment:f.lineComment,BlockComment:f.blockComment,Operator:f.operator,"Semi Punctuation":f.punctuation,"( )":f.paren,"{ }":f.brace,"[ ]":f.squareBracket})]});class Jc{constructor(e,t){this.dialect=e,this.language=t}get extension(){return this.language.extension}static define(e){let t=Xv(e,e.keywords,e.types,e.builtin),i=Ie.define({name:"sql",parser:Zv.configure({tokenizers:[{from:fP,to:hP(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new Jc(t,i)}}function Rv(O,e=!1){return kv(O.dialect.words,e)}function Uv(O,e=!1){return O.language.data.of({autocomplete:Rv(O,e)})}function Vv(O){return O.schema?qv(O.schema,O.tables,O.schemas,O.defaultTable,O.defaultSchema):()=>null}function zv(O){return O.schema?(O.dialect||QP).language.data.of({autocomplete:Vv(O)}):[]}function _v(O={}){let e=O.dialect||QP;return new Je(e.language,[zv(O),Uv(e,!!O.upperCaseKeywords)])}const QP=Jc.define({}),jv=1,Gv=2,Cv=3,Iv=4,Ev=5,hu=98,Av=101,Dv=102,fu=114,Mv=69,An=48,Qu=46,Nv=43,Lv=45,uu=35,$u=34,Bv=124,Hv=60,Fv=62;function ql(O){return O>=48&&O<=57}function Dn(O){return ql(O)||O==95}const Kv=new de((O,e)=>{if(ql(O.next)){let t=!1;do O.advance();while(Dn(O.next));if(O.next==Qu){if(t=!0,O.advance(),ql(O.next))do O.advance();while(Dn(O.next));else if(O.next==Qu||O.next>127||/\w/.test(String.fromCharCode(O.next)))return}if(O.next==Av||O.next==Mv){if(t=!0,O.advance(),(O.next==Nv||O.next==Lv)&&O.advance(),!Dn(O.next))return;do O.advance();while(Dn(O.next))}if(O.next==Dv){let i=O.peek(1);if(i==An+3&&O.peek(2)==An+2||i==An+6&&O.peek(2)==An+4)O.advance(3),t=!0;else return}t&&O.acceptToken(Ev)}else if(O.next==hu||O.next==fu){if(O.next==hu&&O.advance(),O.next!=fu)return;O.advance();let t=0;for(;O.next==uu;)t++,O.advance();if(O.next!=$u)return;O.advance();e:for(;;){if(O.next<0)return;let i=O.next==$u;if(O.advance(),i){for(let r=0;r{O.next==Bv&&O.acceptToken(jv,1)}),eq=new de(O=>{O.next==Hv?O.acceptToken(Gv,1):O.next==Fv&&O.acceptToken(Cv,1)}),tq=De({"const macro_rules struct union enum type fn impl trait let static":f.definitionKeyword,"mod use crate":f.moduleKeyword,"pub unsafe async mut extern default move":f.modifier,"for if else loop while match continue break return await":f.controlKeyword,"as in ref":f.operatorKeyword,"where _ crate super dyn":f.keyword,self:f.self,String:f.string,Char:f.character,RawString:f.special(f.string),Boolean:f.bool,Identifier:f.variableName,"CallExpression/Identifier":f.function(f.variableName),BoundIdentifier:f.definition(f.variableName),"FunctionItem/BoundIdentifier":f.function(f.definition(f.variableName)),LoopLabel:f.labelName,FieldIdentifier:f.propertyName,"CallExpression/FieldExpression/FieldIdentifier":f.function(f.propertyName),Lifetime:f.special(f.variableName),ScopeIdentifier:f.namespace,TypeIdentifier:f.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":f.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":f.macroName,'"!"':f.macroName,UpdateOp:f.updateOperator,LineComment:f.lineComment,BlockComment:f.blockComment,Integer:f.integer,Float:f.float,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,"=":f.definitionOperator,".. ... => ->":f.punctuation,"( )":f.paren,"[ ]":f.squareBracket,"{ }":f.brace,". DerefOp":f.derefOperator,"&":f.operator,", ; ::":f.separator,"Attribute/...":f.meta}),Oq={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},iq=Ee.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[tq],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"#?|_R!VOX$hXY1_YZ2ZZ]$h]^1_^p$hpq1_qr2srs4qst5Ztu6Vuv9lvw;jwx=nxy!!ayz!#]z{!$X{|!&R|}!'T}!O!(P!O!P!*Q!P!Q!-|!Q!R!6X!R![!7|![!]!Jw!]!^!Lu!^!_!Mq!_!`# x!`!a##y!a!b#&Q!b!c#&|!c!}#'x!}#O#)o#O#P#*k#P#Q#1b#Q#R#2^#R#S#'x#S#T$h#T#U#'x#U#V#3`#V#f#'x#f#g#6s#g#o#'x#o#p#y!X!Y$h!Y!Z!<}!Z#O$h#O#P%x#P#g$h#g#h!?y#h~$h_!;O_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!;}!T!W$h!W!X!<}!X#O$h#O#P%x#P~$h_!Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!S$h!S!T!<}!T#O$h#O#P%x#P~$h_!?Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!U$h!U!V!<}!V#O$h#O#P%x#P~$h_!@Q]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#]$h#]#^!@y#^~$h_!AQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#n$h#n#o!Ay#o~$h_!BQ]'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P#X$h#X#Y!<}#Y~$h_!CQ_'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S~$h_!DYcuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!R!DP!R!S!DP!S#O$h#O#P%x#P#R$h#R#S!DP#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!El^'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S~$h_!FqbuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!Y!Fh!Y#O$h#O#P%x#P#R$h#R#S!Fh#S#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!HQb'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z~$h_!IcfuX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![!IY![!c$h!c!i!IY!i#O$h#O#P%x#P#R$h#R#S!IY#S#T$h#T#Z!IY#Z#]$h#]#^!9_#^#i$h#i#j!9_#j~$h_!KQ]!SX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![$h![!]!Ky!]#O$h#O#P%x#P~$h_!LSZdX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!MOZyX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_!Mz^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!^$h!^!_!Nv!_!`3u!`#O$h#O#P%x#P~$h_# P]'yX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#!R^oX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#!}!a#O$h#O#P%x#P~$h_##WZ#RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#$S^#PX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`3u!`!a#%O!a#O$h#O#P%x#P~$h_#%X]'zX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#&ZZ(RX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hV#'VZ'pP'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#(Th'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h_#)xZ[X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$hU#*pX'OSOz#+]z{#+s{!P#+]!P!Q#,X!Q#i#+]#i#j#,j#j#l#+]#l#m#.Y#m~#+]U#+dTrQ'OSOz%xz{&^{!P%x!P!Q'S!Q~%xU#+xTrQOz&pz{&^{!P&p!P!Q({!Q~&pU#,^SrQOz&p{!P&p!P!Q'c!Q~&pU#,o['OSOz%xz{&^{!P%x!P!Q'S!Q![#-e![!c%x!c!i#-e!i#T%x#T#Z#-e#Z#o%x#o#p#/r#p~%xU#-jY'OSOz%xz{&^{!P%x!P!Q'S!Q![#.Y![!c%x!c!i#.Y!i#T%x#T#Z#.Y#Z~%xU#._Y'OSOz%xz{&^{!P%x!P!Q'S!Q![#.}![!c%x!c!i#.}!i#T%x#T#Z#.}#Z~%xU#/SY'OSOz%xz{&^{!P%x!P!Q'S!Q![#+]![!c%x!c!i#+]!i#T%x#T#Z#+]#Z~%xU#/wY'OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z~%xU#0l['OSOz%xz{&^{!P%x!P!Q'S!Q![#0g![!c%x!c!i#0g!i#T%x#T#Z#0g#Z#q%x#q#r#+]#r~%x_#1kZXX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#2g]'{X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!_$h!_!`:n!`#O$h#O#P%x#P~$h_#3kj'_Q'OS!yW'TPOY$hYZ%bZr$hrs#5]sw$hwx#5sxz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$h]#5dT'OS'^XOz%xz{&^{!P%x!P!Q'S!Q~%x_#5z]'_Q'OSOY?dYZA`Zr?drsBdsw?dwx@dxz?dz{CO{!P?d!P!QDv!Q#O?d#O#PId#P~?d_#7Oi'_Q'OS!yW'TPOY$hYZ%bZr$hrs%xst#8mtz$hz{)Q{!P$h!P!Q*p!Q![#'x![!c$h!c!}#'x!}#O$h#O#P%x#P#R$h#R#S#'x#S#T$h#T#o#'x#o${$h${$|#'x$|4w$h4w5b#'x5b5i$h5i6S#'x6S~$hV#8tg'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$hV#:fh'_Q'OS'TPOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q![#:]![!c$h!c!}#:]!}#O$h#O#P%x#P#R$h#R#S#:]#S#T$h#T#o#:]#o${$h${$|#:]$|4w$h4w5b#:]5b5i$h5i6S#:]6S~$h_#U#q~$h_#>_Z'|X'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h_#?ZZvX'_Q'OSOY$hYZ%bZr$hrs%xsz$hz{)Q{!P$h!P!Q*p!Q#O$h#O#P%x#P~$h",tokenizers:[Jv,eq,Kv,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>Oq[O]||-1}],tokenPrec:15596}),rq=Ie.define({name:"rust",parser:iq.configure({props:[pt.add({IfExpression:Ce({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":Ce()}),ft.add(O=>{if(/(Block|edTokens|List)$/.test(O.name))return fO;if(O.name=="BlockComment")return e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function nq(){return new Je(rq)}const kl=1,sq=2,oq=3,aq=4,lq=5,cq=35,hq=36,fq=37,Qq=11,uq=13;function $q(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function dq(O){return O==9||O==10||O==13||O==32}let du=null,pu=null,mu=0;function Zl(O,e){let t=O.pos+e;if(pu==O&&mu==t)return du;for(;dq(O.peek(e));)e++;let i="";for(;;){let r=O.peek(e);if(!$q(r))break;i+=String.fromCharCode(r),e++}return pu=O,mu=t,du=i||null}function Pu(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t{if(O.next==60){if(O.advance(),O.next==47){O.advance();let t=Zl(O,0);if(!t)return O.acceptToken(lq);if(e.context&&t==e.context.name)return O.acceptToken(sq);for(let i=e.context;i;i=i.parent)if(i.name==t)return O.acceptToken(oq,-2);O.acceptToken(aq)}else if(O.next!=33&&O.next!=63)return O.acceptToken(kl)}},{contextual:!0});function eh(O,e){return new de(t=>{for(let i=0,r=0;;r++){if(t.next<0){r&&t.acceptToken(O);break}if(t.next==e.charCodeAt(i)){if(i++,i==e.length){r>=e.length&&t.acceptToken(O,1-e.length);break}}else i=t.next==e.charCodeAt(0)?1:0;t.advance()}})}const Pq=eh(cq,"-->"),gq=eh(hq,"?>"),Sq=eh(fq,"]]>"),Xq=De({Text:f.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":f.angleBracket,TagName:f.tagName,"MismatchedCloseTag/Tagname":[f.tagName,f.invalid],AttributeName:f.attributeName,AttributeValue:f.attributeValue,Is:f.definitionOperator,"EntityReference CharacterReference":f.character,Comment:f.blockComment,ProcessingInst:f.processingInstruction,DoctypeDecl:f.documentMeta,Cdata:f.special(f.string)}),yq=Ee.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<`#X;'S%y;'S;=`&_<%lO%yX>eV{WOr%ysv%yw#T%y#T#U>z#U;'S%y;'S;=`&_<%lO%yX?PV{WOr%ysv%yw#h%y#h#i?f#i;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#T%y#T#Un.from<=t&&n.to>=t),r=i&&i.getChild("AttributeName");return r?O.sliceString(r.from,r.to):""}function ca(O){for(let e=O&&O.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function bq(O,e){var t;let i=ue(O).resolveInner(e,-1),r=null;for(let n=i;!r&&n.parent;n=n.parent)(n.name=="OpenTag"||n.name=="CloseTag"||n.name=="SelfClosingTag"||n.name=="MismatchedCloseTag")&&(r=n);if(r&&(r.to>e||r.lastChild.type.isError)){let n=r.parent;if(i.name=="TagName")return r.name=="CloseTag"||r.name=="MismatchedCloseTag"?{type:"closeTag",from:i.from,context:n}:{type:"openTag",from:i.from,context:ca(n)};if(i.name=="AttributeName")return{type:"attrName",from:i.from,context:r};if(i.name=="AttributeValue")return{type:"attrValue",from:i.from,context:r};let s=i==r||i.name=="Attribute"?i.childBefore(e):i;return(s==null?void 0:s.name)=="StartTag"?{type:"openTag",from:e,context:ca(n)}:(s==null?void 0:s.name)=="StartCloseTag"&&s.to<=e?{type:"closeTag",from:e,context:n}:(s==null?void 0:s.name)=="Is"?{type:"attrValue",from:e,context:r}:s?{type:"attrName",from:e,context:r}:null}else if(i.name=="StartCloseTag")return{type:"closeTag",from:e,context:i.parent};for(;i.parent&&i.to==e&&!(!((t=i.lastChild)===null||t===void 0)&&t.type.isError);)i=i.parent;return i.name=="Element"||i.name=="Text"||i.name=="Document"?{type:"tag",from:e,context:i.name=="Element"?i:ca(i)}:null}let wq=class{constructor(e,t,i){this.attrs=t,this.attrValues=i,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(r=>({label:r,type:"text"})):[]}};const ha=/^[:\-\.\w\u00b7-\uffff]*$/;function gu(O){return Object.assign(Object.assign({type:"property"},O.completion||{}),{label:O.name})}function Su(O){return typeof O=="string"?{label:`"${O}"`,type:"constant"}:/^"/.test(O.label)?O:Object.assign(Object.assign({},O),{label:`"${O.label}"`})}function Wq(O,e){let t=[],i=[],r=Object.create(null);for(let a of e){let l=gu(a);t.push(l),a.global&&i.push(l),a.values&&(r[a.name]=a.values.map(Su))}let n=[],s=[],o=Object.create(null);for(let a of O){let l=i,c=r;a.attributes&&(l=l.concat(a.attributes.map(Q=>typeof Q=="string"?t.find(u=>u.label==Q)||{label:Q,type:"property"}:(Q.values&&(c==r&&(c=Object.create(c)),c[Q.name]=Q.values.map(Su)),gu(Q)))));let h=new wq(a,l,c);o[h.name]=h,n.push(h),a.top&&s.push(h)}s.length||(s=n);for(let a=0;a{var l;let{doc:c}=a.state,h=bq(a.state,a.pos);if(!h||h.type=="tag"&&!a.explicit)return null;let{type:Q,from:u,context:$}=h;if(Q=="openTag"){let d=s,p=la(c,$);if(p){let P=o[p];d=(P==null?void 0:P.children)||n}return{from:u,options:d.map(P=>P.completion),validFor:ha}}else if(Q=="closeTag"){let d=la(c,$);return d?{from:u,to:a.pos+(c.sliceString(a.pos,a.pos+1)==">"?1:0),options:[((l=o[d])===null||l===void 0?void 0:l.closeNameCompletion)||{label:d+">",type:"type"}],validFor:ha}:null}else if(Q=="attrName"){let d=o[ls(c,$)];return{from:u,options:(d==null?void 0:d.attrs)||i,validFor:ha}}else if(Q=="attrValue"){let d=xq(c,$,u);if(!d)return null;let p=o[ls(c,$)],P=((p==null?void 0:p.attrValues)||r)[d];return!P||!P.length?null:{from:u,to:a.pos+(c.sliceString(a.pos,a.pos+1)=='"'?1:0),options:P,validFor:/^"[^"]*"?$/}}else if(Q=="tag"){let d=la(c,$),p=o[d],P=[],y=$&&$.lastChild;d&&(!y||y.name!="CloseTag"||ls(c,y)!=d)&&P.push(p?p.closeCompletion:{label:"",type:"type",boost:2});let x=P.concat(((p==null?void 0:p.children)||($?n:s)).map(b=>b.openCompletion));if($&&(p!=null&&p.text.length)){let b=$.firstChild;b.to>a.pos-20&&!/\S/.test(a.state.sliceDoc(b.to,a.pos))&&(x=x.concat(p.text))}return{from:u,options:x,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const Xu=Ie.define({name:"xml",parser:yq.configure({props:[pt.add({Element(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),ft.add({Element(O){let e=O.firstChild,t=O.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:O.to}}}),kc.add({"OpenTag CloseTag":O=>O.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function Tq(O={}){return new Je(Xu,Xu.data.of({autocomplete:Wq(O.elements||[],O.attributes||[])}))}class Ms{constructor(e,t,i,r,n,s,o){this.type=e,this.value=t,this.from=i,this.hash=r,this.end=n,this.children=s,this.positions=o,this.hashProp=[[M.contextHash,r]]}static create(e,t,i,r,n){let s=r+(r<<8)+e+(t<<4)|0;return new Ms(e,t,i,s,n,[],[])}addChild(e,t){e.prop(M.contextHash)!=this.hash&&(e=new he(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let i=this.children.length-1;return i>=0&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from)),new he(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(n,s,o)=>new he(je.none,n,s,o,this.hashProp)})}}var q;(function(O){O[O.Document=1]="Document",O[O.CodeBlock=2]="CodeBlock",O[O.FencedCode=3]="FencedCode",O[O.Blockquote=4]="Blockquote",O[O.HorizontalRule=5]="HorizontalRule",O[O.BulletList=6]="BulletList",O[O.OrderedList=7]="OrderedList",O[O.ListItem=8]="ListItem",O[O.ATXHeading1=9]="ATXHeading1",O[O.ATXHeading2=10]="ATXHeading2",O[O.ATXHeading3=11]="ATXHeading3",O[O.ATXHeading4=12]="ATXHeading4",O[O.ATXHeading5=13]="ATXHeading5",O[O.ATXHeading6=14]="ATXHeading6",O[O.SetextHeading1=15]="SetextHeading1",O[O.SetextHeading2=16]="SetextHeading2",O[O.HTMLBlock=17]="HTMLBlock",O[O.LinkReference=18]="LinkReference",O[O.Paragraph=19]="Paragraph",O[O.CommentBlock=20]="CommentBlock",O[O.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",O[O.Escape=22]="Escape",O[O.Entity=23]="Entity",O[O.HardBreak=24]="HardBreak",O[O.Emphasis=25]="Emphasis",O[O.StrongEmphasis=26]="StrongEmphasis",O[O.Link=27]="Link",O[O.Image=28]="Image",O[O.InlineCode=29]="InlineCode",O[O.HTMLTag=30]="HTMLTag",O[O.Comment=31]="Comment",O[O.ProcessingInstruction=32]="ProcessingInstruction",O[O.URL=33]="URL",O[O.HeaderMark=34]="HeaderMark",O[O.QuoteMark=35]="QuoteMark",O[O.ListMark=36]="ListMark",O[O.LinkMark=37]="LinkMark",O[O.EmphasisMark=38]="EmphasisMark",O[O.CodeMark=39]="CodeMark",O[O.CodeText=40]="CodeText",O[O.CodeInfo=41]="CodeInfo",O[O.LinkTitle=42]="LinkTitle",O[O.LinkLabel=43]="LinkLabel"})(q||(q={}));class Yq{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class vq{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return wr(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,i=0){for(let r=t;r=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let i=(O.type==q.OrderedList?ih:Oh)(t,e,!1);return i>0&&(O.type!=q.BulletList||th(t,e,!1)<0)&&t.text.charCodeAt(t.pos+i-1)==O.value}const uP={[q.Blockquote](O,e,t){return t.next!=62?!1:(t.markers.push(ae(q.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Ut(t.text.charCodeAt(t.pos+1))?2:1)),O.end=e.lineStart+t.text.length,!0)},[q.ListItem](O,e,t){return t.indent-1?!1:(t.moveBaseColumn(t.baseIndent+O.value),!0)},[q.OrderedList]:yu,[q.BulletList]:yu,[q.Document](){return!0}};function Ut(O){return O==32||O==9||O==10||O==13}function wr(O,e=0){for(;et&&Ut(O.charCodeAt(e-1));)e--;return e}function $P(O){if(O.next!=96&&O.next!=126)return-1;let e=O.pos+1;for(;e-1&&O.depth==e.stack.length||i<3?-1:1}function pP(O,e){for(let t=O.stack.length-1;t>=0;t--)if(O.stack[t].type==e)return!0;return!1}function Oh(O,e,t){return(O.next==45||O.next==43||O.next==42)&&(O.pos==O.text.length-1||Ut(O.text.charCodeAt(O.pos+1)))&&(!t||pP(e,q.BulletList)||O.skipSpace(O.pos+2)=48&&r<=57;){i++;if(i==O.text.length)return-1;r=O.text.charCodeAt(i)}return i==O.pos||i>O.pos+9||r!=46&&r!=41||iO.pos+1||O.next!=49)?-1:i+1-O.pos}function mP(O){if(O.next!=35)return-1;let e=O.pos+1;for(;e6?-1:t}function PP(O){if(O.next!=45&&O.next!=61||O.indent>=O.baseIndent+4)return-1;let e=O.pos+1;for(;e/,SP=/\?>/,Ul=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(i);if(n)return O.append(ae(q.Comment,t,t+1+n[0].length));let s=/^\?[^]*?\?>/.exec(i);if(s)return O.append(ae(q.ProcessingInstruction,t,t+1+s[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(i);return o?O.append(ae(q.HTMLTag,t,t+1+o[0].length)):-1},Emphasis(O,e,t){if(e!=95&&e!=42)return-1;let i=t+1;for(;O.char(i)==e;)i++;let r=O.slice(t-1,t),n=O.slice(i,i+1),s=tn.test(r),o=tn.test(n),a=/\s|^$/.test(r),l=/\s|^$/.test(n),c=!l&&(!o||a||s),h=!a&&(!s||l||o),Q=c&&(e==42||!h||s),u=h&&(e==42||!c||o);return O.append(new Ct(e==95?WP:TP,t,i,(Q?1:0)|(u?2:0)))},HardBreak(O,e,t){if(e==92&&O.char(t+1)==10)return O.append(ae(q.HardBreak,t,t+2));if(e==32){let i=t+1;for(;O.char(i)==32;)i++;if(O.char(i)==10&&i>=t+2)return O.append(ae(q.HardBreak,t,i+1))}return-1},Link(O,e,t){return e==91?O.append(new Ct(cr,t,t+1,1)):-1},Image(O,e,t){return e==33&&O.char(t+1)==91?O.append(new Ct(wu,t,t+2,1)):-1},LinkEnd(O,e,t){if(e!=93)return-1;for(let i=O.parts.length-1;i>=0;i--){let r=O.parts[i];if(r instanceof Ct&&(r.type==cr||r.type==wu)){if(!r.side||O.skipSpace(r.to)==t&&!/[(\[]/.test(O.slice(t+1,t+2)))return O.parts[i]=null,-1;let n=O.takeContent(i),s=O.parts[i]=zq(O,n,r.type==cr?q.Link:q.Image,r.from,t+1);if(r.type==cr)for(let o=0;oe?ae(q.URL,e+t,n+t):n==O.length?null:!1}}function vP(O,e,t){let i=O.charCodeAt(e);if(i!=39&&i!=34&&i!=40)return!1;let r=i==40?41:i;for(let n=e+1,s=!1;n=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,r,n){return this.append(new Ct(e,t,i,(r?1:0)|(n?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let i=e;i=e;a--){let d=this.parts[a];if(d instanceof Ct&&d.side&1&&d.type==r.type&&!(n&&(r.side&1||d.side&2)&&(d.to-d.from+s)%3==0&&((d.to-d.from)%3||s%3))){o=d;break}}if(!o)continue;let l=r.type.resolve,c=[],h=o.from,Q=r.to;if(n){let d=Math.min(2,o.to-o.from,s);h=o.to-d,Q=r.from+d,l=d==1?"Emphasis":"StrongEmphasis"}o.type.mark&&c.push(this.elt(o.type.mark,h,o.to));for(let d=a+1;d=0;t--){let i=this.parts[t];if(i instanceof Ct&&i.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return wr(this.text,e-this.offset)+this.offset}elt(e,t,i,r){return typeof e=="string"?ae(this.parser.getNodeType(e),t,i,r):new wP(e,t)}}function zl(O,e){if(!e.length)return O;if(!O.length)return e;let t=O.slice(),i=0;for(let r of e){for(;i(e?e-1:0))return!1;if(this.fragmentEnd<0){let n=this.fragment.to;for(;n>0&&this.input.read(n-1,n)!=` +`;)n--;this.fragmentEnd=n?n-1:0}let i=this.cursor;i||(i=this.cursor=this.fragment.tree.cursor(),i.firstChild());let r=e+this.fragment.offset;for(;i.to<=r;)if(!i.parent())return!1;for(;;){if(i.from>=r)return this.fragment.from<=t;if(!i.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(M.contextHash)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),n=e.absoluteLineStart,s=n,o=e.block.children.length,a=s,l=o;for(;;){if(t.to-i>r){if(t.type.isAnonymous&&t.firstChild())continue;break}if(e.dontInject.add(t.tree),e.addNode(t.tree,t.from-i),t.type.is("Block")&&(jq.indexOf(t.type.id)<0?(s=t.to-i,o=e.block.children.length):(s=a,o=l,a=t.to-i,l=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>o;)e.block.children.pop(),e.block.positions.pop();return s-n}}const Cq=De({"Blockquote/...":f.quote,HorizontalRule:f.contentSeparator,"ATXHeading1/... SetextHeading1/...":f.heading1,"ATXHeading2/... SetextHeading2/...":f.heading2,"ATXHeading3/...":f.heading3,"ATXHeading4/...":f.heading4,"ATXHeading5/...":f.heading5,"ATXHeading6/...":f.heading6,"Comment CommentBlock":f.comment,Escape:f.escape,Entity:f.character,"Emphasis/...":f.emphasis,"StrongEmphasis/...":f.strong,"Link/... Image/...":f.link,"OrderedList/... BulletList/...":f.list,"BlockQuote/...":f.quote,"InlineCode CodeText":f.monospace,URL:f.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":f.processingInstruction,"CodeInfo LinkLabel":f.labelName,LinkTitle:f.string,Paragraph:f.content}),Iq=new Xo(new on(xP).extend(Cq),Object.keys(Mn).map(O=>Mn[O]),Object.keys(Mn).map(O=>Zq[O]),Object.keys(Mn),Rq,uP,Object.keys(Qa).map(O=>Qa[O]),Object.keys(Qa),[]);function Eq(O,e,t){let i=[];for(let r=O.firstChild,n=e;;r=r.nextSibling){let s=r?r.from:t;if(s>n&&i.push({from:n,to:s}),!r)break;n=r.to}return i}function Aq(O){let{codeParser:e,htmlParser:t}=O;return{wrap:bO((r,n)=>{let s=r.type.id;if(e&&(s==q.CodeBlock||s==q.FencedCode)){let o="";if(s==q.FencedCode){let l=r.node.getChild(q.CodeInfo);l&&(o=n.read(l.from,l.to))}let a=e(o);if(a)return{parser:a,overlay:l=>l.type.id==q.CodeText}}else if(t&&(s==q.HTMLBlock||s==q.HTMLTag))return{parser:t,overlay:Eq(r.node,r.from,r.to)};return null})}}const Dq={resolve:"Strikethrough",mark:"StrikethroughMark"},Mq={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":f.strikethrough}},{name:"StrikethroughMark",style:f.processingInstruction}],parseInline:[{name:"Strikethrough",parse(O,e,t){if(e!=126||O.char(t+1)!=126||O.char(t+2)==126)return-1;let i=O.slice(t-1,t),r=O.slice(t+2,t+3),n=/\s|^$/.test(i),s=/\s|^$/.test(r),o=tn.test(i),a=tn.test(r);return O.addDelimiter(Dq,t,t+2,!s&&(!a||n||o),!n&&(!o||s||a))},after:"Emphasis"}]};function Wr(O,e,t=0,i,r=0){let n=0,s=!0,o=-1,a=-1,l=!1,c=()=>{i.push(O.elt("TableCell",r+o,r+a,O.parser.parseInline(e.slice(o,a),r+o)))};for(let h=t;h-1)&&n++,s=!1,i&&(o>-1&&c(),i.push(O.elt("TableDelimiter",h+r,h+r+1))),o=a=-1):(l||Q!=32&&Q!=9)&&(o<0&&(o=h),a=h+1),l=!l&&Q==92}return o>-1&&(n++,i&&c()),n}function Tu(O,e){for(let t=e;tr instanceof Yu)||!Tu(e.text,e.basePos))return!1;let i=O.scanLine(O.absoluteLineEnd+1).text;return kP.test(i)&&Wr(O,e.text,e.basePos)==Wr(O,i,e.basePos)},before:"SetextHeading"}]};class Lq{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const Bq={defineNodes:[{name:"Task",block:!0,style:f.list},{name:"TaskMarker",style:f.atom}],parseBlock:[{name:"TaskList",leaf(O,e){return/^\[[ xX]\]/.test(e.content)&&O.parentType().name=="ListItem"?new Lq:null},after:"SetextHeading"}]},Hq=[Nq,Bq,Mq];function ZP(O,e,t){return(i,r,n)=>{if(r!=O||i.char(n+1)==O)return-1;let s=[i.elt(t,n,n+1)];for(let o=n+1;o=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function CP(O){return O==9||O==10||O==13||O==32}let Zu=null,Ru=null,Uu=0;function jl(O,e){let t=O.pos+e;if(Uu==t&&Ru==O)return Zu;let i=O.peek(e);for(;CP(i);)i=O.peek(++e);let r="";for(;Xk(i);)r+=String.fromCharCode(i),i=O.peek(++e);return Ru=O,Uu=t,Zu=r?r.toLowerCase():i==yk||i==xk?void 0:null}const IP=60,Ls=62,rh=47,yk=63,xk=33,bk=45;function Vu(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let t=0;t-1?new Vu(jl(i,1)||"",O):O},reduce(O,e){return e==hk&&O?O.parent:O},reuse(O,e,t,i){let r=e.type.id;return r==Ns||r==GP?new Vu(jl(i,1)||"",O):O},hash(O){return O?O.hash:0},strict:!1}),Tk=new de((O,e)=>{if(O.next!=IP){O.next<0&&e.context&&O.acceptToken(ua);return}O.advance();let t=O.next==rh;t&&O.advance();let i=jl(O,0);if(i===void 0)return;if(!i)return O.acceptToken(t?ck:Ns);let r=e.context?e.context.name:null;if(t){if(i==r)return O.acceptToken(ok);if(r&&Sk[r])return O.acceptToken(ua,-2);if(e.dialectEnabled(mk))return O.acceptToken(ak);for(let n=e.context;n;n=n.parent)if(n.name==i)return;O.acceptToken(lk)}else{if(i=="script")return O.acceptToken(RP);if(i=="style")return O.acceptToken(UP);if(i=="textarea")return O.acceptToken(VP);if(gk.hasOwnProperty(i))return O.acceptToken(zP);r&&ku[r]&&ku[r][i]?O.acceptToken(ua,-1):O.acceptToken(Ns)}},{contextual:!0}),Yk=new de(O=>{for(let e=0,t=0;;t++){if(O.next<0){t&&O.acceptToken(qu);break}if(O.next==bk)e++;else if(O.next==Ls&&e>=2){t>3&&O.acceptToken(qu,-2);break}else e=0;O.advance()}});function vk(O){for(;O;O=O.parent)if(O.name=="svg"||O.name=="math")return!0;return!1}const qk=new de((O,e)=>{if(O.next==rh&&O.peek(1)==Ls){let t=e.dialectEnabled(Pk)||vk(e.context);O.acceptToken(t?sk:vu,2)}else O.next==Ls&&O.acceptToken(vu,1)});function nh(O,e,t){let i=2+O.length;return new de(r=>{for(let n=0,s=0,o=0;;o++){if(r.next<0){o&&r.acceptToken(e);break}if(n==0&&r.next==IP||n==1&&r.next==rh||n>=2&&ns?r.acceptToken(e,-s):r.acceptToken(t,-(s-2));break}else if((r.next==10||r.next==13)&&o){r.acceptToken(e,1);break}else n=s=0;r.advance()}})}const kk=nh("script",ek,tk),Zk=nh("style",Ok,ik),Rk=nh("textarea",rk,nk),Uk=De({"Text RawText":f.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":f.angleBracket,TagName:f.tagName,"MismatchedCloseTag/TagName":[f.tagName,f.invalid],AttributeName:f.attributeName,"AttributeValue UnquotedAttributeValue":f.attributeValue,Is:f.definitionOperator,"EntityReference CharacterReference":f.character,Comment:f.blockComment,ProcessingInst:f.processingInstruction,DoctypeDecl:f.documentMeta}),Vk=Ee.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:Wk,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"]],propSources:[Uk],skippedNodes:[0],repeatNodeCount:9,tokenData:"#%g!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q$q!Q![-_![!]!!O!]!^-_!^!_!&W!_!`#$o!`!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U-_4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/echSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXhSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bchS`P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjhSkWc!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibkWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`Oa!R!R9cP;=`<%l8q!Z9mYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjhSkWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_b#d#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!>kdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#V1n#V#W!?y#W#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!@SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#h1n#h#i!Ab#i#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!AkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#m1n#m#n!By#n#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!CSdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#d1n#d#e!Db#e#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!DkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#X1n#X#Y!5]#Y#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!FSchS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!a!G_!a!b##T!b#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!R!GfY!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!a!G_!a!b!Lv!b;'S!G_;'S;=`!N]<%lO!G_q!HZV!cpOv!HUvx!Hpx!a!HU!a!b!Iq!b;'S!HU;'S;=`!Jp<%lO!HUP!HsTO!a!Hp!a!b!IS!b;'S!Hp;'S;=`!Ik<%lO!HpP!IVTO!`!Hp!`!a!If!a;'S!Hp;'S;=`!Ik<%lO!HpP!IkOxPP!InP;=`<%l!Hpq!IvV!cpOv!HUvx!Hpx!`!HU!`!a!J]!a;'S!HU;'S;=`!Jp<%lO!HUq!JdS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!JsP;=`<%l!HUa!J{X!a`Or!Jvrs!Hpsv!Jvvw!Hpw!a!Jv!a!b!Kh!b;'S!Jv;'S;=`!Lp<%lO!Jva!KmX!a`Or!Jvrs!Hpsv!Jvvw!Hpw!`!Jv!`!a!LY!a;'S!Jv;'S;=`!Lp<%lO!Jva!LaT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!LsP;=`<%l!Jv!R!L}Y!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!`!G_!`!a!Mm!a;'S!G_;'S;=`!N]<%lO!G_!R!MvV!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!N`P;=`<%l!G_T!NhbhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!a!Hp!a!b# p!b#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT# ubhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!`!Hp!`!a!If!a#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT##QP;=`<%l!Nc!V##^chS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!`!G_!`!a!Mm!a#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!V#$lP;=`<%l!Ey!V#$zXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[kk,Zk,Rk,qk,Tk,Yk,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:485},tokenPrec:487});function EP(O,e){let t=Object.create(null);for(let i of O.getChildren(_P)){let r=i.getChild(Qk),n=i.getChild(_l)||i.getChild(jP);r&&(t[e.read(r.from,r.to)]=n?n.type.id==_l?e.read(n.from+1,n.to-1):e.read(n.from,n.to):"")}return t}function zu(O,e){let t=O.getChild(fk);return t?e.read(t.from,t.to):" "}function $a(O,e,t){let i;for(let r of t)if(!r.attrs||r.attrs(i||(i=EP(O.node.parent.firstChild,e))))return{parser:r.parser};return null}function AP(O=[],e=[]){let t=[],i=[],r=[],n=[];for(let o of O)(o.tag=="script"?t:o.tag=="style"?i:o.tag=="textarea"?r:n).push(o);let s=e.length?Object.create(null):null;for(let o of e)(s[o.name]||(s[o.name]=[])).push(o);return bO((o,a)=>{let l=o.type.id;if(l==uk)return $a(o,a,t);if(l==$k)return $a(o,a,i);if(l==dk)return $a(o,a,r);if(l==GP&&n.length){let c=o.node,h=zu(c,a),Q;for(let u of n)if(u.tag==h&&(!u.attrs||u.attrs(Q||(Q=EP(c,a))))){let $=c.parent.lastChild;return{parser:u.parser,overlay:[{from:o.to,to:$.type.id==pk?$.from:c.parent.to}]}}}if(s&&l==_P){let c=o.node,h;if(h=c.firstChild){let Q=s[a.read(h.from,h.to)];if(Q)for(let u of Q){if(u.tagName&&u.tagName!=zu(c.parent,a))continue;let $=c.lastChild;if($.type.id==_l){let d=$.from+1,p=$.lastChild,P=$.to-(p&&p.isError?0:1);if(P>d)return{parser:u.parser,overlay:[{from:d,to:P}]}}else if($.type.id==jP)return{parser:u.parser,overlay:[{from:$.from,to:$.to}]}}}}return null})}const hr=["_blank","_self","_top","_parent"],da=["ascii","utf-8","utf-16","latin1","latin1"],pa=["get","post","put","delete"],ma=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],gt=["true","false"],C={},zk={a:{attrs:{href:null,ping:null,type:null,media:null,target:hr,hreflang:null}},abbr:C,address:C,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:C,aside:C,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:C,base:{attrs:{href:null,target:hr}},bdi:C,bdo:C,blockquote:{attrs:{cite:null}},body:C,br:C,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:ma,formmethod:pa,formnovalidate:["novalidate"],formtarget:hr,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:C,center:C,cite:C,code:C,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:C,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:C,div:C,dl:C,dt:C,em:C,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:C,figure:C,footer:C,form:{attrs:{action:null,name:null,"accept-charset":da,autocomplete:["on","off"],enctype:ma,method:pa,novalidate:["novalidate"],target:hr}},h1:C,h2:C,h3:C,h4:C,h5:C,h6:C,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:C,hgroup:C,hr:C,html:{attrs:{manifest:null}},i:C,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:ma,formmethod:pa,formnovalidate:["novalidate"],formtarget:hr,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:C,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:C,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:C,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:da,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:C,noscript:C,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:C,param:{attrs:{name:null,value:null}},pre:C,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:C,rt:C,ruby:C,samp:C,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:da}},section:C,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:C,source:{attrs:{src:null,type:null,media:null}},span:C,strong:C,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:C,summary:C,sup:C,table:C,tbody:C,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:C,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:C,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:C,time:{attrs:{datetime:null}},title:C,tr:C,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:C,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:C},DP={accesskey:null,class:null,contenteditable:gt,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:gt,autocorrect:gt,autocapitalize:gt,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":gt,"aria-autocomplete":["inline","list","both","none"],"aria-busy":gt,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":gt,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":gt,"aria-hidden":gt,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":gt,"aria-multiselectable":gt,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":gt,"aria-relevant":null,"aria-required":gt,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},MP="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(O=>"on"+O);for(let O of MP)DP[O]=null;class Bs{constructor(e,t){this.tags=Object.assign(Object.assign({},zk),e),this.globalAttrs=Object.assign(Object.assign({},DP),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Bs.default=new Bs;function Li(O,e,t=O.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?O.sliceString(r.from,Math.min(r.to,t)):""}function yo(O,e=!1){for(let t=O.parent;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function NP(O,e,t){let i=t.tags[Li(O,yo(e,!0))];return(i==null?void 0:i.children)||t.allTags}function sh(O,e){let t=[];for(let i=e;i=yo(i);){let r=Li(O,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}const LP=/^[:\-\.\w\u00b7-\uffff]*$/;function _u(O,e,t,i,r){let n=/\s*>/.test(O.sliceDoc(r,r+5))?"":">";return{from:i,to:r,options:NP(O.doc,t,e).map(s=>({label:s,type:"type"})).concat(sh(O.doc,t).map((s,o)=>({label:"/"+s,apply:"/"+s+n,type:"type",boost:99-o}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function ju(O,e,t,i){let r=/\s*>/.test(O.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:sh(O.doc,e).map((n,s)=>({label:n,apply:n+r,type:"type",boost:99-s})),validFor:LP}}function _k(O,e,t,i){let r=[],n=0;for(let s of NP(O.doc,t,e))r.push({label:"<"+s,type:"type"});for(let s of sh(O.doc,t))r.push({label:"",type:"type",boost:99-n++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function jk(O,e,t,i,r){let n=yo(t),s=n?e.tags[Li(O.doc,n)]:null,o=s&&s.attrs?Object.keys(s.attrs):[],a=s&&s.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(l=>({label:l,type:"property"})),validFor:LP}}function Gk(O,e,t,i,r){var n;let s=(n=t.parent)===null||n===void 0?void 0:n.getChild("AttributeName"),o=[],a;if(s){let l=O.sliceDoc(s.from,s.to),c=e.globalAttrs[l];if(!c){let h=yo(t),Q=h?e.tags[Li(O.doc,h)]:null;c=(Q==null?void 0:Q.attrs)&&Q.attrs[l]}if(c){let h=O.sliceDoc(i,r).toLowerCase(),Q='"',u='"';/^['"]/.test(h)?(a=h[0]=='"'?/^[^"]*$/:/^[^']*$/,Q="",u=O.sliceDoc(r,r+1)==h[0]?"":h[0],h=h.slice(1),i++):a=/^[^\s<>='"]*$/;for(let $ of c)o.push({label:$,apply:Q+$+u,type:"constant"})}}return{from:i,to:r,options:o,validFor:a}}function Ck(O,e){let{state:t,pos:i}=e,r=ue(t).resolveInner(i),n=r.resolve(i,-1);for(let s=i,o;r==n&&(o=n.childBefore(s));){let a=o.lastChild;if(!a||!a.type.isError||a.fromCk(i,r)}const BP=[{tag:"script",attrs:O=>O.type=="text/typescript"||O.lang=="ts",parser:Lm.parser},{tag:"script",attrs:O=>O.type=="text/babel"||O.type=="text/jsx",parser:Bm.parser},{tag:"script",attrs:O=>O.type=="text/typescript-jsx",parser:Hm.parser},{tag:"script",attrs(O){return!O.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(O.type)},parser:kt.parser},{tag:"style",attrs(O){return(!O.lang||O.lang=="css")&&(!O.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(O.type))},parser:As.parser}],HP=[{name:"style",parser:As.parser.configure({top:"Styles"})}].concat(MP.map(O=>({name:O,parser:kt.parser}))),Vi=Ie.define({name:"html",parser:Vk.configure({props:[pt.add({Element(O){let e=/^(\s*)(<\/)?/.exec(O.textAfter);return O.node.to<=O.pos+e[0].length?O.continue():O.lineIndent(O.node.from)+(e[2]?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit},Document(O){if(O.pos+/\s*/.exec(O.textAfter)[0].lengthO.getChild("TagName")})],wrap:AP(BP,HP)}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}});function oh(O={}){let e="",t;O.matchClosingTags===!1&&(e="noMatch"),O.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(O.nestedLanguages&&O.nestedLanguages.length||O.nestedAttributes&&O.nestedAttributes.length)&&(t=AP((O.nestedLanguages||[]).concat(BP),(O.nestedAttributes||[]).concat(HP)));let i=t||e?Vi.configure({dialect:e,wrap:t}):Vi;return new Je(i,[Vi.data.of({autocomplete:Ik(O)}),O.autoCloseTags!==!1?Ek:[],Fm().support,sP().support])}const Gu=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),Ek=z.inputHandler.of((O,e,t,i)=>{if(O.composing||O.state.readOnly||e!=t||i!=">"&&i!="/"||!Vi.isActiveAt(O.state,e,-1))return!1;let{state:r}=O,n=r.changeByRange(s=>{var o,a,l;let{head:c}=s,h=ue(r).resolveInner(c,-1),Q;if((h.name=="TagName"||h.name=="StartTag")&&(h=h.parent),i==">"&&h.name=="OpenTag"){if(((a=(o=h.parent)===null||o===void 0?void 0:o.lastChild)===null||a===void 0?void 0:a.name)!="CloseTag"&&(Q=Li(r.doc,h.parent,c))&&!Gu.has(Q)){let u=O.state.doc.sliceString(c,c+1)===">",$=`${u?"":">"}`;return{range:X.cursor(c+1),changes:{from:c+(u?1:0),insert:$}}}}else if(i=="/"&&h.name=="OpenTag"){let u=h.parent,$=u==null?void 0:u.parent;if(u.from==c-1&&((l=$.lastChild)===null||l===void 0?void 0:l.name)!="CloseTag"&&(Q=Li(r.doc,$,c))&&!Gu.has(Q)){let d=O.state.doc.sliceString(c,c+1)===">",p=`/${Q}${d?"":">"}`,P=c+p.length+(d?1:0);return{range:X.cursor(P),changes:{from:c,insert:p}}}}return{range:s}});return n.changes.empty?!1:(O.dispatch(n,{userEvent:"input.type",scrollIntoView:!0}),!0)}),FP=Wc({block:{open:""}}),KP=new M,JP=Iq.configure({props:[ft.add(O=>!O.is("Block")||O.is("Document")||Gl(O)!=null?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),KP.add(Gl),pt.add({Document:()=>null}),oi.add({Document:FP})]});function Gl(O){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(O.name);return e?+e[1]:void 0}function Ak(O,e){let t=O;for(;;){let i=t.nextSibling,r;if(!i||(r=Gl(i.type))!=null&&r<=e)break;t=i}return t.to}const Dk=xp.of((O,e,t)=>{for(let i=ue(O).resolveInner(t,-1);i&&!(i.fromt)return{from:t,to:n}}return null});function ah(O){return new Yt(FP,O,[Dk],"markdown")}const Mk=ah(JP),Nk=JP.configure([Hq,Kq,Fq,Jq]),eg=ah(Nk);function Lk(O,e){return t=>{if(t&&O){let i=null;if(t=/\S*/.exec(t)[0],typeof O=="function"?i=O(t):i=Ts.matchLanguageName(O,t,!0),i instanceof Ts)return i.support?i.support.language.parser:Mr.getSkippingParser(i.load());if(i)return i.parser}return e?e.parser:null}}class Ln{constructor(e,t,i,r,n,s,o){this.node=e,this.from=t,this.to=i,this.spaceBefore=r,this.spaceAfter=n,this.type=s,this.item=o}blank(e,t=!0){let i=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;i.length0;r--)i+=" ";return i+(t?this.spaceAfter:"")}}marker(e,t){let i=this.node.name=="OrderedList"?String(+Og(this.item,e)[2]+t):"";return this.spaceBefore+i+this.type+this.spaceAfter}}function tg(O,e){let t=[];for(let r=O;r&&r.name!="Document";r=r.parent)(r.name=="ListItem"||r.name=="Blockquote"||r.name=="FencedCode")&&t.push(r);let i=[];for(let r=t.length-1;r>=0;r--){let n=t[r],s,o=e.lineAt(n.from),a=n.from-o.from;if(n.name=="FencedCode")i.push(new Ln(n,a,a,"","","",null));else if(n.name=="Blockquote"&&(s=/^[ \t]*>( ?)/.exec(o.text.slice(a))))i.push(new Ln(n,a,a+s[0].length,"",s[1],">",null));else if(n.name=="ListItem"&&n.parent.name=="OrderedList"&&(s=/^([ \t]*)\d+([.)])([ \t]*)/.exec(o.text.slice(a)))){let l=s[3],c=s[0].length;l.length>=4&&(l=l.slice(0,l.length-4),c-=4),i.push(new Ln(n.parent,a,a+c,s[1],l,s[2],n))}else if(n.name=="ListItem"&&n.parent.name=="BulletList"&&(s=/^([ \t]*)([-+*])([ \t]{1,4}\[[ xX]\])?([ \t]+)/.exec(o.text.slice(a)))){let l=s[4],c=s[0].length;l.length>4&&(l=l.slice(0,l.length-4),c-=4);let h=s[2];s[3]&&(h+=s[3].replace(/[xX]/," ")),i.push(new Ln(n.parent,a,a+c,s[1],l,h,n))}}return i}function Og(O,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(O.from,O.from+10))}function Pa(O,e,t,i=0){for(let r=-1,n=O;;){if(n.name=="ListItem"){let o=Og(n,e),a=+o[2];if(r>=0){if(a!=r+1)return;t.push({from:n.from+o[1].length,to:n.from+o[0].length,insert:String(r+2+i)})}r=a}let s=n.nextSibling;if(!s)break;n=s}}const Bk=({state:O,dispatch:e})=>{let t=ue(O),{doc:i}=O,r=null,n=O.changeByRange(s=>{if(!s.empty||!eg.isActiveAt(O,s.from))return r={range:s};let o=s.from,a=i.lineAt(o),l=tg(t.resolveInner(o,-1),i);for(;l.length&&l[l.length-1].from>o-a.from;)l.pop();if(!l.length)return r={range:s};let c=l[l.length-1];if(c.to-c.spaceAfter.length>o-a.from)return r={range:s};let h=o>=c.to-c.spaceAfter.length&&!/\S/.test(a.text.slice(c.to));if(c.item&&h)if(c.node.firstChild.to>=o||a.from>0&&!/[^\s>]/.test(i.lineAt(a.from-1).text)){let p=l.length>1?l[l.length-2]:null,P,y="";p&&p.item?(P=a.from+p.from,y=p.marker(i,1)):P=a.from+(p?p.to:0);let x=[{from:P,to:o,insert:y}];return c.node.name=="OrderedList"&&Pa(c.item,i,x,-2),p&&p.node.name=="OrderedList"&&Pa(p.item,i,x),{range:X.cursor(P+y.length),changes:x}}else{let p="";for(let P=0,y=l.length-2;P<=y;P++)p+=l[P].blank(P\s*$/.exec(p.text);if(P&&P.index==c.from){let y=O.changes([{from:p.from+P.index,to:p.to},{from:a.from+c.from,to:a.to}]);return{range:s.map(y),changes:y}}}let Q=[];c.node.name=="OrderedList"&&Pa(c.item,i,Q);let u=c.item&&c.item.from]*/.exec(a.text)[0].length>=c.to)for(let p=0,P=l.length-1;p<=P;p++)$+=p==P&&!u?l[p].marker(i,1):l[p].blank(pa.from&&/\s/.test(a.text.charAt(d-a.from-1));)d--;return $=O.lineBreak+$,Q.push({from:d,to:o,insert:$}),{range:X.cursor(d+$.length),changes:Q}});return r?!1:(e(O.update(n,{scrollIntoView:!0,userEvent:"input"})),!0)};function Cu(O){return O.name=="QuoteMark"||O.name=="ListMark"}function Hk(O,e){let t=O.resolveInner(e,-1),i=e;Cu(t)&&(i=t.from,t=t.parent);for(let r;r=t.childBefore(i);)if(Cu(r))i=r.from;else if(r.name=="OrderedList"||r.name=="BulletList")t=r.lastChild,i=t.to;else break;return t}const Fk=({state:O,dispatch:e})=>{let t=ue(O),i=null,r=O.changeByRange(n=>{let s=n.from,{doc:o}=O;if(n.empty&&eg.isActiveAt(O,n.from)){let a=o.lineAt(s),l=tg(Hk(t,s),o);if(l.length){let c=l[l.length-1],h=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(s-a.from>h&&!/\S/.test(a.text.slice(h,s-a.from)))return{range:X.cursor(a.from+h),changes:{from:a.from+h,to:s}};if(s-a.from==h){let Q=a.from+c.from;if(c.item&&c.node.fromnAN>nO7oQPOAN>sO6lQPOAN>xOOQO1G.s1G.sOOQO,5;O,5;OOOQO-E8b-E8bOOQO7+$g7+$gOOQO7+%`7+%`O7tQPO7+%`O7yQPO'#DzO8XQPO'#EkO8dQPO,5:eOOQO,5:e,5:eOOQOG24_G24_OOQOG24dG24dOOQO<tZ[O]||-1},{term:125,get:O=>OZ[O]||-1}],tokenPrec:1086}),rZ=Ie.define({name:"lezer",parser:iZ.configure({props:[ft.add({"Body TokensBody SkipBody PrecedenceBody":fO})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});function nZ(){return new Je(rZ)}const sZ={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},oZ=Ee.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"/Q~R^XY}YZ}]^}pq}rs!Stu!qxy&Vyz'S{|'X}!O'X!Q!R'b!R![)_!]!^,{#T#o-^~!SO_~~!VTOr!Srs!fs#O!S#O#P!k#P~!S~!kOZ~~!nPO~!S~!tiqr$cst$ctu$cuv$cvw$cwx$cz{$c{|$c}!O$c!O!P$c!P!Q$c!Q![$c![!]$c!^!_$c!_!`$c!`!a$c!a!b$c!b!c$c!c!}$c#Q#R$c#R#S$c#S#T$c#T#o$c#p#q$c#r#s$c~$hiV~qr$cst$ctu$cuv$cvw$cwx$cz{$c{|$c}!O$c!O!P$c!P!Q$c!Q![$c![!]$c!^!_$c!_!`$c!`!a$c!a!b$c!b!c$c!c!}$c#Q#R$c#R#S$c#S#T$c#T#o$c#p#q$c#r#s$c~&[PT~!]!^&_~&bRO!]&_!]!^&k!^~&_~&nTOy&_yz&}z!]&_!]!^&k!^~&_~'SOQ~~'XOS~~'[Q!Q!R'b!R![)_~'gUY~!O!P'y!Q![)_!g!h(j#R#S)s#X#Y(j#l#m)y~(ORY~!Q![(X!g!h(j#X#Y(j~(^SY~!Q![(X!g!h(j#R#S)X#X#Y(j~(mR{|(v}!O(v!Q![(|~(yP!Q![(|~)RQY~!Q![(|#R#S(v~)[P!Q![(X~)dTY~!O!P'y!Q![)_!g!h(j#R#S)s#X#Y(j~)vP!Q![)_~)|R!Q![*V!c!i*V#T#Z*V~*[VY~!O!P*q!Q![*V!c!i*V!r!s+n#R#S)y#T#Z*V#d#e+n~*vTY~!Q![+V!c!i+V!r!s+n#T#Z+V#d#e+n~+[UY~!Q![+V!c!i+V!r!s+n#R#S,o#T#Z+V#d#e+n~+qT{|,Q}!O,Q!Q![,^!c!i,^#T#Z,^~,TR!Q![,^!c!i,^#T#Z,^~,cSY~!Q![,^!c!i,^#R#S,Q#T#Z,^~,rR!Q![+V!c!i+V#T#Z+V~-OP!]!^-R~-WQP~OY-RZ~-R~-ciX~qr-^st-^tu-^uv-^vw-^wx-^z{-^{|-^}!O-^!O!P-^!P!Q-^!Q![-^![!]-^!^!_-^!_!`-^!`!a-^!a!b-^!b!c-^!c!}-^#Q#R-^#R#S-^#S#T-^#T#o-^#p#q-^#r#s-^",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:O=>sZ[O]||-1}],tokenPrec:0}),aZ=Ie.define({name:"wast",parser:oZ.configure({props:[pt.add({App:zO({closing:")",align:!1})}),ft.add({App:fO,BlockComment(O){return{from:O.from+2,to:O.to-2}}}),De({Keyword:f.keyword,Type:f.typeName,Number:f.number,String:f.string,Identifier:f.variableName,LineComment:f.lineComment,BlockComment:f.blockComment,"( )":f.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function lZ(){return new Je(aZ)}const cZ=1,hZ=2,fZ=263,QZ=3,uZ=264,Eu=265,$Z=266,dZ=4,pZ=5,mZ=6,PZ=7,Au=8,gZ=9,SZ=10,XZ=11,yZ=12,xZ=13,bZ=14,wZ=15,WZ=16,TZ=17,YZ=18,vZ=19,qZ=20,kZ=21,ZZ=22,RZ=23,UZ=24,VZ=25,zZ=26,_Z=27,jZ=28,GZ=29,CZ=30,IZ=31,EZ=32,AZ=33,DZ=34,MZ=35,NZ=36,LZ=37,BZ=38,HZ=39,FZ=40,KZ=41,JZ=42,eR=43,tR=44,OR=45,iR=46,rR=47,nR=48,sR=49,oR=50,aR=51,lR=52,cR=53,hR=54,fR=55,QR=56,uR=57,$R=58,dR=59,pR=60,mR=61,ga=62,PR=63,gR=64,SR=65,XR={abstract:dZ,and:pZ,array:mZ,as:PZ,true:Au,false:Au,break:gZ,case:SZ,catch:XZ,clone:yZ,const:xZ,continue:bZ,declare:WZ,default:wZ,do:TZ,echo:YZ,else:vZ,elseif:qZ,enddeclare:kZ,endfor:ZZ,endforeach:RZ,endif:UZ,endswitch:VZ,endwhile:zZ,enum:_Z,extends:jZ,final:GZ,finally:CZ,fn:IZ,for:EZ,foreach:AZ,from:DZ,function:MZ,global:NZ,goto:LZ,if:BZ,implements:HZ,include:FZ,include_once:KZ,instanceof:JZ,insteadof:eR,interface:tR,list:OR,match:iR,namespace:rR,new:nR,null:sR,or:oR,print:aR,require:lR,require_once:cR,return:hR,switch:fR,throw:QR,trait:uR,try:$R,unset:dR,use:pR,var:mR,public:ga,private:ga,protected:ga,while:PR,xor:gR,yield:SR,__proto__:null};function Du(O){let e=XR[O.toLowerCase()];return e??-1}function Mu(O){return O==9||O==10||O==13||O==32}function ig(O){return O>=97&&O<=122||O>=65&&O<=90}function Tr(O){return O==95||O>=128||ig(O)}function Sa(O){return O>=48&&O<=55||O>=97&&O<=102||O>=65&&O<=70}const yR={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},xR=new de(O=>{if(O.next==40){O.advance();let e=0;for(;Mu(O.peek(e));)e++;let t="",i;for(;ig(i=O.peek(e));)t+=String.fromCharCode(i),e++;for(;Mu(O.peek(e));)e++;O.peek(e)==41&&yR[t.toLowerCase()]&&O.acceptToken(cZ)}else if(O.next==60&&O.peek(1)==60&&O.peek(2)==60){for(let i=0;i<3;i++)O.advance();for(;O.next==32||O.next==9;)O.advance();let e=O.next==39;if(e&&O.advance(),!Tr(O.next))return;let t=String.fromCharCode(O.next);for(;O.advance(),!(!Tr(O.next)&&!(O.next>=48&&O.next<=55));)t+=String.fromCharCode(O.next);if(e){if(O.next!=39)return;O.advance()}if(O.next!=10&&O.next!=13)return;for(;;){let i=O.next==10||O.next==13;if(O.advance(),O.next<0)return;if(i){for(;O.next==32||O.next==9;)O.advance();let r=!0;for(let n=0;n{O.next<0&&O.acceptToken($Z)}),wR=new de((O,e)=>{O.next==63&&e.canShift(Eu)&&O.peek(1)==62&&O.acceptToken(Eu)});function WR(O){let e=O.peek(1);if(e==110||e==114||e==116||e==118||e==101||e==102||e==92||e==36||e==34||e==123)return 2;if(e>=48&&e<=55){let t=2,i;for(;t<5&&(i=O.peek(t))>=48&&i<=55;)t++;return t}if(e==120&&Sa(O.peek(2)))return Sa(O.peek(3))?4:3;if(e==117&&O.peek(2)==123)for(let t=3;;t++){let i=O.peek(t);if(i==125)return t==2?0:t+1;if(!Sa(i))break}return 0}const TR=new de((O,e)=>{let t=!1;for(;!(O.next==34||O.next<0||O.next==36&&(Tr(O.peek(1))||O.peek(1)==123)||O.next==123&&O.peek(1)==36);t=!0){if(O.next==92){let i=WR(O);if(i){if(t)break;return O.acceptToken(QZ,i)}}else if(!t&&(O.next==91||O.next==45&&O.peek(1)==62&&Tr(O.peek(2))||O.next==63&&O.peek(1)==45&&O.peek(2)==62&&Tr(O.peek(3)))&&e.canShift(uZ))break;O.advance()}t&&O.acceptToken(fZ)}),YR=De({"Visibility abstract final static":f.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":f.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":f.controlKeyword,"and or xor yield unset clone instanceof insteadof":f.operatorKeyword,"function fn class trait implements extends const enum global interface use var":f.definitionKeyword,"include include_once require require_once namespace":f.moduleKeyword,"new from echo print array list as":f.keyword,null:f.null,Boolean:f.bool,VariableName:f.variableName,"NamespaceName/...":f.namespace,"NamedType/...":f.typeName,Name:f.name,"CallExpression/Name":f.function(f.variableName),"LabelStatement/Name":f.labelName,"MemberExpression/Name":f.propertyName,"MemberExpression/VariableName":f.special(f.propertyName),"ScopedExpression/ClassMemberName/Name":f.propertyName,"ScopedExpression/ClassMemberName/VariableName":f.special(f.propertyName),"CallExpression/MemberExpression/Name":f.function(f.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":f.function(f.propertyName),"MethodDeclaration/Name":f.function(f.definition(f.variableName)),"FunctionDefinition/Name":f.function(f.definition(f.variableName)),"ClassDeclaration/Name":f.definition(f.className),UpdateOp:f.updateOperator,ArithOp:f.arithmeticOperator,LogicOp:f.logicOperator,BitOp:f.bitwiseOperator,CompareOp:f.compareOperator,ControlOp:f.controlOperator,AssignOp:f.definitionOperator,"$ ConcatOp":f.operator,LineComment:f.lineComment,BlockComment:f.blockComment,Integer:f.integer,Float:f.float,String:f.string,ShellExpression:f.special(f.string),"=> ->":f.punctuation,"( )":f.paren,"#[ [ ]":f.squareBracket,"${ { }":f.brace,"-> ?->":f.derefOperator,", ; :: : \\":f.separator,"PhpOpen PhpClose":f.processingInstruction}),vR={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},qR=Ee.deserialize({version:14,states:"$GSQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{OS,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MuQdO7+%sOOQS7+&[7+&[O$ bQ`O,5>yO>UQaO,5;`O$ iQ`O,5;aO$#OQaO'#HfO$#YQ`O,5>zOOQS1G0y1G0yO$#bQ`O'#EYO$#gQ`O'#IXO$#oQ`O,5:sOOQS1G0e1G0eO$#tQ`O1G0eO$#yQ`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%`QaO'#HeO$%jQ`O,5>xOOQS1G0m1G0mO$%rQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%wQdO7+&hO$'yQtO1G1RO$(WQdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KmQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)sQ`O,5UQaO,5],5>]OOQS-E;o-E;oO$.iQdO7+'hO$.yQpO7+'hO$/RQdO'#IiOOQO,5dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;lQaO7+(lO$cOOQS-E;u-E;uO!&WQdO7+(nO$=mQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?nQ`O'#GQO$?uQ`O'#GQO$@ZQ`O'#HUOOQO'#Hy'#HyO$@`Q`O,5=oOOQ#u,5=o,5=oO$@gQpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$@rQdO,5>fOOQS-E;x-E;xO$AQQdO1G4}O$A]Q`O,5=tO$AbQ`O,5=tO$AmQ`O'#H{O$BRQ`O,5?dOOQS1G3_1G3_O#KrQ`O7+(xO$BZQdO,5=|OOQS-E;`-E;`O$CvQdO<Q,5>QOOQO-E;d-E;dO$8YQaO,5:tO$FxQaO'#HcO$GVQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$G_Q`O7+&TO$HtQ`O1G0nO$JZQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<UQaO1G1uO$KsQ`O1G1uO$LOQ`O1G1yOOQO1G1y1G1yO$LTQ`O1G1uO$L]Q`O1G1uO$MrQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<`OOQ#u-E;r-E;rOhQaO<aOOQO-E;s-E;sO!&WQdO<g,5>gOOQO-E;y-E;yO!&WQdO<UQaO,5;TOOQ#uANAzANAzO#KmQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%)vQ`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+]Q`O7+'aO%+hQ`O7+'eO>UQaO7+'fO%+mQ`O7+'fO%-SQ`O'#HlO%-bQ`O,5?SO%-bQ`O,5?SOOQO1G1{1G1{O$+qQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%-jQtOANCgO%-xQ`OAN@dO*kQaOAN@nO%.QQdOAN@nO%.bQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/dQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%.jQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<UQaO<W,5>WO%6wQ`O,5>WOOQO-E;j-E;jO%6|Q`O1G4nOOQSG26OG26OO$+qQpOG26OO0aQ`OG26OO%7UQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%7fQ`OLD+tO%8uQ`O'#E}O%9PQ`O'#IZO!&WQdO'#HrO%:|QaO,5^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<wO&EPQdO1G0cO#.YQaO1G0cO&F{QdO1G1YO&HwQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&JsQdO7+%sO&LoQdO7+%}O#.YQaO7+'hO&NkQdO7+'hO'!gQdO<lQdO,5>wO(@nQdO1G0cO'.QQaO1G0cO(BpQdO1G1YO(DrQdO1G1[O'.QQaO1G1|O'.QQaO7+%sO(FtQdO7+%sO(HvQdO7+%}O'.QQaO7+'hO(JxQdO7+'hO(LzQdO<wO*1sQaO'#HdO*2TQ`O,5>vO*2]QdO1G0cO9yQaO1G0cO*4XQdO1G1YO*6TQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8PQ`O,5=[O*8XQaO'#HbO*8cQ`O,5>tO9yQaO7+%sO*8kQdO7+%sO*:gQ`O1G0iO>UQaO1G0iO*;|QdO7+%}O9yQaO7+'hO*=xQdO7+'hO*?tQ`O,5>cO*AZQ`O,5=|O*BpQdO<UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'XQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'`QaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+'gQ`O'#I]O$8YQaO'#EaO+)PQaOG26YO$8YQaO'#I]O+*{Q`O'#I[O++TQaO,5:wO>UQaO,5;nO>UQaO,5;pO++[Q`O,5UQaO1G0XO+9hQ`O1G1]O+;TQ`O1G1]O+]Q`O1G1]O+?xQ`O1G1]O+AeQ`O1G1]O+CQQ`O1G1]O+DmQ`O1G1]O+FYQ`O1G1]O+GuQ`O1G1]O+IbQ`O1G1]O+J}Q`O1G1]O+LjQ`O1G1]O+NVQ`O1G1]O, rQ`O1G1]O,#_Q`O1G0cO>UQaO1G0cO,$zQ`O1G1YO,&gQ`O1G1[O,(SQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,([Q`O7+%sO,)wQ`O7+%}O>UQaO7+'hO,+dQ`O7+'hO,+lQ`O7+'hO,-XQpO7+'hO,-aQ`O<UQaO<UQaOAN@nO,0qQ`OAN@nO,2^QpOAN@nO,2fQ`OG26YO>UQaOG26YO,4RQ`OLD+tO,5nQaO,5:}O>UQaO1G0iO,5uQ`O'#I]O$8YQaO'#FeO$8YQaO'#FfO$8YQaO'#FgO$8YQaO'#FhO$8YQaO'#FhO+)PQaO'#FhO$8YQaO'#FkO,6SQaO'#FwO,6ZQaO'#FwO$8YQaO'#GVO+)PQaO'#GVO$8YQaO'#GYO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO,8YQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8bQaO,5:wO,8iQaO,5:wO$8YQaO,5;nO+)PQaO,5;nO$8YQaO,5;pO,:hQ`O,5wO-IcQ`O1G0cO-KOQ`O1G0cO$8YQaO1G0cO+)PQaO1G0cO-L_Q`O1G1YO-MzQ`O1G1YO. ZQ`O1G1[O$8YQaO1G1|O$8YQaO7+%sO+)PQaO7+%sO.!vQ`O7+%sO.$cQ`O7+%sO.%rQ`O7+%}O.'_Q`O7+%}O$8YQaO7+'hO.(nQ`O7+'hO.*ZQ`O<fQ`O,5>wO.@RQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@ZQ`O7+'hO.@cQpO7+'hO.@kQpO<UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8lOo=yOs#hOx8jOy8jO}`O!O]O!Q8pO!R}O!T8oO!U8kO!V8kO!Y8rO!c8iO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8nO$]8mO$^8nO$aqO$z8qO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;dO#U;cO!x'OP~P9yOT6iOz6gO!S6jO!b6kO!o!{O!v8sO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6iOz6gO!S6jO!b6kO!v8sO!}({O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6iOz6gO!S6jO!b6kO!v8sO!})iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8vOz8tO!S8wO!b8xO!q)pO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#X)rO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!n)rO~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6iOz6gO!S6jO!b6kO!v8sO!}*UO#O*TO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[4OOo5xOs#hOx3zOy3zO}`O!O]O!Q2^O!R}O!T4UO!U3|O!V3|O!Y2`O!c3xO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4SO$]4QO$^4SO$aqO$z2_O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6iOV,XOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,iOm+^Os$aO!^+dO!_+^O!`+^O$aqO$drO~O!n,lO~P#JwO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,rO~OV,sO!n%|X!}%|X~O!},uO!n'lX~O!n,wO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,|O~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-QO~O!}-RO!n&{X~O!n-TO~O!x-UO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-[O~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-dO!x$ca!}$ca~O#U-fO#b-eO~O#b-gO~O#S-hO#U-fO#b-eO#l'SO~O#b-jO#l'SO~O#u-kO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-pO#b-oO!x'[P~O!oXO!q-rO~O!q-uO!o'cq!m'cq&s'cq~O!^-wO!oXO!q-rO~O!q-{O#O-zO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-zO#l'SO~O!}-|Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.ZO#b$nO$aqO$drO~P0aO!s.^O~O!s._O#b._O$}._O%T+oO~O$}.`O~O#X.aO~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.dOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.iOd+vOh.hO~O!q(`O~OP6]OQ|OU^OW}O[:fOo>ROs#hOx:dOy:dO}`O!O]O!Q:kO!R}O!T:jO!U:eO!V:eO!Y:oO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:hO$]:gO$^:hO$aqO$z:mO${!OO$}}O%O}O%V|O'g{O~O!m.lO!q.lO~OY+zO_+{O!n.nO~OY+zO_+{Oi%^a~O!x.rO~P>UO!m.tO~O!m.tO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&ka!}&ka&s&ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^Om+^Os$aO!_+^O!`+^O$aqO$drO~OY/PO~P$?VOS+^Om+^Os$aO!_+^O!`+^O$aqO~O!s/QO~O!n/SO~P#JwOw(SO!o)WO#l'SO~OV/VO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/XO~OV/YO!n%|a!}%|a~O]/[Os/[O!s#gO#peO!n&oX!}&oX~O!},uO!n'la~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-RO!n&{a~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vq#X#Vq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#[i!}#[i~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O/cO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x&Xa!}&Xa~P!'WO#u/iO!x$ci!}$ci~O#b/jO~O#U/lO#b/kO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$ci!}$ci~P!'WO#u/mO!x$hi!}$hi~O!}/oO!x'[X~O#b/qO~O!x/rO~O!oXO!q/uO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/xO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-|Ow']a!o']a!m']a&s']a~OU$PO]0QO!R$PO!s$OO!v#}O#b$nO#p2XO~P$?uO!m#cO!o0VO&s#cO~O#X0YO~Oh0_O~OT:tOz:pO!S:vO!b:xO!m0`O!q0`O!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0bO~O!x0bO~P>UO!m0dO~OT6iOz6gO!S6jO!b6kO!v8sO!x0fO#O0eO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WO!x0fO~O!x0gO#b0hO#l'SO~O!x0iO~O!s0jO~O!m#cO#u0lO&s#cO~O!s0mO~O!})_O!m'kq&s'kq~O!s0nO~OV0oO!n%}X!}%}X~OT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!n!|i!}!|i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cq!}$cq~P!'WO#u0vO!x$cq!}$cq~O#b0wO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hq!}$hq~P!'WO#S0zO#b0yO!x&`X!}&`X~O!}/oO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q1PO~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1RO#l'SO~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1^O!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOh1_O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1bO~O!x1bO~P>UO!x1eO~O!m#cO#u1iO&s#cO~O$}1jO%V1jO~O!s1kO~OV1lO!n%}a!}%}a~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#]i!}#]i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cy!}$cy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hy!}$hy~P!'WO#b1nO~O!}/oO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:uOz:qO!S:wO!b:yO!v=nO#S#QO#z:sO#{:{O#|:}O#};PO$O;RO$Q;VO$R;XO$S;ZO$T;]O$U;_O$V;aO$W;aO$z#dO~P!'WOV1uO{1tO~P!5xOV1uO{1tOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1xO!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOY%[q_%[q!n%[qi%[q~PhO!x1zO~O!x%gi~PCqOe1{O~O$}1|O%V1|O~O!s2OO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2QO~O!`2SO!s2RO~O!s2VO!m$xi&s$xi~O!s'WO~O!s*]O~OT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2]O~P*kO$l$tO~P#.YOT6iOz6gO!S6jO!b6kO!v8sO#O2[O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O3uO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3dO~P#.YOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2aO#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S3vO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lO#u2uO#w2vO!q&zX#X&zX!}&zX~P0rOP6]OU^O[4POo8^Or2wOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S2tO#U2sO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;lOP6]OU^O[4POo8^Or4xOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S4uO#U4tO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;lO!q3PO~P>UO!q5}O#O3gO~OT8vOz8tO!S8wO!b8xO!q3hO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q6OO#O3kO~O!q6PO#O3oO~O#O3oO#l'SO~O#O3pO#l'SO~O#O3sO#l'SO~OP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$l$tO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S5eO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4dO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5wO~P#.YO!y$hO#S5{O~O!x4ZO#l'SO~O!y$hO#S5|O~OT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O5vO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4vO#w4wO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5QO~P>UO!q8bO#O5hO~OT8vOz8tO!S8wO!b8xO!q5iO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q8cO#O5lO~O!q8dO#O5pO~O#O5pO#l'SO~O#O5qO#l'SO~O#O5tO#l'SO~O$l$tO~P9yOo5zOs$lO~O#S7oO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6gO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7sO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'jX~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7uO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&|X~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7zO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;dO#U;cO!x&WX!}&WX~P9yO!}7lO!x'Oa~Oz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7sO!x%da~O!x&UX!}&UX~P>UO!}7uO!x&|a~Oz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vi!}#Vi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&ka!}&ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&Ua!}&Ua~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vq!}#Vq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8[O~P9yO#O8ZO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8`O~O!y$hO#S8aO~O#u6zO#w6{O!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6|O#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;iO#S9XO#U9VOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9WO#S9WO#U9WOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9]O#S;dO#U;cOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7XO~P>UOT6iOz6gO!S6jO!b6kO!v8sO#O7iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'PX!}'PX~P!'WOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lO!}7lO!x'OX~O#S9yO~P>UOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8tO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=dO#O7rO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8vOz8tO!S8wO!b8xO!q7wO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8tO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=eO#O7|O~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=iO#O8TO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8TO#l'SO~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8UO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8XO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:bO~P>UO#O:aO!q'PX!x'PX~PGSO$l$tO~P$8YOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$l$tO$z:nO${!OO~P$;lOo8_Os$lO~O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#S=UO#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOT6iOz6gO!S6jO!b6kO!v8sO#O=SO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O=RO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9ZO#w9[O#X&zX!x&zX~P.8oO!y$hO#S=^O~O!q9hO~P>UO!y$hO#S=cO~O!q>OO#O9}O~OT8vOz8tO!S8wO!b8xO!q:OO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q>PO#O:RO~O!q>QO#O:YO~O#O:YO#l'SO~O#O:ZO#l'SO~O#O:_O#l'SO~O#u;eO#w;gO!m&zX!n&zX~P.8oO#u;fO#w;hOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;tO~P>UO!q;uO~P>UO!q>XO#OYO#O9WO~OT8vOz8tO!S8wO!b8xO!qZO#O[O#O<{O~O#O<{O#l'SO~O#O9WO#l'SO~O#O<|O#l'SO~O#O=PO#l'SO~O!y$hO#S=|O~Oo=[Os$lO~O!y$hO#S=}O~O!y$hO#S>UO~O!y$hO#S>VO~O!y$hO#S>WO~Oo={Os$lO~Oo>TOs$lO~Oo>SOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%&y'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%UP!.]!7pP!?oP*ZP*Z*ZPPPPP!?rPPPPPPP*Z*Z*Z*ZPP*Z*ZP!E]!GRP!GV!Gy!GR!GR!HP*Z*ZP!HY!Hl!Ib!J`!Jd!J`!Jo!J}!J}!KV!KY!KY*ZPP*ZPP!K^#%[#%[#%`P#%fP(O#%j(O#&S#&V#&V#&](O#&`(O(O#&f#&i(O#&r#&u(O(O(O(O(O#&x(O(O(O(O(O(O(O(O(O#&{!KR(O(O#'_#'o#'r(O(OP#'u#'|#(S#(o#(y#)P#)Z#)b#)h#*d#4X#5T#5Z#5a#5k#5q#5w#6]#6c#6i#6o#6u#6{#7R#7]#7g#7m#7s#7}PPPPPPPP#8T#8X#8}#NO#NR#N]$(f$(r$)X$)_$)b$)e$)k$,X$5v$>_$>b$>h$>k$>n$>w$>{$?X$?k$Bk$CO$C{$K{PP%%y%%}%&Z%&p%&vQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-n*v*x+OQ.W+cQ.{,[S/t-s-tQ0T.SS0}/s/wQ1V0RQ1o1OR2P1p0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3ZfPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3scPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u,x-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2W2X2Y2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0`0a0d0e0i0v1R1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uRS=p>S>VS=s>T>UR=t>WT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,k.b.d.l0`0a0i1aQ$^rR*`'^Q*x'sQ-t*{R/w-wQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-c*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-b*i*jQ.]+kQ/T,mQ/e-`R/g-cQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-a*h*i*jS.[+j+kS/f-b-cQ0X.]R0t/gT+e(T+g[%e!_$b'c+a.R0QR,d)Qb$ov(T+[+]+`+g.P.Q0PR+T'{S+e(T+gT,j)W,kR0W.XT1[0V1]0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[R2Y2X|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aW$`t'i+],gS'i$h*sS+](T+gT,g)W,kQ'_$^R*a'_Q*t'oR-m*tQ/p-oS0{/p0|R0|/qQ-}+XR/|-}Q+g(TR.Y+gS+`(T+gS,h)W,kQ.Q+]W.T+`,h.Q/OR/O,gQ)R%eR,e)RQ'|$oR+U'|Q1]0VR1w1]Q${{R(^${Q+t(aR.c+tQ+w(bR.g+wQ+}(cQ,P(dT.m+},PQ(|%`S,a(|7tR7t7VQ(y%^R,^(yQ,k)WR/R,kQ)`%oS,q)`/WR/W,rQ,v)dR/^,vT!uV!rj!iPVX!j!r!s!w(`+r.l0`0a1aQ%Q!SQ(a$}W(h%P%S%U0iQ.e+uQ0Z.bR0[.d|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2_4b6e8q:m:nQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-RQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2a4d6g8t:p:qQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4ZQ*^'Y^*_2[3u5v8Z:a=R=SQ+S'zQ+V(OQ,`({Q,c)PQ,y)iQ,{)pQ,})tQ-V*PQ-W*TQ-X*U^-]2]3v5w8[:b=T=UQ-i*oQ-x+PQ.k+zQ.w,XQ/`-QQ/h-dQ/n-kQ/y-zQ0r/cQ0u/iQ0x/mQ1Q/xU1X0V1]9WQ1d0eQ1m0vQ1q1RQ2Z2^Q2qjQ2r3yQ2x3zQ2y3|Q2z4OQ2{4QQ2|4SQ2}4UQ3O2`Q3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2oQ3`2pQ3a2sQ3b2tQ3c2uQ3e2vQ3f2wQ3i3PQ3j3dQ3l3gQ3m3hQ3n3kQ3q3oQ3r3pQ3t3sQ4Y4WQ4y3{Q4z3}Q4{4PQ4|4RQ4}4TQ5O4VQ5P4cQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5c4uQ5d4vQ5f4wQ5g4xQ5j5QQ5k5eQ5m5hQ5n5iQ5o5lQ5r5pQ5s5qQ5u5tQ6Q4aQ6R3xQ6V6TQ6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6cQ7T6dQ7U6fU7V,T.t0dQ7W%cQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7g6uQ7h6vQ7j6xQ7k6yQ7n6zQ7p6{Q7q6|Q7x7XQ7y7iQ7{7oQ7}7rQ8O7sQ8P7uQ8Q7wQ8R7zQ8S7|Q8V8TQ8W8UQ8Y8XQ8]8fU9U#k&s7lQ9^8jQ9_8kQ9`8lQ9a8mQ9b8nQ9c8oQ9e8pQ9f8rQ9g8sQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9SQ9w9TQ9x9ZQ9z9[Q9{9]Q:P9hQ:Q9yQ:T9}Q:V:OQ:W:RQ:[:YQ:^:ZQ:`:_Q:c8iQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:kQ;r:lQ;s:oQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQOQ=h>PQ=j>QQ=u>XQ=v>YQ=w>ZR=x>[0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[S$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,p)_Q,t)cQ/Z,uQ/{-|R0p/[|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-z/x0e1R2[2]6x6yd+^(T)W+]+`+g,g,h,k.Q/O!t6w'U2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3z3|4O4Q4S4U5v5w!x;b3u3v3x3y3{3}4P4R4T4V4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t$O=z_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-R6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6z6{6|7X7l7o7r7w7|8T8U8X8Z8[8f8g8h8i#|>]!y!z!}%c&W)t)v*T*o,T-d-k.t/c/i/m0d0v4W6T7i7s7u7z8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9Z9[9]9h9y9}:O:R:Y:Z:_:a:b;c;d=Z=m=n!v>^+z-Q9V9X:d:e:f:g:h:j:k:m:o:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;`;e;g;i;t_0V1]9W:i:l:n:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;a;f;h;u AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[YR],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[xR,TR,wR,0,1,2,3,bR],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(O,e)=>Du(O)<<1,external:Du},{term:81,get:O=>vR[O]||-1}],tokenPrec:29354}),kR=Ie.define({name:"php",parser:qR.configure({props:[pt.add({IfStatement:Ce({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:Ce({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:O=>{let e=O.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return O.baseIndent+(t?0:i?1:2)*O.unit},ColonBlock:O=>O.baseIndent+O.unit,"Block EnumBody DeclarationList":zO({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"String BlockComment":()=>null,Statement:Ce({except:/^({|end(for|foreach|switch|while)\b)/})}),ft.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":fO,ColonBlock(O){return{from:O.from+1,to:O.to}},BlockComment(O){return{from:O.from+2,to:O.to-2}}})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function ZR(O={}){let e=[],t;if(O.baseLanguage!==null)if(O.baseLanguage)t=O.baseLanguage;else{let i=oh({matchClosingTags:!1});e.push(i.support),t=i.language}return new Je(kR.configure({wrap:t&&bO(i=>i.type.isTop?{parser:t.parser,overlay:r=>r.name=="Text"}:null),top:O.plain?"Program":"Template"}),e)}const RR=1,UR=33,VR=34,zR=35,_R=36,jR=new de(O=>{let e=O.pos;for(;;){if(O.next==10){O.advance();break}else if(O.next==123&&O.peek(1)==123||O.next<0)break;O.advance()}O.pos>e&&O.acceptToken(RR)});function xo(O,e,t){return new de(i=>{let r=i.pos;for(;i.next!=O&&i.next>=0&&(t||i.next!=38&&(i.next!=123||i.peek(1)!=123));)i.advance();i.pos>r&&i.acceptToken(e)})}const GR=xo(39,UR,!1),CR=xo(34,VR,!1),IR=xo(39,zR,!0),ER=xo(34,_R,!0),AR=Ee.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<O.name=="InterpolationContent"?Cl:null)}),LR=rg.configure({wrap:bO((O,e)=>{var t;return O.name=="InterpolationContent"?Cl:O.name!="AttributeInterpolation"?null:((t=O.node.parent)===null||t===void 0?void 0:t.name)=="StatementAttributeValue"?MR:Cl}),top:"Attribute"}),BR={parser:NR},HR={parser:LR},FR=Ie.define({name:"angular",parser:Vi.parser.configure({wrap:bO(KR)}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function KR(O,e){switch(O.name){case"Attribute":return/^[*#(\[]|\{\{/.test(e.read(O.from,O.to))?HR:null;case"Text":return BR}return null}function JR(){return new Je(FR)}const eU=Ee.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new pO("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new pO("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new pO("[~RPwxU~ZOp~~",11,15),new pO("[~RPrsU~ZOn~~",11,14),new pO("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new pO("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),tU=kt.parser.configure({top:"SingleExpression"}),ng=eU.configure({props:[De({Text:f.content,Is:f.definitionOperator,AttributeName:f.attributeName,VueAttributeName:f.keyword,Identifier:f.variableName,"AttributeValue ScriptAttributeValue":f.attributeValue,Entity:f.character,"{{ }}":f.brace,"@ :":f.punctuation})]}),sg={parser:tU},OU=ng.configure({wrap:bO((O,e)=>O.name=="InterpolationContent"?sg:null)}),iU=ng.configure({wrap:bO((O,e)=>O.name=="AttributeScript"?sg:null),top:"Attribute"}),rU={parser:OU},nU={parser:iU},sU=Ie.define({name:"vue",parser:Vi.parser.configure({dialect:"selfClosing",wrap:bO(oU)}),languageData:{closeBrackets:{brackets:["{",'"']}}});function oU(O,e){switch(O.name){case"Attribute":return/^(@|:|v-)/.test(e.read(O.from,O.from+2))?nU:null;case"Text":return rU}return null}function aU(){return new Je(sU)}const lU="#e5c07b",Nu="#e06c75",cU="#56b6c2",hU="#ffffff",cs="#abb2bf",Il="#7d8799",fU="#61afef",QU="#98c379",Lu="#d19a66",uU="#c678dd",$U="#21252b",Bu="#2c313a",Hu="#282c34",Xa="#353a42",dU="#3E4451",Fu="#528bff",pU=z.theme({"&":{color:cs,backgroundColor:Hu},".cm-content":{caretColor:Fu},".cm-cursor, .cm-dropCursor":{borderLeftColor:Fu},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:dU},".cm-panels":{backgroundColor:$U,color:cs},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Hu,color:Il,border:"none"},".cm-activeLineGutter":{backgroundColor:Bu},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Xa},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Xa,borderBottomColor:Xa},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Bu,color:cs}}},{dark:!0}),mU=cn.define([{tag:f.keyword,color:uU},{tag:[f.name,f.deleted,f.character,f.propertyName,f.macroName],color:Nu},{tag:[f.function(f.variableName),f.labelName],color:fU},{tag:[f.color,f.constant(f.name),f.standard(f.name)],color:Lu},{tag:[f.definition(f.name),f.separator],color:cs},{tag:[f.typeName,f.className,f.number,f.changed,f.annotation,f.modifier,f.self,f.namespace],color:lU},{tag:[f.operator,f.operatorKeyword,f.url,f.escape,f.regexp,f.link,f.special(f.string)],color:cU},{tag:[f.meta,f.comment],color:Il},{tag:f.strong,fontWeight:"bold"},{tag:f.emphasis,fontStyle:"italic"},{tag:f.strikethrough,textDecoration:"line-through"},{tag:f.link,color:Il,textDecoration:"underline"},{tag:f.heading,fontWeight:"bold",color:Nu},{tag:[f.atom,f.bool,f.special(f.variableName)],color:Lu},{tag:[f.processingInstruction,f.string,f.inserted],color:QU},{tag:f.invalid,color:hU}]),Ne=[pU,kp(mU)],PU=(O,e)=>{const t=O.__vccOpts||O;for(const[i,r]of e)t[i]=r;return t},gU=b$({components:{Codemirror:w0},setup(){let O;switch(language){case"javascript":O=[Fm(),Ne];break;case"java":O=[fT(),Ne];break;case"json":O=[dT(),Ne];break;case"cpp":O=[jT(),Ne];break;case"python":O=[TY(),Ne];break;case"css":O=[sP(),Ne];break;case"sql":O=[_v(),Ne];break;case"rust":O=[nq(),Ne];break;case"xml":O=[Tq(),Ne];break;case"markdown":O=[Jk(),Ne];break;case"lezer":O=[nZ(),Ne];break;case"wast":O=[lZ(),Ne];break;case"html":O=[oh(),Ne];break;case"php":O=[ZR(),Ne];break;case"angular":O=[JR(),Ne];break;case"vue":O=[aU(),Ne];break;default:O=[Ne]}return{code:Hn(context),extensions:O}}});function SU(O,e,t,i,r,n){const s=ZS("codemirror");return JS(),OX(s,{modelValue:O.code,"onUpdate:modelValue":e[0]||(e[0]=o=>O.code=o),placeholder:"Code goes here...",style:{height:"100vh",width:"100vw"},autofocus:!0,"indent-with-tab":!0,"tab-size":2,extensions:O.extensions,disabled:!0},null,8,["modelValue","extensions"])}const XU=PU(gU,[["render",SU]]);GX(XU).mount("#app"); diff --git a/src/main/resources/META-INF/resources/codemirror/6.0.1/index-d95d1fef.css b/src/main/resources/META-INF/resources/codemirror/6.0.1/index-d95d1fef.css new file mode 100644 index 0000000000000000000000000000000000000000..077a617cf26d7ee7dab207d92f52c8a821a877f4 --- /dev/null +++ b/src/main/resources/META-INF/resources/codemirror/6.0.1/index-d95d1fef.css @@ -0,0 +1 @@ +:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;position:relative;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100%} diff --git a/src/main/resources/template/code.ftl b/src/main/resources/template/code.ftl new file mode 100644 index 0000000000000000000000000000000000000000..2fa05f19a20422281875e06254c8b2a3dc9e437a --- /dev/null +++ b/src/main/resources/template/code.ftl @@ -0,0 +1,19 @@ + + + + + + CodeMirror + + + + + + +
+ + +