diff --git a/.RData b/.RData
new file mode 100644
index 00000000..6c4755da
Binary files /dev/null and b/.RData differ
diff --git a/.Rapp.history b/.Rapp.history
new file mode 100644
index 00000000..e69de29b
diff --git a/.Rhistory b/.Rhistory
new file mode 100644
index 00000000..72118fdf
--- /dev/null
+++ b/.Rhistory
@@ -0,0 +1,512 @@
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module8/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module8/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module4/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+#use_python("/usr/local/bin/python3", required=T)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+reticulate::py_config()
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+reticulate::py_config()
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module5/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+install.packages("reticulate")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+use_python("/usr/local/bin/python3")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+use_python("/usr/local/bin/python3")
+use_python("/usr/local/bin/python3")
+reticulate::py_config()
+remotes::install_github("rstudio/reticulate")
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+reticulate::py_config()
+library(rmarkdown)
+knitr::opts_chunk$set(echo = TRUE)
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+## DO NOT FORGET TO CHANGE THIS ACCORDINGLY
+library(rmarkdown)
+# MAke sure you are updating your title
+knitr::opts_chunk$set(echo = TRUE,
+base.dir = ".",
+base.url = "/",
+fig.path = paste("../../static/module6/", params$dynamictitle,"/", sep = ""))
+knitr_opts <- knitr_options( opts_knit = NULL,
+opts_chunk = NULL,
+knit_hooks = NULL,
+opts_hooks = NULL,
+opts_template = NULL)
+md_document_custom <- md_document(variant = "gfm")
+output_format(knitr = knitr_opts,
+pandoc = NULL,
+base_format = md_document_custom)
+library(reticulate)
+```{python}
+print_func_var = squares_a_list_print(numbers)
+```
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..b793f8a7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,76 @@
+.vscode
+dist/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# Typescript v1 declaration files
+typings/
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# dotenv environment variables file
+.env
+
+# gatsby files
+.cache/
+public
+
+# Mac files
+.DS_Store
+
+# Yarn
+yarn-error.log
+.pnp/
+.pnp.js
+# Yarn Integrity file
+.yarn-integrity
+.Rproj.user
+
+.Rhistory
+
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 00000000..94abdb59
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,24 @@
+{
+ "semi": false,
+ "singleQuote": true,
+ "trailingComma": "es5",
+ "tabWidth": 4,
+ "printWidth": 100,
+ "overrides": [
+ {
+ "files": "*.sass",
+ "options": {
+ "printWidth": 999
+ }
+ },
+ {
+ "files": "*.md",
+ "options": {
+ "tabWidth": 2,
+ "printWidth": 80,
+ "proseWrap": "always",
+ "htmlWhitespaceSensitivity": "strict"
+ }
+ }
+ ]
+}
diff --git a/MCL-DSCI-511-programming-in-python.Rproj b/MCL-DSCI-511-programming-in-python.Rproj
new file mode 100644
index 00000000..8e3c2ebc
--- /dev/null
+++ b/MCL-DSCI-511-programming-in-python.Rproj
@@ -0,0 +1,13 @@
+Version: 1.0
+
+RestoreWorkspace: Default
+SaveWorkspace: Default
+AlwaysSaveHistory: Default
+
+EnableCodeIndexing: Yes
+UseSpacesForTab: Yes
+NumSpacesForTab: 2
+Encoding: UTF-8
+
+RnwWeave: Sweave
+LaTeX: pdfLaTeX
diff --git a/_extensions/r-wasm/live/_extension.yml b/_extensions/r-wasm/live/_extension.yml
deleted file mode 100644
index e05c8406..00000000
--- a/_extensions/r-wasm/live/_extension.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-title: Quarto Live
-author: George Stagg
-version: 0.1.3-dev
-quarto-required: ">=1.4.0"
-contributes:
- filters:
- - live.lua
- formats:
- common:
- ojs-engine: true
- filters:
- - live.lua
- html: default
- revealjs: default
- dashboard: default
diff --git a/_extensions/r-wasm/live/_gradethis.qmd b/_extensions/r-wasm/live/_gradethis.qmd
deleted file mode 100644
index bd0186ff..00000000
--- a/_extensions/r-wasm/live/_gradethis.qmd
+++ /dev/null
@@ -1,40 +0,0 @@
-```{webr}
-#| edit: false
-#| output: false
-webr::install("gradethis", quiet = TRUE)
-library(gradethis)
-options(webr.exercise.checker = function(
- label, user_code, solution_code, check_code, envir_result, evaluate_result,
- envir_prep, last_value, engine, stage, ...
-) {
- if (is.null(check_code)) {
- # No grading code, so just skip grading
- invisible(NULL)
- } else if (is.null(label)) {
- list(
- correct = FALSE,
- type = "warning",
- message = "All exercises must have a label."
- )
- } else if (is.null(solution_code)) {
- list(
- correct = FALSE,
- type = "warning",
- message = htmltools::tags$div(
- htmltools::tags$p("A problem occurred grading this exercise."),
- htmltools::tags$p(
- "No solution code was found. Note that grading exercises using the ",
- htmltools::tags$code("gradethis"),
- "package requires a model solution to be included in the document."
- )
- )
- )
- } else {
- gradethis::gradethis_exercise_checker(
- label = label, solution_code = solution_code, user_code = user_code,
- check_code = check_code, envir_result = envir_result,
- evaluate_result = evaluate_result, envir_prep = envir_prep,
- last_value = last_value, stage = stage, engine = engine)
- }
-})
-```
diff --git a/_extensions/r-wasm/live/_knitr.qmd b/_extensions/r-wasm/live/_knitr.qmd
deleted file mode 100644
index 5bfca807..00000000
--- a/_extensions/r-wasm/live/_knitr.qmd
+++ /dev/null
@@ -1,32 +0,0 @@
-```{r echo=FALSE}
-# Setup knitr for handling {webr} and {pyodide} blocks
-# TODO: With quarto-dev/quarto-cli#10169, we can implement this in a filter
-
-# We'll handle `include: false` in Lua, always include cell in knitr output
-knitr::opts_hooks$set(include = function(options) {
- if (options$engine == "webr" || options$engine == "pyodide") {
- options$include <- TRUE
- }
- options
-})
-
-# Passthrough engine for webr
-knitr::knit_engines$set(webr = function(options) {
- knitr:::one_string(c(
- "```{webr}",
- options$yaml.code,
- options$code,
- "```"
- ))
-})
-
-# Passthrough engine for pyodide
-knitr::knit_engines$set(pyodide = function(options) {
- knitr:::one_string(c(
- "```{pyodide}",
- options$yaml.code,
- options$code,
- "```"
- ))
-})
-```
diff --git a/_extensions/r-wasm/live/live.lua b/_extensions/r-wasm/live/live.lua
deleted file mode 100644
index ad712973..00000000
--- a/_extensions/r-wasm/live/live.lua
+++ /dev/null
@@ -1,736 +0,0 @@
-local tinyyaml = require "resources/tinyyaml"
-
-local cell_options = {
- webr = { eval = true },
- pyodide = { eval = true },
-}
-
-local live_options = {
- ["show-solutions"] = true,
- ["show-hints"] = true,
- ["grading"] = true,
-}
-
-local ojs_definitions = {
- contents = {},
-}
-local block_id = 0
-
-local include_webr = false
-local include_pyodide = false
-
-local function json_as_b64(obj)
- local json_string = quarto.json.encode(obj)
- return quarto.base64.encode(json_string)
-end
-
-local function tree(root)
- function isdir(path)
- -- Is there a better OS agnostic way to do this?
- local ok, err, code = os.rename(path .. "/", path .. "/")
- if not ok then
- if code == 13 then
- -- Permission denied, but it exists
- return true
- end
- end
- return ok, err
- end
-
- function gather(path, list)
- if (isdir(path)) then
- -- For each item in this dir, recurse for subdir content
- local items = pandoc.system.list_directory(path)
- for _, item in pairs(items) do
- gather(path .. "/" .. item, list)
- end
- else
- -- This is a file, add it to the table directly
- table.insert(list, path)
- end
- return list
- end
-
- return gather(root, {})
-end
-
-function ParseBlock(block, engine)
- local attr = {}
- local param_lines = {}
- local code_lines = {}
- for line in block.text:gmatch("([^\r\n]*)[\r\n]?") do
- local param_line = string.find(line, "^#|")
- if (param_line ~= nil) then
- table.insert(param_lines, string.sub(line, 4))
- else
- table.insert(code_lines, line)
- end
- end
- local code = table.concat(code_lines, "\n")
-
- -- Include cell-options defaults
- for k, v in pairs(cell_options[engine]) do
- attr[k] = v
- end
-
- -- Parse quarto-style yaml attributes
- local param_yaml = table.concat(param_lines, "\n")
- if (param_yaml ~= "") then
- param_attr = tinyyaml.parse(param_yaml)
- for k, v in pairs(param_attr) do
- attr[k] = v
- end
- end
-
- -- Parse traditional knitr-style attributes
- for k, v in pairs(block.attributes) do
- local function toboolean(v)
- return string.lower(v) == "true"
- end
-
- local convert = {
- autorun = toboolean,
- runbutton = toboolean,
- echo = toboolean,
- edit = toboolean,
- error = toboolean,
- eval = toboolean,
- include = toboolean,
- output = toboolean,
- startover = toboolean,
- solution = toboolean,
- warning = toboolean,
- timelimit = tonumber,
- ["fig-width"] = tonumber,
- ["fig-height"] = tonumber,
- }
-
- if (convert[k]) then
- attr[k] = convert[k](v)
- else
- attr[k] = v
- end
- end
-
- -- When echo: false: disable the editor
- if (attr.echo == false) then
- attr.edit = false
- end
-
- -- When `include: false`: disable the editor, source block echo, and output
- if (attr.include == false) then
- attr.edit = false
- attr.echo = false
- attr.output = false
- end
-
- -- If we're not executing anything, there's no point showing an editor
- if (attr.edit == nil) then
- attr.edit = attr.eval
- end
-
- return {
- code = code,
- attr = attr
- }
-end
-
-local exercise_keys = {}
-function assertUniqueExercise(key)
- if (exercise_keys[key]) then
- error("Document contains multiple exercises with key `" .. tostring(key) ..
- "`." .. "Exercise keys must be unique.")
- end
- exercise_keys[key] = true
-end
-
-function assertBlockExercise(type, engine, block)
- if (not block.attr.exercise) then
- error("Can't create `" .. engine .. "` " .. type ..
- " block, `exercise` not defined in cell options.")
- end
-end
-
-function ExerciseDataBlocks(btype, block)
- local ex = block.attr.exercise
- if (type(ex) ~= "table") then
- ex = { ex }
- end
-
- local blocks = {}
- for idx, ex_id in pairs(ex) do
- blocks[idx] = pandoc.RawBlock(
- "html",
- ""
- )
- end
- return blocks
-end
-
-function PyodideCodeBlock(code)
- block_id = block_id + 1
-
- function append_ojs_template(template, template_vars)
- local file = io.open(quarto.utils.resolve_path("templates/" .. template), "r")
- assert(file)
- local content = file:read("*a")
- for k, v in pairs(template_vars) do
- content = string.gsub(content, "{{" .. k .. "}}", v)
- end
-
- table.insert(ojs_definitions.contents, 1, {
- methodName = "interpret",
- cellName = "pyodide-" .. block_id,
- inline = false,
- source = content,
- })
- end
-
- -- Parse codeblock contents for YAML header and Python code body
- local block = ParseBlock(code, "pyodide")
-
- if (block.attr.output == "asis") then
- quarto.log.warning(
- "For `pyodide` code blocks, using `output: asis` renders Python output as HTML.",
- "Markdown rendering is not currently supported."
- )
- end
-
- -- Supplementary execise blocks: setup, check, hint, solution
- if (block.attr.setup) then
- assertBlockExercise("setup", "pyodide", block)
- return ExerciseDataBlocks("setup", block)
- end
-
- if (block.attr.check) then
- assertBlockExercise("check", "pyodide", block)
- if live_options["grading"] then
- return ExerciseDataBlocks("check", block)
- else
- return {}
- end
- end
-
- if (block.attr.hint) then
- assertBlockExercise("hint", "pyodide", block)
- if live_options["show-hints"] then
- return pandoc.Div(
- InterpolatedBlock(
- pandoc.CodeBlock(block.code, pandoc.Attr('', { 'python', 'cell-code' })),
- "python"
- ),
- pandoc.Attr('',
- { 'pyodide-ojs-exercise', 'exercise-hint', 'd-none' },
- { exercise = block.attr.exercise }
- )
- )
- end
- return {}
- end
-
- if (block.attr.solution) then
- assertBlockExercise("solution", "pyodide", block)
- if live_options["show-solutions"] then
- local plaincode = pandoc.Code(block.code, pandoc.Attr('', { 'solution-code', 'd-none' }))
- local codeblock = pandoc.CodeBlock(block.code, pandoc.Attr('', { 'python', 'cell-code' }))
- return pandoc.Div(
- {
- InterpolatedBlock(plaincode, "none"),
- InterpolatedBlock(codeblock, "python"),
- },
- pandoc.Attr('',
- { 'pyodide-ojs-exercise', 'exercise-solution', 'd-none' },
- { exercise = block.attr.exercise }
- )
- )
- end
- return {}
- end
-
- -- Prepare OJS attributes
- local input = "{" .. table.concat(block.attr.input or {}, ", ") .. "}"
- local ojs_vars = {
- block_id = block_id,
- block_input = input,
- }
-
- -- Render appropriate OJS for the type of client-side block we're working with
- local ojs_source = nil
- if (block.attr.exercise) then
- -- Primary interactive exercise block
- assertUniqueExercise(block.attr.exercise)
- ojs_source = "pyodide-exercise.ojs"
- elseif (block.attr.edit) then
- -- Editable non-exercise sandbox block
- ojs_source = "pyodide-editor.ojs"
- else
- -- Non-interactive evaluation block
- ojs_source = "pyodide-evaluate.ojs"
- end
-
- append_ojs_template(ojs_source, ojs_vars)
-
- return pandoc.Div({
- pandoc.Div({}, pandoc.Attr("pyodide-" .. block_id, { 'exercise-cell' })),
- pandoc.RawBlock(
- "html",
- ""
- )
- })
-end
-
-function WebRCodeBlock(code)
- block_id = block_id + 1
-
- function append_ojs_template(template, template_vars)
- local file = io.open(quarto.utils.resolve_path("templates/" .. template), "r")
- assert(file)
- local content = file:read("*a")
- for k, v in pairs(template_vars) do
- content = string.gsub(content, "{{" .. k .. "}}", v)
- end
-
- table.insert(ojs_definitions.contents, 1, {
- methodName = "interpret",
- cellName = "webr-" .. block_id,
- inline = false,
- source = content,
- })
- end
-
- -- Parse codeblock contents for YAML header and R code body
- local block = ParseBlock(code, "webr")
-
- if (block.attr.output == "asis") then
- quarto.log.warning(
- "For `webr` code blocks, using `output: asis` renders R output as HTML.",
- "Markdown rendering is not currently supported."
- )
- end
-
- -- Supplementary execise blocks: setup, check, hint, solution
- if (block.attr.setup) then
- assertBlockExercise("setup", "webr", block)
- return ExerciseDataBlocks("setup", block)
- end
-
- if (block.attr.check) then
- assertBlockExercise("check", "webr", block)
- if live_options["grading"] then
- return ExerciseDataBlocks("check", block)
- else
- return {}
- end
- end
-
- if (block.attr.hint) then
- assertBlockExercise("hint", "webr", block)
- if live_options["show-hints"] then
- return pandoc.Div(
- InterpolatedBlock(
- pandoc.CodeBlock(block.code, pandoc.Attr('', { 'r', 'cell-code' })),
- "r"
- ),
- pandoc.Attr('',
- { 'webr-ojs-exercise', 'exercise-hint', 'd-none' },
- { exercise = block.attr.exercise }
- )
- )
- end
- return {}
- end
-
- if (block.attr.solution) then
- assertBlockExercise("solution", "webr", block)
- if live_options["show-solutions"] then
- local plaincode = pandoc.Code(block.code, pandoc.Attr('', { 'solution-code', 'd-none' }))
- local codeblock = pandoc.CodeBlock(block.code, pandoc.Attr('', { 'r', 'cell-code' }))
- return pandoc.Div(
- {
- InterpolatedBlock(plaincode, "none"),
- InterpolatedBlock(codeblock, "r"),
- },
- pandoc.Attr('',
- { 'webr-ojs-exercise', 'exercise-solution', 'd-none' },
- { exercise = block.attr.exercise }
- )
- )
- end
- return {}
- end
-
- -- Prepare OJS attributes
- local input = "{" .. table.concat(block.attr.input or {}, ", ") .. "}"
- local ojs_vars = {
- block_id = block_id,
- block_input = input,
- }
-
- -- Render appropriate OJS for the type of client-side block we're working with
- local ojs_source = nil
- if (block.attr.exercise) then
- -- Primary interactive exercise block
- assertUniqueExercise(block.attr.exercise)
- ojs_source = "webr-exercise.ojs"
- elseif (block.attr.edit) then
- -- Editable non-exercise sandbox block
- ojs_source = "webr-editor.ojs"
- else
- -- Non-interactive evaluation block
- ojs_source = "webr-evaluate.ojs"
- end
-
- append_ojs_template(ojs_source, ojs_vars)
-
- -- Render any HTMLWidgets after HTML output has been added to the DOM
- HTMLWidget(block_id)
-
- return pandoc.Div({
- pandoc.Div({}, pandoc.Attr("webr-" .. block_id, { 'exercise-cell' })),
- pandoc.RawBlock(
- "html",
- ""
- )
- })
-end
-
-function InterpolatedBlock(block, language)
- block_id = block_id + 1
-
- -- Reactively render OJS variables in codeblocks
- file = io.open(quarto.utils.resolve_path("templates/interpolate.ojs"), "r")
- assert(file)
- content = file:read("*a")
-
- -- Build map of OJS variable names to JS template literals
- local map = "{\n"
- for var in block.text:gmatch("${([a-zA-Z_$][%w_$]+)}") do
- map = map .. var .. ",\n"
- end
- map = map .. "}"
-
- -- We add this OJS block for its side effect of updating the HTML element
- content = string.gsub(content, "{{block_id}}", block_id)
- content = string.gsub(content, "{{def_map}}", map)
- content = string.gsub(content, "{{language}}", language)
- table.insert(ojs_definitions.contents, {
- methodName = "interpretQuiet",
- cellName = "interpolate-" .. block_id,
- inline = false,
- source = content,
- })
-
- block.identifier = "interpolate-" .. block_id
- return block
-end
-
-function CodeBlock(code)
- if (
- code.classes:includes("{webr}") or
- code.classes:includes("webr") or
- code.classes:includes("{webr-r}")
- ) then
- -- Client side R code block
- include_webr = true
- return WebRCodeBlock(code)
- end
-
- if (
- code.classes:includes("{pyodide}") or
- code.classes:includes("pyodide") or
- code.classes:includes("{pyodide-python}")
- ) then
- -- Client side Python code block
- include_pyodide = true
- return PyodideCodeBlock(code)
- end
-
- -- Non-interactive code block containing OJS variables
- if (string.match(code.text, "${[a-zA-Z_$][%w_$]+}")) then
- if (code.classes:includes("r")) then
- include_webr = true
- return InterpolatedBlock(code, "r")
- elseif (code.classes:includes("python")) then
- include_pyodide = true
- return InterpolatedBlock(code, "python")
- end
- end
-end
-
-function HTMLWidget(block_id)
- local file = io.open(quarto.utils.resolve_path("templates/webr-widget.ojs"), "r")
- assert(file)
- content = file:read("*a")
-
- table.insert(ojs_definitions.contents, 1, {
- methodName = "interpretQuiet",
- cellName = "webr-widget-" .. block_id,
- inline = false,
- source = string.gsub(content, "{{block_id}}", block_id),
- })
-end
-
-function Div(block)
- -- Render exercise hints with display:none
- if (block.classes:includes("hint") and block.attributes["exercise"] ~= nil) then
- if live_options["show-hints"] then
- block.classes:insert("webr-ojs-exercise")
- block.classes:insert("exercise-hint")
- block.classes:insert("d-none")
- return block
- else
- return {}
- end
- end
-end
-
-function Proof(block)
- -- Quarto wraps solution blocks in a Proof structure
- -- Dig into the expected shape and look for our own exercise solutions
- if (block["type"] == "Solution") then
- local content = block["__quarto_custom_node"]
- local container = content.c[1]
- if (container) then
- local solution = container.c[1]
- if (solution) then
- if (solution.attributes["exercise"] ~= nil) then
- if live_options["show-solutions"] then
- solution.classes:insert("webr-ojs-exercise")
- solution.classes:insert("exercise-solution")
- solution.classes:insert("d-none")
- return solution
- else
- return {}
- end
- end
- end
- end
- end
-end
-
-function setupPyodide(doc)
- local pyodide = doc.meta.pyodide or {}
- local packages = pyodide.packages or {}
-
- local file = io.open(quarto.utils.resolve_path("templates/pyodide-setup.ojs"), "r")
- assert(file)
- local content = file:read("*a")
-
- local pyodide_packages = {
- pkgs = { "pyodide_http", "micropip", "ipython" },
- }
- for _, pkg in pairs(packages) do
- table.insert(pyodide_packages.pkgs, pandoc.utils.stringify(pkg))
- end
-
- -- Initial Pyodide startup options
- local pyodide_options = {
- indexURL = "https://cdn.jsdelivr.net/pyodide/v0.27.0/full/",
- env = {
- PLOTLY_RENDERER = 'plotly_mimetype',
- }
- }
- if (pyodide["engine-url"]) then
- pyodide_options["indexURL"] = pandoc.utils.stringify(pyodide["engine-url"])
- end
-
- local data = {
- packages = pyodide_packages,
- options = pyodide_options,
- }
-
- table.insert(ojs_definitions.contents, {
- methodName = "interpretQuiet",
- cellName = "pyodide-prelude",
- inline = false,
- source = content,
- })
-
- doc.blocks:insert(pandoc.RawBlock(
- "html",
- ""
- ))
-
- return pyodide
-end
-
-function setupWebR(doc)
- local webr = doc.meta.webr or {}
- local packages = webr.packages or {}
- local repos = webr.repos or {}
-
- local file = io.open(quarto.utils.resolve_path("templates/webr-setup.ojs"), "r")
- assert(file)
- local content = file:read("*a")
-
- -- List of webR R packages and repositories to install
- local webr_packages = {
- pkgs = { "evaluate", "knitr", "htmltools" },
- repos = {}
- }
- for _, pkg in pairs(packages) do
- table.insert(webr_packages.pkgs, pandoc.utils.stringify(pkg))
- end
- for _, repo in pairs(repos) do
- table.insert(webr_packages.repos, pandoc.utils.stringify(repo))
- end
-
- -- Data frame rendering
- local webr_render_df = "default"
- if (webr["render-df"]) then
- webr_render_df = pandoc.utils.stringify(webr["render-df"])
- local pkg = {
- ["paged-table"] = "rmarkdown",
- ["gt"] = "gt",
- ["gt-interactive"] = "gt",
- ["dt"] = "DT",
- ["reactable"] = "reactable",
- }
- if (pkg[webr_render_df]) then
- table.insert(webr_packages.pkgs, pkg[webr_render_df])
- end
- end
-
- -- Initial webR startup options
- local webr_options = {
- baseUrl = "https://webr.r-wasm.org/v0.4.2/",
- }
- if (webr["engine-url"]) then
- webr_options["baseUrl"] = pandoc.utils.stringify(webr["engine-url"])
- end
-
- local data = {
- packages = webr_packages,
- options = webr_options,
- render_df = webr_render_df,
- }
-
- table.insert(ojs_definitions.contents, {
- methodName = "interpretQuiet",
- cellName = "webr-prelude",
- inline = false,
- source = content,
- })
-
- doc.blocks:insert(pandoc.RawBlock(
- "html",
- ""
- ))
-
- return webr
-end
-
-function Pandoc(doc)
- local webr = nil
- local pyodide = nil
- if (include_webr) then
- webr = setupWebR(doc)
- end
- if (include_pyodide) then
- pyodide = setupPyodide(doc)
- end
-
- -- OJS block definitions
- doc.blocks:insert(pandoc.RawBlock(
- "html",
- ""
- ))
-
- -- Loading indicator
- doc.blocks:insert(
- pandoc.Div({
- pandoc.Div({}, pandoc.Attr("exercise-loading-status", { "d-flex", "gap-2" })),
- pandoc.Div({}, pandoc.Attr("", { "spinner-grow", "spinner-grow-sm" })),
- }, pandoc.Attr(
- "exercise-loading-indicator",
- { "exercise-loading-indicator", "d-none", "d-flex", "align-items-center", "gap-2" }
- ))
- )
-
- -- Exercise runtime dependencies
- quarto.doc.add_html_dependency({
- name = 'live-runtime',
- scripts = {
- { path = "resources/live-runtime.js", attribs = { type = "module" } },
- },
- resources = { "resources/pyodide-worker.js" },
- stylesheets = { "resources/live-runtime.css" },
- })
-
- -- Copy resources for upload to VFS at runtime
- local vfs_files = {}
- if (webr and webr.resources) then
- resource_list = webr.resources
- elseif (pyodide and pyodide.resources) then
- resource_list = pyodide.resources
- else
- resource_list = doc.meta.resources
- end
-
- if (type(resource_list) ~= "table") then
- resource_list = { resource_list }
- end
-
- if (resource_list) then
- for _, files in pairs(resource_list) do
- if (type(files) ~= "table") then
- files = { files }
- end
- for _, file in pairs(files) do
- local filetree = tree(pandoc.utils.stringify(file))
- for _, path in pairs(filetree) do
- table.insert(vfs_files, path)
- end
- end
- end
- end
- doc.blocks:insert(pandoc.RawBlock(
- "html",
- ""
- ))
- return doc
-end
-
-function Meta(meta)
- local webr = meta.webr or {}
-
- for k, v in pairs(webr["cell-options"] or {}) do
- if (type(v) == "table") then
- cell_options.webr[k] = pandoc.utils.stringify(v)
- else
- cell_options.webr[k] = v
- end
- end
-
- local pyodide = meta.pyodide or {}
-
- for k, v in pairs(pyodide["cell-options"] or {}) do
- if (type(v) == "table") then
- cell_options.pyodide[k] = pandoc.utils.stringify(v)
- else
- cell_options.pyodide[k] = v
- end
- end
-
- local live = meta.live or {}
- if (type(live) == "table") then
- for k, v in pairs(live) do
- live_options[k] = v
- end
- else
- quarto.log.error("Invalid value for document yaml key: `live`.")
- end
-end
-
-return {
- { Meta = Meta },
- {
- Div = Div,
- Proof = Proof,
- CodeBlock = CodeBlock,
- Pandoc = Pandoc,
- },
-}
diff --git a/_extensions/r-wasm/live/resources/live-runtime.css b/_extensions/r-wasm/live/resources/live-runtime.css
deleted file mode 100644
index 1ddfc5cf..00000000
--- a/_extensions/r-wasm/live/resources/live-runtime.css
+++ /dev/null
@@ -1 +0,0 @@
-.quarto-light{--exercise-main-color: var(--bs-body-color, var(--r-main-color, #212529));--exercise-main-bg: var(--bs-body-bg, var(--r-background-color, #ffffff));--exercise-primary-rgb: var(--bs-primary-rgb, 13, 110, 253);--exercise-gray: var(--bs-gray-300, #dee2e6);--exercise-cap-bg: var(--bs-light-bg-subtle, #f8f8f8);--exercise-line-bg: rgba(var(--exercise-primary-rgb), .05);--exercise-line-gutter-bg: rgba(var(--exercise-primary-rgb), .1);--exercise-code-block-color: var(--quarto-scss-export-code-block-color, var(--exercise-main-color));--exercise-code-block-bg: var(--quarto-scss-export-code-block-bg, var(--exercise-main-bg))}.quarto-dark{--exercise-main-color: var(--bs-body-color, var(--r-main-color, #ffffff));--exercise-main-bg: var(--bs-body-bg, var(--r-background-color, #222222));--exercise-primary-rgb: var(--bs-primary-rgb, 55, 90, 127);--exercise-gray: var(--bs-gray-700, #434343);--exercise-cap-bg: var(--bs-card-cap-bg, #505050);--exercise-line-bg: rgba(var(--exercise-primary-rgb), .2);--exercise-line-gutter-bg: rgba(var(--exercise-primary-rgb), .4);--exercise-code-block-color: var(--quarto-scss-export-code-block-color, var(--exercise-main-color));--exercise-code-block-bg: var(--quarto-scss-export-code-block-bg, var(--exercise-main-bg))}.webr-ojs-exercise.exercise-solution,.webr-ojs-exercise.exercise-hint{border:var(--exercise-gray) 1px solid;border-radius:5px;padding:1rem}.exercise-hint .exercise-hint,.exercise-solution .exercise-solution{border:none;padding:0}.webr-ojs-exercise.exercise-solution>.callout,.webr-ojs-exercise.exercise-hint>.callout{margin:-1rem;border:0}#exercise-loading-indicator{position:fixed;bottom:0;right:0;font-size:1.2rem;padding:.2rem .75rem;border:1px solid var(--exercise-gray);background-color:var(--exercise-cap-bg);border-top-left-radius:5px}#exercise-loading-indicator>.spinner-grow{min-width:1rem}.exercise-loading-details+.exercise-loading-details:before{content:"/ "}@media only screen and (max-width: 576px){#exercise-loading-indicator{font-size:.8rem;padding:.1rem .5rem}#exercise-loading-indicator>.spinner-grow{min-width:.66rem}#exercise-loading-indicator .gap-2{gap:.2rem!important}#exercise-loading-indicator .spinner-grow{--bs-spinner-width: .66rem;--bs-spinner-height: .66rem}}.btn.btn-exercise-editor:disabled,.btn.btn-exercise-editor.disabled,.btn-exercise-editor fieldset:disabled .btn{transition:opacity .5s}.card.exercise-editor .card-header a.btn{--bs-btn-padding-x: .5rem;--bs-btn-padding-y: .15rem;--bs-btn-font-size: .75rem}.quarto-dark .card.exercise-editor .card-header .btn.btn-outline-dark{--bs-btn-color: #f8f8f8;--bs-btn-border-color: #f8f8f8;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f8f8;--bs-btn-hover-border-color: #f8f8f8;--bs-btn-focus-shadow-rgb: 248, 248, 248;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f8f8;--bs-btn-active-border-color: #f8f8f8;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f8f8;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f8f8;--bs-btn-bg: transparent;--bs-gradient: none}.card.exercise-editor{--exercise-min-lines: 0;--exercise-max-lines: infinity;--exercise-font-size: var(--bs-body-font-size, 1rem)}.card.exercise-editor .card-header{padding:.5rem 1rem;background-color:var(--exercise-cap-bg);border-bottom:1px solid rgba(0,0,0,.175)}.card.exercise-editor .cm-editor{color:var(--exercise-code-block-color);background-color:var(--exercise-code-block-bg);max-height:calc(var(--exercise-max-lines) * 1.4 * var(--exercise-font-size) + 8px)}.card.exercise-editor .cm-content{caret-color:var(--exercise-code-block-color)}.card.exercise-editor .cm-cursor,.card.exercise-editor .cm-dropCursor{border-left-color:var(--exercise-code-block-color)}.card.exercise-editor .cm-focused .cm-selectionBackgroundm .cm-selectionBackground,.card.exercise-editor .cm-content ::selection{background-color:rgba(var(--exercise-primary-rgb),.1)}.card.exercise-editor .cm-activeLine{background-color:var(--exercise-line-bg)}.card.exercise-editor .cm-activeLineGutter{background-color:var(--exercise-line-gutter-bg)}.card.exercise-editor .cm-gutters{background-color:var(--exercise-cap-bg);color:var(--exercise-main-color);border-right:1px solid var(--exercise-gray)}.card.exercise-editor .cm-content,.card.exercise-editor .cm-gutter{min-height:calc(var(--exercise-min-lines) * 1.4 * var(--exercise-font-size) + 8px)}.card.exercise-editor .cm-scroller{line-height:1.4;overflow:auto}:root{--exercise-editor-hl-al: var(--quarto-hl-al-color, #AD0000);--exercise-editor-hl-an: var(--quarto-hl-an-color, #5E5E5E);--exercise-editor-hl-at: var(--quarto-hl-at-color, #657422);--exercise-editor-hl-bn: var(--quarto-hl-bn-color, #AD0000);--exercise-editor-hl-ch: var(--quarto-hl-ch-color, #20794D);--exercise-editor-hl-co: var(--quarto-hl-co-color, #5E5E5E);--exercise-editor-hl-cv: var(--quarto-hl-cv-color, #5E5E5E);--exercise-editor-hl-cn: var(--quarto-hl-cn-color, #8f5902);--exercise-editor-hl-cf: var(--quarto-hl-cf-color, #003B4F);--exercise-editor-hl-dt: var(--quarto-hl-dt-color, #AD0000);--exercise-editor-hl-dv: var(--quarto-hl-dv-color, #AD0000);--exercise-editor-hl-do: var(--quarto-hl-do-color, #5E5E5E);--exercise-editor-hl-er: var(--quarto-hl-er-color, #AD0000);--exercise-editor-hl-fl: var(--quarto-hl-fl-color, #AD0000);--exercise-editor-hl-fu: var(--quarto-hl-fu-color, #4758AB);--exercise-editor-hl-im: var(--quarto-hl-im-color, #00769E);--exercise-editor-hl-in: var(--quarto-hl-in-color, #5E5E5E);--exercise-editor-hl-kw: var(--quarto-hl-kw-color, #003B4F);--exercise-editor-hl-op: var(--quarto-hl-op-color, #5E5E5E);--exercise-editor-hl-ot: var(--quarto-hl-ot-color, #003B4F);--exercise-editor-hl-pp: var(--quarto-hl-pp-color, #AD0000);--exercise-editor-hl-sc: var(--quarto-hl-sc-color, #5E5E5E);--exercise-editor-hl-ss: var(--quarto-hl-ss-color, #20794D);--exercise-editor-hl-st: var(--quarto-hl-st-color, #20794D);--exercise-editor-hl-va: var(--quarto-hl-va-color, #111111);--exercise-editor-hl-vs: var(--quarto-hl-vs-color, #20794D);--exercise-editor-hl-wa: var(--quarto-hl-wa-color, #5E5E5E)}*[data-bs-theme=dark]{--exercise-editor-hl-al: var(--quarto-hl-al-color, #f07178);--exercise-editor-hl-an: var(--quarto-hl-an-color, #d4d0ab);--exercise-editor-hl-at: var(--quarto-hl-at-color, #00e0e0);--exercise-editor-hl-bn: var(--quarto-hl-bn-color, #d4d0ab);--exercise-editor-hl-bu: var(--quarto-hl-bu-color, #abe338);--exercise-editor-hl-ch: var(--quarto-hl-ch-color, #abe338);--exercise-editor-hl-co: var(--quarto-hl-co-color, #f8f8f2);--exercise-editor-hl-cv: var(--quarto-hl-cv-color, #ffd700);--exercise-editor-hl-cn: var(--quarto-hl-cn-color, #ffd700);--exercise-editor-hl-cf: var(--quarto-hl-cf-color, #ffa07a);--exercise-editor-hl-dt: var(--quarto-hl-dt-color, #ffa07a);--exercise-editor-hl-dv: var(--quarto-hl-dv-color, #d4d0ab);--exercise-editor-hl-do: var(--quarto-hl-do-color, #f8f8f2);--exercise-editor-hl-er: var(--quarto-hl-er-color, #f07178);--exercise-editor-hl-ex: var(--quarto-hl-ex-color, #00e0e0);--exercise-editor-hl-fl: var(--quarto-hl-fl-color, #d4d0ab);--exercise-editor-hl-fu: var(--quarto-hl-fu-color, #ffa07a);--exercise-editor-hl-im: var(--quarto-hl-im-color, #abe338);--exercise-editor-hl-in: var(--quarto-hl-in-color, #d4d0ab);--exercise-editor-hl-kw: var(--quarto-hl-kw-color, #ffa07a);--exercise-editor-hl-op: var(--quarto-hl-op-color, #ffa07a);--exercise-editor-hl-ot: var(--quarto-hl-ot-color, #00e0e0);--exercise-editor-hl-pp: var(--quarto-hl-pp-color, #dcc6e0);--exercise-editor-hl-re: var(--quarto-hl-re-color, #00e0e0);--exercise-editor-hl-sc: var(--quarto-hl-sc-color, #abe338);--exercise-editor-hl-ss: var(--quarto-hl-ss-color, #abe338);--exercise-editor-hl-st: var(--quarto-hl-st-color, #abe338);--exercise-editor-hl-va: var(--quarto-hl-va-color, #00e0e0);--exercise-editor-hl-vs: var(--quarto-hl-vs-color, #abe338);--exercise-editor-hl-wa: var(--quarto-hl-wa-color, #dcc6e0)}pre>code.sourceCode span.tok-keyword,.exercise-editor-body>.cm-editor span.tok-keyword{color:var(--exercise-editor-hl-kw)}pre>code.sourceCode span.tok-operator,.exercise-editor-body>.cm-editor span.tok-operator{color:var(--exercise-editor-hl-op)}pre>code.sourceCode span.tok-definitionOperator,.exercise-editor-body>.cm-editor span.tok-definitionOperator{color:var(--exercise-editor-hl-ot)}pre>code.sourceCode span.tok-compareOperator,.exercise-editor-body>.cm-editor span.tok-compareOperator{color:var(--exercise-editor-hl-ot)}pre>code.sourceCode span.tok-attributeName,.exercise-editor-body>.cm-editor span.tok-attributeName{color:var(--exercise-editor-hl-at)}pre>code.sourceCode span.tok-controlKeyword,.exercise-editor-body>.cm-editor span.tok-controlKeyword{color:var(--exercise-editor-hl-cf)}pre>code.sourceCode span.tok-comment,.exercise-editor-body>.cm-editor span.tok-comment{color:var(--exercise-editor-hl-co)}pre>code.sourceCode span.tok-string,.exercise-editor-body>.cm-editor span.tok-string{color:var(--exercise-editor-hl-st)}pre>code.sourceCode span.tok-string2,.exercise-editor-body>.cm-editor span.tok-string2{color:var(--exercise-editor-hl-ss)}pre>code.sourceCode span.tok-variableName,.exercise-editor-body>.cm-editor span.tok-variableName{color:var(--exercise-editor-hl-va)}pre>code.sourceCode span.tok-bool,pre>code.sourceCode span.tok-literal,pre>code.sourceCode span.tok-separator,.exercise-editor-body>.cm-editor span.tok-bool,.exercise-editor-body>.cm-editor span.tok-literal,.exercise-editor-body>.cm-editor span.tok-separator{color:var(--exercise-editor-hl-cn)}pre>code.sourceCode span.tok-bool,pre>code.sourceCode span.tok-literal,.exercise-editor-body>.cm-editor span.tok-bool,.exercise-editor-body>.cm-editor span.tok-literal{color:var(--exercise-editor-hl-cn)}pre>code.sourceCode span.tok-number,pre>code.sourceCode span.tok-integer,.exercise-editor-body>.cm-editor span.tok-number,.exercise-editor-body>.cm-editor span.tok-integer{color:var(--exercise-editor-hl-dv)}pre>code.sourceCode span.tok-function-variableName,.exercise-editor-body>.cm-editor span.tok-function-variableName{color:var(--exercise-editor-hl-fu)}pre>code.sourceCode span.tok-function-attributeName,.exercise-editor-body>.cm-editor span.tok-function-attributeName{color:var(--exercise-editor-hl-at)}div.exercise-cell-output.cell-output-stdout pre code,div.exercise-cell-output.cell-output-stderr pre code{white-space:pre-wrap;word-wrap:break-word}div.exercise-cell-output.cell-output-stderr pre code{color:var(--exercise-editor-hl-er, #AD0000)}div.cell-output-pyodide table{border:none;margin:0 auto 1em}div.cell-output-pyodide thead{border-bottom:1px solid var(--exercise-main-color)}div.cell-output-pyodide td,div.cell-output-pyodide th,div.cell-output-pyodide tr{padding:.5em;line-height:normal}div.cell-output-pyodide th{font-weight:700}div.cell-output-display canvas{background-color:#fff}.tab-pane>.exercise-tab-pane-header+div.webr-ojs-exercise{margin-top:1em}.alert .exercise-feedback p:last-child{margin-bottom:0}.alert.exercise-grade{animation-duration:.25s;animation-name:exercise-grade-slidein}@keyframes exercise-grade-slidein{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.alert.exercise-grade p:last-child{margin-bottom:0}.alert.exercise-grade pre{white-space:pre-wrap;color:inherit}.observablehq pre>code.sourceCode{white-space:pre;position:relative}.observablehq div.sourceCode{margin:1em 0!important}.observablehq pre.sourceCode{margin:0!important}@media screen{.observablehq div.sourceCode{overflow:auto}}@media print{.observablehq pre>code.sourceCode{white-space:pre-wrap}.observablehq pre>code.sourceCode>span{text-indent:-5em;padding-left:5em}}.reveal .d-none{display:none!important}.reveal .d-flex{display:flex!important}.reveal .card.exercise-editor .justify-content-between{justify-content:space-between!important}.reveal .card.exercise-editor .align-items-center{align-items:center!important}.reveal .card.exercise-editor .gap-1{gap:.25rem!important}.reveal .card.exercise-editor .gap-2{gap:.5rem!important}.reveal .card.exercise-editor .gap-3{gap:.75rem!important}.reveal .card.exercise-editor{--exercise-font-size: 1.3rem;margin:1rem 0;border:1px solid rgba(0,0,0,.175);border-radius:.375rem;font-size:var(--exercise-font-size);overflow:hidden}.reveal .card.exercise-editor .card-header{padding:.5rem 1rem;background-color:var(--exercise-cap-bg);border-bottom:1px solid rgba(0,0,0,.175)}.reveal .cell-output-webr.cell-output-display,.reveal .cell-output-pyodide.cell-output-display{text-align:center}.quarto-light .reveal .btn.btn-exercise-editor.btn-primary{--exercise-btn-bg: var(--bs-btn-bg, #0d6efd);--exercise-btn-color: var(--bs-btn-color, #ffffff);--exercise-btn-border-color: var(--bs-btn-border-color, #0d6efd);--exercise-btn-hover-border-color: var(--bs-btn-hover-border-color, #0b5ed7);--exercise-btn-hover-bg: var(--bs-btn-hover-bg, #0b5ed7);--exercise-btn-hover-color: var(--bs-btn-hover-color, #ffffff)}.quarto-dark .reveal .btn.btn-exercise-editor.btn-primary{--exercise-btn-bg: var(--bs-btn-bg, #375a7f);--exercise-btn-color: var(--bs-btn-color, #ffffff);--exercise-btn-border-color: var(--bs-btn-border-color, #375a7f);--exercise-btn-hover-border-color: var(--bs-btn-hover-border-color, #2c4866);--exercise-btn-hover-bg: var(--bs-btn-hover-bg, #2c4866);--exercise-btn-hover-color: var(--bs-btn-hover-color, #ffffff)}.quarto-light .reveal .btn.btn-exercise-editor.btn-outline-dark{--exercise-btn-bg: var(--bs-btn-bg, transparent);--exercise-btn-color: var(--bs-btn-color, #333);--exercise-btn-border-color: var(--bs-btn-border-color, #333);--exercise-btn-hover-border-color: var(--bs-btn-hover-border-color, #333);--exercise-btn-hover-bg: var(--bs-btn-hover-bg, #333);--exercise-btn-hover-color: var(--bs-btn-hover-color, #ffffff)}.quarto-dark .reveal .btn.btn-exercise-editor.btn-outline-dark{--exercise-btn-bg: var(--bs-btn-bg, transparent);--exercise-btn-color: var(--bs-btn-color, #f8f8f8);--exercise-btn-border-color: var(--bs-btn-border-color, #f8f8f8);--exercise-btn-hover-border-color: var(--bs-btn-hover-border-color, #f8f8f8);--exercise-btn-hover-bg: var(--bs-btn-hover-bg, #f8f8f8);--exercise-btn-hover-color: var(--bs-btn-hover-color, #000000)}@media only screen and (max-width: 576px){:not(.reveal) .card-header .btn-exercise-editor>.btn-label-exercise-editor{max-width:0px;margin-left:-4px;overflow:hidden;transition:max-width .2s ease-in,margin-left .05s ease-out .2s}:not(.reveal) .card-header .btn-exercise-editor:hover>.btn-label-exercise-editor{position:inherit;max-width:80px;margin-left:0;transition:max-width .2s ease-out .05s,margin-left .05s ease-in}}.reveal .card.exercise-editor .btn-group{border-radius:.375rem;position:relative;display:inline-flex;vertical-align:middle}.reveal .card.exercise-editor .btn-group>.btn{position:relative;flex:1 1 auto}.reveal .card.exercise-editor .btn-group>:not(.btn-check:first-child)+.btn,.reveal .card.exercise-editor .btn-group>.btn-group:not(:first-child){margin-left:-1px}.reveal .card.exercise-editor .btn-group>.btn:not(:last-child):not(.dropdown-toggle),.reveal .card.exercise-editor .btn-group>.btn.dropdown-toggle-split:first-child,.reveal .card.exercise-editor .btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.reveal .card.exercise-editor .btn-group>.btn:nth-child(n+3),.reveal .card.exercise-editor .btn-group>:not(.btn-check)+.btn,.reveal .card.exercise-editor .btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.reveal .btn.btn-exercise-editor{display:inline-block;padding:.25rem .5rem;font-size:1rem;color:var(--exercise-btn-color);background-color:var(--exercise-btn-bg);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid var(--exercise-btn-border-color);border-radius:.375rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.reveal .btn.btn-exercise-editor:hover{color:var(--exercise-btn-hover-color);background-color:var(--exercise-btn-hover-bg);border-color:var(--exercise-btn-hover-border-color)}.reveal .btn.btn-exercise-editor:disabled,.reveal .btn.btn-exercise-editor.disabled,.reveal .btn-exercise-editor fieldset:disabled .btn{pointer-events:none;opacity:.65}.reveal .card.exercise-editor .spinner-grow{background-color:currentcolor;opacity:0;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:-.125em;border-radius:50%;animation:.75s linear infinite spinner-grow}.reveal .cell-output-container pre code{overflow:auto;max-height:initial}.reveal .alert.exercise-grade{font-size:.55em;position:relative;padding:1rem;margin:1rem 0;border-radius:.25rem;color:var(--exercise-alert-color);background-color:var(--exercise-alert-bg);border:1px solid var(--exercise-alert-border-color)}.reveal .alert.exercise-grade .alert-link{font-weight:700;color:var(--exercise-alert-link-color)}.quarto-light .reveal .exercise-grade.alert-info{--exercise-alert-color: #055160;--exercise-alert-bg: #cff4fc;--exercise-alert-border-color: #9eeaf9;--exercise-alert-link-color: #055160}.quarto-light .reveal .exercise-grade.alert-success{--exercise-alert-color: #0a3622;--exercise-alert-bg: #d1e7dd;--exercise-alert-border-color: #a3cfbb;--exercise-alert-link-color: #0a3622}.quarto-light .reveal .exercise-grade.alert-warning{--exercise-alert-color: #664d03;--exercise-alert-bg: #fff3cd;--exercise-alert-border-color: #ffe69c;--exercise-alert-link-color: #664d03}.quarto-light .reveal .exercise-grade.alert-danger{--exercise-alert-color: #58151c;--exercise-alert-bg: #f8d7da;--exercise-alert-border-color: #f1aeb5;--exercise-alert-link-color: #58151c}.quarto-dark .reveal .exercise-grade.alert-info{--exercise-alert-color: #ffffff;--exercise-alert-bg: #3498db;--exercise-alert-border-color: #3498db;--exercise-alert-link-color: #ffffff}.quarto-dark .reveal .exercise-grade.alert-success{--exercise-alert-color: #ffffff;--exercise-alert-bg: #00bc8c;--exercise-alert-border-color: #00bc8c;--exercise-alert-link-color: #ffffff}.quarto-dark .reveal .exercise-grade.alert-warning{--exercise-alert-color: #ffffff;--exercise-alert-bg: #f39c12;--exercise-alert-border-color: #f39c12;--exercise-alert-link-color: #ffffff}.quarto-dark .reveal .exercise-grade.alert-danger{--exercise-alert-color: #ffffff;--exercise-alert-bg: #e74c3c;--exercise-alert-border-color: #e74c3c;--exercise-alert-link-color: #ffffff}
diff --git a/_extensions/r-wasm/live/resources/live-runtime.js b/_extensions/r-wasm/live/resources/live-runtime.js
deleted file mode 100644
index f7d6dffc..00000000
--- a/_extensions/r-wasm/live/resources/live-runtime.js
+++ /dev/null
@@ -1,136 +0,0 @@
-var b0=Object.create;var Aa=Object.defineProperty;var w0=Object.getOwnPropertyDescriptor;var v0=Object.getOwnPropertyNames;var x0=Object.getPrototypeOf,S0=Object.prototype.hasOwnProperty;var mi=(i=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var we=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),k0=(i,e)=>{for(var t in e)Aa(i,t,{get:e[t],enumerable:!0})},T0=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of v0(e))!S0.call(i,n)&&n!==t&&Aa(i,n,{get:()=>e[n],enumerable:!(r=w0(e,n))||r.enumerable});return i};var P0=(i,e,t)=>(t=i!=null?b0(x0(i)):{},T0(e||!i||!i.__esModule?Aa(t,"default",{value:i,enumerable:!0}):t,i));var kO=we((fE,Yk)=>{Yk.exports=``});var TO=we((dE,Zk)=>{Zk.exports=`
-`});var PO=we((pE,Jk)=>{Jk.exports=``});var CO=we((mE,Kk)=>{Kk.exports=``});var wu=we((WE,rT)=>{rT.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:`
-`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var MO=we((jE,nT)=>{nT.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var vu=we((zE,sT)=>{sT.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var _O=we((UE,oT)=>{oT.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var LO=we(es=>{"use strict";var aT=es&&es.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(es,"__esModule",{value:!0});var DO=aT(_O()),lT=String.fromCodePoint||function(i){var e="";return i>65535&&(i-=65536,e+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),e+=String.fromCharCode(i),e};function cT(i){return i>=55296&&i<=57343||i>1114111?"\uFFFD":(i in DO.default&&(i=DO.default[i]),lT(i))}es.default=cT});var Su=we(Mt=>{"use strict";var wa=Mt&&Mt.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Mt,"__esModule",{value:!0});Mt.decodeHTML=Mt.decodeHTMLStrict=Mt.decodeXML=void 0;var xu=wa(wu()),hT=wa(MO()),uT=wa(vu()),qO=wa(LO()),fT=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;Mt.decodeXML=$O(uT.default);Mt.decodeHTMLStrict=$O(xu.default);function $O(i){var e=BO(i);return function(t){return String(t).replace(fT,e)}}var VO=function(i,e){return i{"use strict";var XO=We&&We.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(We,"__esModule",{value:!0});We.escapeUTF8=We.escape=We.encodeNonAsciiHTML=We.encodeHTML=We.encodeXML=void 0;var dT=XO(vu()),NO=WO(dT.default),IO=jO(NO);We.encodeXML=FO(NO);var pT=XO(wu()),ku=WO(pT.default),mT=jO(ku);We.encodeHTML=OT(ku,mT);We.encodeNonAsciiHTML=FO(ku);function WO(i){return Object.keys(i).sort().reduce(function(e,t){return e[i[t]]="&"+t+";",e},{})}function jO(i){for(var e=[],t=[],r=0,n=Object.keys(i);r1?gT(i):i.charCodeAt(0)).toString(16).toUpperCase()+";"}function OT(i,e){return function(t){return t.replace(e,function(r){return i[r]}).replace(zO,va)}}var UO=new RegExp(IO.source+"|"+zO.source,"g");function yT(i){return i.replace(UO,va)}We.escape=yT;function bT(i){return i.replace(IO,va)}We.escapeUTF8=bT;function FO(i){return function(e){return e.replace(UO,function(t){return i[t]||va(t)})}}});var GO=we(X=>{"use strict";Object.defineProperty(X,"__esModule",{value:!0});X.decodeXMLStrict=X.decodeHTML5Strict=X.decodeHTML4Strict=X.decodeHTML5=X.decodeHTML4=X.decodeHTMLStrict=X.decodeHTML=X.decodeXML=X.encodeHTML5=X.encodeHTML4=X.escapeUTF8=X.escape=X.encodeNonAsciiHTML=X.encodeHTML=X.encodeXML=X.encode=X.decodeStrict=X.decode=void 0;var xa=Su(),HO=Tu();function wT(i,e){return(!e||e<=0?xa.decodeXML:xa.decodeHTML)(i)}X.decode=wT;function vT(i,e){return(!e||e<=0?xa.decodeXML:xa.decodeHTMLStrict)(i)}X.decodeStrict=vT;function xT(i,e){return(!e||e<=0?HO.encodeXML:HO.encodeHTML)(i)}X.encode=xT;var Wi=Tu();Object.defineProperty(X,"encodeXML",{enumerable:!0,get:function(){return Wi.encodeXML}});Object.defineProperty(X,"encodeHTML",{enumerable:!0,get:function(){return Wi.encodeHTML}});Object.defineProperty(X,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return Wi.encodeNonAsciiHTML}});Object.defineProperty(X,"escape",{enumerable:!0,get:function(){return Wi.escape}});Object.defineProperty(X,"escapeUTF8",{enumerable:!0,get:function(){return Wi.escapeUTF8}});Object.defineProperty(X,"encodeHTML4",{enumerable:!0,get:function(){return Wi.encodeHTML}});Object.defineProperty(X,"encodeHTML5",{enumerable:!0,get:function(){return Wi.encodeHTML}});var fi=Su();Object.defineProperty(X,"decodeXML",{enumerable:!0,get:function(){return fi.decodeXML}});Object.defineProperty(X,"decodeHTML",{enumerable:!0,get:function(){return fi.decodeHTML}});Object.defineProperty(X,"decodeHTMLStrict",{enumerable:!0,get:function(){return fi.decodeHTMLStrict}});Object.defineProperty(X,"decodeHTML4",{enumerable:!0,get:function(){return fi.decodeHTML}});Object.defineProperty(X,"decodeHTML5",{enumerable:!0,get:function(){return fi.decodeHTML}});Object.defineProperty(X,"decodeHTML4Strict",{enumerable:!0,get:function(){return fi.decodeHTMLStrict}});Object.defineProperty(X,"decodeHTML5Strict",{enumerable:!0,get:function(){return fi.decodeHTMLStrict}});Object.defineProperty(X,"decodeXMLStrict",{enumerable:!0,get:function(){return fi.decodeXML}})});var o0=we((ZE,s0)=>{"use strict";function ST(i,e){if(!(i instanceof e))throw new TypeError("Cannot call a class as a function")}function YO(i,e){for(var t=0;t=i.length?{done:!0}:{done:!1,value:i[r++]}},e:function(c){throw c},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,a;return{s:function(){t=t.call(i)},n:function(){var c=t.next();return s=c.done,c},e:function(c){o=!0,a=c},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw a}}}}function TT(i,e){if(i){if(typeof i=="string")return ZO(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set")return Array.from(i);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ZO(i,e)}}function ZO(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t0?i*40+55:0,o=e>0?e*40+55:0,a=t>0?t*40+55:0;r[n]=RT([s,o,a])}function r0(i){for(var e=i.toString(16);e.length<2;)e="0"+e;return e}function RT(i){var e=[],t=i0(i),r;try{for(t.s();!(r=t.n()).done;){var n=r.value;e.push(r0(n))}}catch(s){t.e(s)}finally{t.f()}return"#"+e.join("")}function KO(i,e,t,r){var n;return e==="text"?n=_T(t,r):e==="display"?n=QT(i,t,r):e==="xterm256Foreground"?n=Ta(i,r.colors[t]):e==="xterm256Background"?n=Pa(i,r.colors[t]):e==="rgb"&&(n=AT(i,t)),n}function AT(i,e){e=e.substring(2).slice(0,-1);var t=+e.substr(0,2),r=e.substring(5).split(";"),n=r.map(function(s){return("0"+Number(s).toString(16)).substr(-2)}).join("");return ka(i,(t===38?"color:#":"background-color:#")+n)}function QT(i,e,t){e=parseInt(e,10);var r={"-1":function(){return"
"},0:function(){return i.length&&n0(i)},1:function(){return di(i,"b")},3:function(){return di(i,"i")},4:function(){return di(i,"u")},8:function(){return ka(i,"display:none")},9:function(){return di(i,"strike")},22:function(){return ka(i,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return t0(i,"i")},24:function(){return t0(i,"u")},39:function(){return Ta(i,t.fg)},49:function(){return Pa(i,t.bg)},53:function(){return ka(i,"text-decoration:overline")}},n;return r[e]?n=r[e]():4"}).join("")}function Sa(i,e){for(var t=[],r=i;r<=e;r++)t.push(r);return t}function MT(i){return function(e){return(i===null||e.category!==i)&&i!=="all"}}function e0(i){i=parseInt(i,10);var e=null;return i===0?e="all":i===1?e="bold":2")}function ka(i,e){return di(i,"span",e)}function Ta(i,e){return di(i,"span","color:"+e)}function Pa(i,e){return di(i,"span","background-color:"+e)}function t0(i,e){var t;if(i.slice(-1)[0]===e&&(t=i.pop()),t)return""+e+">"}function DT(i,e,t){var r=!1,n=3;function s(){return""}function o(w,T){return t("xterm256Foreground",T),""}function a(w,T){return t("xterm256Background",T),""}function l(w){return e.newline?t("display",-1):t("text",w),""}function c(w,T){r=!0,T.trim().length===0&&(T="0"),T=T.trimRight(";").split(";");var C=i0(T),D;try{for(C.s();!(D=C.n()).done;){var $=D.value;t("display",$)}}catch(q){C.e(q)}finally{C.f()}return""}function h(w){return t("text",w),""}function u(w){return t("rgb",w),""}var f=[{pattern:/^\x08+/,sub:s},{pattern:/^\x1b\[[012]?K/,sub:s},{pattern:/^\x1b\[\(B/,sub:s},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:u},{pattern:/^\x1b\[38;5;(\d+)m/,sub:o},{pattern:/^\x1b\[48;5;(\d+)m/,sub:a},{pattern:/^\n/,sub:l},{pattern:/^\r+\n/,sub:l},{pattern:/^\r/,sub:l},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:c},{pattern:/^\x1b\[\d?J/,sub:s},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:s},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:s},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:h}];function d(w,T){T>n&&r||(r=!1,i=i.replace(w.pattern,w.sub))}var m=[],p=i,g=p.length;e:for(;g>0;){for(var O=0,y=0,v=f.length;y{VT.exports="CmltcG9ydCBweW9kaWRlICMgdHlwZTogaWdub3JlW2F0dHItZGVmaW5lZF0KaW1wb3J0IHN5cwoKIyBDbGVhbnVwIGFueSBsZWZ0b3ZlciBtYXRwbG90bGliIHBsb3RzCnRyeToKICBpbXBvcnQgbWF0cGxvdGxpYi5weXBsb3QgYXMgcGx0CiAgcGx0LmNsb3NlKCJhbGwiKQogIHBsdC5yY1BhcmFtc1siZmlndXJlLmZpZ3NpemUiXSA9ICh3aWR0aCwgaGVpZ2h0KSAjIHR5cGU6IGlnbm9yZVthdHRyLWRlZmluZWRdCiAgcGx0LnJjUGFyYW1zWyJmaWd1cmUuZHBpIl0gPSBkcGkgIyB0eXBlOiBpZ25vcmVbYXR0ci1kZWZpbmVkXQpleGNlcHQgTW9kdWxlTm90Rm91bmRFcnJvcjoKICBwYXNzCgpmcm9tIElQeXRob24udXRpbHMgaW1wb3J0IGNhcHR1cmUKZnJvbSBJUHl0aG9uLmRpc3BsYXkgaW1wb3J0IGRpc3BsYXkKZnJvbSBJUHl0aG9uLmNvcmUuaW50ZXJhY3RpdmVzaGVsbCBpbXBvcnQgSW50ZXJhY3RpdmVTaGVsbApJbnRlcmFjdGl2ZVNoZWxsKCkuaW5zdGFuY2UoKQoKd2l0aCBjYXB0dXJlLmNhcHR1cmVfb3V0cHV0KCkgYXMgb3V0cHV0OgogIHZhbHVlID0gTm9uZQogIHRyeToKICAgIHZhbHVlID0gYXdhaXQgcHlvZGlkZS5jb2RlLmV2YWxfY29kZV9hc3luYyhjb2RlLCBnbG9iYWxzID0gZW52aXJvbm1lbnQpICMgdHlwZTogaWdub3JlW2F0dHItZGVmaW5lZF0KICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKICAgIHByaW50KGVyciwgZmlsZT1zeXMuc3RkZXJyKQogIGlmICh2YWx1ZSBpcyBub3QgTm9uZSk6CiAgICBkaXNwbGF5KHZhbHVlKQoKewogICJ2YWx1ZSI6IHZhbHVlLAogICJzdGRvdXQiOiBvdXRwdXQuc3Rkb3V0LAogICJzdGRlcnIiOiBvdXRwdXQuc3RkZXJyLAogICJvdXRwdXRzIjogb3V0cHV0Lm91dHB1dHMsCn0K"});var g0=we((TR,NT)=>{NT.exports="IyBDcmVhdGUgZW52aXJvbm1lbnQgdG8gaG9sZCB2YXJpYWJsZXMgZXhwb3J0ZWQgd2l0aCBvanNfZGVmaW5lCi53ZWJyX29qcyA8LSBuZXcuZW52KCkKb2pzX2RlZmluZSA8LSBmdW5jdGlvbiguLi4pIHsKICBhcmdzIDwtIGxpc3QoLi4uKQogIG5hbWVzKGFyZ3MpIDwtIHF1b3RlKG1hdGNoLmNhbGwoZXhwYW5kLmRvdHM9VFJVRSlbMTpsZW5ndGgoYXJncykgKyAxXSkKICAud2Vicl9vanMgPDwtIGxpc3QyZW52KGFyZ3MsIGVudmlyID0gLndlYnJfb2pzKQp9CgojIHdlYlIgZ3JhcGhpY3MgZGV2aWNlIHNldHRpbmdzCm9wdGlvbnMod2Vici5maWcud2lkdGggPSA3LCB3ZWJyLmZpZy5oZWlnaHQgPSA1KQppZiAod2Vicjo6ZXZhbF9qcygndHlwZW9mIE9mZnNjcmVlbkNhbnZhcyAhPT0gInVuZGVmaW5lZCInKSkgewogIG9wdGlvbnMoZGV2aWNlID0gZnVuY3Rpb24oLi4uKSB7CiAgICBhcmdzIDwtIGxpc3QoYmcgPSAid2hpdGUiLCAuLi4pCiAgICBhcmdzIDwtIGFyZ3NbIWR1cGxpY2F0ZWQobmFtZXMoYXJncykpXQogICAgZG8uY2FsbCh3ZWJyOjpjYW52YXMsIGFyZ3MpCiAgfSkKfQoKIyBDdXN0b20gcGFnZXIgZm9yIGRpc3BsYXlpbmcgZS5nLiBoZWxwIHBhZ2VzCm9wdGlvbnMocGFnZXIgPSBmdW5jdGlvbihmaWxlcywgLi4uKSB7CiAgd3JpdGVMaW5lcyhnc3ViKCIuW1xiXSIsICIiLCByZWFkTGluZXMoZmlsZXMpKSkKfSkKCiMgQ3VzdG9tIHZhbHVlIGhhbmRsZXIgYW5kIHJlbmRlcmluZyBmb3IgZXZhbHVhdGUgYW5kIGtuaXRyCm9wdGlvbnMoIndlYnIuZXZhbHVhdGUuaGFuZGxlciIgPSBldmFsdWF0ZTo6bmV3X291dHB1dF9oYW5kbGVyKAogIHZhbHVlID0gZnVuY3Rpb24oeCwgdmlzaWJsZSkgewogICAga25pdF9vcHRpb25zID0gbGlzdChzY3JlZW5zaG90LmZvcmNlID0gRkFMU0UpCiAgICByZXMgPC0gaWYgKHZpc2libGUpIHsKICAgICAgd2l0aFZpc2libGUoCiAgICAgICAga25pdHI6OmtuaXRfcHJpbnQoCiAgICAgICAgICBpZiAoaW5oZXJpdHMoeCwgImRhdGEuZnJhbWUiKSkgewogICAgICAgICAgICBzd2l0Y2goCiAgICAgICAgICAgICAgZ2V0T3B0aW9uKCJ3ZWJyLnJlbmRlci5kZiIsICJkZWZhdWx0IiksCiAgICAgICAgICAgICAgImthYmxlIiA9IGtuaXRyOjprYWJsZSh4KSwKICAgICAgICAgICAgICAiZHQiID0gRFQ6OmRhdGF0YWJsZSh4KSwKICAgICAgICAgICAgICAicGFnZWQtdGFibGUiID0gcm1hcmtkb3duOjpwYWdlZF90YWJsZSh4KSwKICAgICAgICAgICAgICAiZ3QiID0gZ3Q6Omd0KHgpLAogICAgICAgICAgICAgICJndC1pbnRlcmFjdGl2ZSIgPSBndDo6b3B0X2ludGVyYWN0aXZlKGd0OjpndCh4KSksCiAgICAgICAgICAgICAgInJlYWN0YWJsZSIgPSByZWFjdGFibGU6OnJlYWN0YWJsZSh4KSwKICAgICAgICAgICAgICB4CiAgICAgICAgICAgICkKICAgICAgICAgIH0gZWxzZSB4LAogICAgICAgIG9wdGlvbnMgPSBrbml0X29wdGlvbnMpCiAgICAgICkKICAgIH0gZWxzZSBsaXN0KHZhbHVlID0geCwgdmlzaWJsZSA9IEZBTFNFKQogICAgcmVzJGNsYXNzIDwtIGNsYXNzKHJlcyR2YWx1ZSkKICAgIGNsYXNzKHJlcykgPC0gInJlc3VsdCIKICAgIHJlcwogIH0KKSkKCiMgQWRkaXRpb25hbCBwYWNrYWdlIG9wdGlvbnMKb3B0aW9ucyhrbml0ci50YWJsZS5mb3JtYXQgPSAiaHRtbCIpCm9wdGlvbnMocmdsLnByaW50Umdsd2lkZ2V0ID0gVFJVRSkKCiMgRGVmYXVsdCBleGVyY2lzZSBncmFkZXIKIyBUT0RPOiBoYW5kbGUgZXJyb3JfY2hlY2sgJiBjb2RlX2NoZWNrIHN0YWdlcwpvcHRpb25zKHdlYnIuZXhlcmNpc2UuY2hlY2tlciA9IGZ1bmN0aW9uKAogIGxhYmVsLCB1c2VyX2NvZGUsIHNvbHV0aW9uX2NvZGUsIGNoZWNrX2NvZGUsIGVudmlyX3Jlc3VsdCwgZXZhbHVhdGVfcmVzdWx0LAogIGVudmlyX3ByZXAsIGxhc3RfdmFsdWUsIGVuZ2luZSwgc3RhZ2UsIC4uLgopIHsKICAjIFNldHVwIGVudmlyb25tZW50CiAgLmxhYmVsIDwtIGxhYmVsCiAgLnVzZXJfY29kZSA8LSB1c2VyX2NvZGUKICAuc29sdXRpb25fY29kZSA8LSBzb2x1dGlvbl9jb2RlCiAgLmNoZWNrX2NvZGUgPC0gY2hlY2tfY29kZQogIC5lbnZpcl9yZXN1bHQgPC0gZW52aXJfcmVzdWx0CiAgLmV2YWx1YXRlX3Jlc3VsdCA8LSBldmFsdWF0ZV9yZXN1bHQKICAuZW52aXJfcHJlcCA8LSBlbnZpcl9wcmVwCiAgLmxhc3RfdmFsdWUgPC0gbGFzdF92YWx1ZQogIC5yZXN1bHQgPC0gbGFzdF92YWx1ZQogIC51c2VyIDwtIGxhc3RfdmFsdWUKICAuZW5naW5lIDwtIGVuZ2luZQogIC5zdGFnZSA8LSBzdGFnZQoKICBpZiAoaXMubnVsbCguY2hlY2tfY29kZSkpIHsKICAgICMgTm8gZ3JhZGluZyBjb2RlLCBzbyBqdXN0IHNraXAgZ3JhZGluZwogICAgcmV0dXJuKGludmlzaWJsZShOVUxMKSkKICB9CgogIHRyeUNhdGNoKHsKICAgICMgUGFyc2UgcHJvdmlkZWQgY2hlY2sgY29kZQogICAgcGFyc2VkX2NoZWNrX2NvZGUgPC0gcGFyc2UodGV4dCA9IGNoZWNrX2NvZGUpCgogICAgIyBFdmFsdWF0ZSBwcm92aWRlZCBjaGVjayBjb2RlCiAgICBldmFsKHBhcnNlZF9jaGVja19jb2RlKQogIH0sIGVycm9yID0gZnVuY3Rpb24oZSkgewogICAgbGlzdCgKICAgICAgbWVzc2FnZSA9IHBhc3RlMCgiRXJyb3IgaW4gY2hlY2tpbmcgY29kZSBmb3IgYCIsIGxhYmVsLCAiYDogIiwgZSRtZXNzYWdlKSwKICAgICAgY29ycmVjdCA9IEZBTFNFLAogICAgICBsb2NhdGlvbiA9ICJhcHBlbmQiLAogICAgICB0eXBlID0gIndhcm5pbmciCiAgICApCiAgfSkKfSkK"});var O0=we((PR,IT)=>{IT.exports="aW1wb3J0IHN5cwppbXBvcnQgb3MKaW1wb3J0IHB5b2RpZGVfaHR0cCAgIyB0eXBlOiBpZ25vcmVbYXR0ci1kZWZpbmVkXQpweW9kaWRlX2h0dHAucGF0Y2hfYWxsKCkKc3lzLnBhdGguaW5zZXJ0KDAsICIvcHlvZGlkZS8iKQpvcy5ta2Rpcihvcy5wYXRoLmV4cGFuZHVzZXIoIn4vLm1hdHBsb3RsaWIiKSkKZiA9IG9wZW4ob3MucGF0aC5leHBhbmR1c2VyKCJ+Ly5tYXRwbG90bGliL21hdHBsb3RsaWJyYyIpLCAiYSIpCmYud3JpdGUoImJhY2tlbmQ6IG1vZHVsZTovL21hdHBsb3RsaWJfZGlzcGxheSIpCmYuY2xvc2UoKQo="});var y0=we((CR,WT)=>{WT.exports="IyBCYXNlZCBvbiBweW9kaWRlL21hdHBsb3RsaWJfcHlvZGlkZS9odG1sNV9jYW52YXNfYmFja2VuZC5weQojIE1vZGlmaWVkIGZvciBPZmZzY3JlZW5DYW52YXMgcmVuZGVyaW5nIHVuZGVyIFdlYiBXb3JrZXIKIyBMaWNlbnNlOiBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wCgppbXBvcnQgbWF0aAppbXBvcnQgbnVtcHkgYXMgbnAKZnJvbSBmdW5jdG9vbHMgaW1wb3J0IGxydV9jYWNoZQpmcm9tIG1hdHBsb3RsaWIuYmFja2VuZF9iYXNlcyBpbXBvcnQgKAogICAgRmlndXJlQ2FudmFzQmFzZSwKICAgIEZpZ3VyZU1hbmFnZXJCYXNlLAogICAgUmVuZGVyZXJCYXNlLAogICAgR3JhcGhpY3NDb250ZXh0QmFzZSwKICAgIF9CYWNrZW5kLAopCmZyb20gbWF0cGxvdGxpYi5fZW51bXMgaW1wb3J0IENhcFN0eWxlCmZyb20gbWF0cGxvdGxpYi5mb250X21hbmFnZXIgaW1wb3J0IGZpbmRmb250CmZyb20gbWF0cGxvdGxpYi5mdDJmb250IGltcG9ydCBMT0FEX05PX0hJTlRJTkcsIEZUMkZvbnQKZnJvbSBtYXRwbG90bGliLm1hdGh0ZXh0IGltcG9ydCBNYXRoVGV4dFBhcnNlcgpmcm9tIG1hdHBsb3RsaWIuY29sb3JzIGltcG9ydCBjb2xvckNvbnZlcnRlciwgcmdiMmhleApmcm9tIG1hdHBsb3RsaWIucGF0aCBpbXBvcnQgUGF0aApmcm9tIG1hdHBsb3RsaWIudHJhbnNmb3JtcyBpbXBvcnQgQWZmaW5lMkQKZnJvbSBJUHl0aG9uLmRpc3BsYXkgaW1wb3J0IGRpc3BsYXkKZnJvbSBqcyBpbXBvcnQgSW1hZ2VEYXRhLCBPZmZzY3JlZW5DYW52YXMgIyB0eXBlOiBpZ25vcmVbYXR0ci1kZWZpbmVkXQpmcm9tIHB5b2RpZGUuZmZpIGltcG9ydCBjcmVhdGVfcHJveHkgIyB0eXBlOiBpZ25vcmVbYXR0ci1kZWZpbmVkXQppbXBvcnQgbG9nZ2luZwoKX2NhcHN0eWxlX2QgPSB7InByb2plY3RpbmciOiAic3F1YXJlIiwgImJ1dHQiOiAiYnV0dCIsICJyb3VuZCI6ICJyb3VuZCJ9CmxvZ2dpbmcuZ2V0TG9nZ2VyKCdtYXRwbG90bGliLmZvbnRfbWFuYWdlcicpLmRpc2FibGVkID0gVHJ1ZQoKY2xhc3MgUmljaEltYWdlQml0bWFwT3V0cHV0KCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgZmlndXJlKToKICAgICAgICBzZWxmLmltYWdlID0gZmlndXJlLl9pbWFnZWJpdG1hcAogICAgICAgIHNlbGYudGl0bGUgPSBmaWd1cmUuX3RpdGxlCgogICAgZGVmIF9yZXByX21pbWVidW5kbGVfKHNlbGYsIGluY2x1ZGUsIGV4Y2x1ZGUpOgogICAgICAgIHJldHVybiB7ICJhcHBsaWNhdGlvbi9odG1sLWltYWdlYml0bWFwIjogc2VsZi5pbWFnZSB9LCB7ICJ0aXRsZSI6IHNlbGYudGl0bGUgfQoKY2xhc3MgRmlndXJlQ2FudmFzV29ya2VyKEZpZ3VyZUNhbnZhc0Jhc2UpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgRmlndXJlQ2FudmFzQmFzZS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCiAgICAgICAgc2VsZi5faWRsZV9zY2hlZHVsZWQgPSBGYWxzZQogICAgICAgIHNlbGYuX2lkID0gIm1hdHBsb3RsaWJfIiArIGhleChpZChzZWxmKSlbMjpdCiAgICAgICAgc2VsZi5fdGl0bGUgPSAiIgogICAgICAgIHNlbGYuX3JhdGlvID0gMgoKICAgICAgICB3aWR0aCwgaGVpZ2h0ID0gc2VsZi5nZXRfd2lkdGhfaGVpZ2h0KCkKICAgICAgICB3aWR0aCAqPSBzZWxmLl9yYXRpbwogICAgICAgIGhlaWdodCAqPSBzZWxmLl9yYXRpbwoKICAgICAgICBzZWxmLl9jYW52YXMgPSBPZmZzY3JlZW5DYW52YXMubmV3KHdpZHRoLCBoZWlnaHQpCiAgICAgICAgc2VsZi5fY29udGV4dCA9IHNlbGYuX2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpCiAgICAgICAgc2VsZi5faW1hZ2ViaXRtYXAgPSBOb25lCgogICAgZGVmIHNob3coc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICBzZWxmLmRyYXcoKQogICAgICAgIHNlbGYuX2ltYWdlYml0bWFwID0gc2VsZi5fY2FudmFzLnRyYW5zZmVyVG9JbWFnZUJpdG1hcCgpCiAgICAgICAgZGlzcGxheShSaWNoSW1hZ2VCaXRtYXBPdXRwdXQoc2VsZikpCgogICAgZGVmIGRyYXcoc2VsZik6CiAgICAgICAgc2VsZi5faWRsZV9zY2hlZHVsZWQgPSBUcnVlCiAgICAgICAgb3JpZ19kcGkgPSBzZWxmLmZpZ3VyZS5kcGkKICAgICAgICBpZiBzZWxmLl9yYXRpbyAhPSAxOgogICAgICAgICAgICBzZWxmLmZpZ3VyZS5kcGkgKj0gc2VsZi5fcmF0aW8KICAgICAgICB0cnk6CiAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQgPSBzZWxmLmdldF93aWR0aF9oZWlnaHQoKQogICAgICAgICAgICBpZiBzZWxmLl9jYW52YXMgaXMgTm9uZToKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICByZW5kZXJlciA9IFJlbmRlcmVySFRNTENhbnZhc1dvcmtlcihzZWxmLl9jb250ZXh0LCB3aWR0aCwgaGVpZ2h0LCBzZWxmLmZpZ3VyZS5kcGksIHNlbGYpCiAgICAgICAgICAgIHNlbGYuZmlndXJlLmRyYXcocmVuZGVyZXIpCiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIlJlbmRlcmluZyBmYWlsZWQiKSBmcm9tIGUKICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICBzZWxmLmZpZ3VyZS5kcGkgPSBvcmlnX2RwaQogICAgICAgICAgICBzZWxmLl9pZGxlX3NjaGVkdWxlZCA9IEZhbHNlCgogICAgZGVmIHNldF93aW5kb3dfdGl0bGUoc2VsZiwgdGl0bGUpOgogICAgICAgIHNlbGYuX3RpdGxlID0gdGl0bGUKCiAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAgaWYgKHNlbGYuX2ltYWdlYml0bWFwKToKICAgICAgICAgICAgc2VsZi5faW1hZ2ViaXRtYXAuY2xvc2UoKQogICAgICAgICAgICBzZWxmLl9pbWFnZWJpdG1hcCA9IE5vbmUKCiAgICBkZWYgZGVzdHJveShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuY2xvc2UoKQoKY2xhc3MgR3JhcGhpY3NDb250ZXh0SFRNTENhbnZhcyhHcmFwaGljc0NvbnRleHRCYXNlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZW5kZXJlcik6CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCiAgICAgICAgc2VsZi5zdHJva2UgPSBUcnVlCiAgICAgICAgc2VsZi5yZW5kZXJlciA9IHJlbmRlcmVyCgogICAgZGVmIHJlc3RvcmUoc2VsZik6CiAgICAgICAgc2VsZi5yZW5kZXJlci5jdHgucmVzdG9yZSgpCgogICAgZGVmIHNldF9jYXBzdHlsZShzZWxmLCBjcyk6CiAgICAgICAgaWYgaXNpbnN0YW5jZShjcywgc3RyKToKICAgICAgICAgICAgY3MgPSBDYXBTdHlsZShjcykKICAgICAgICAjIENvbnZlcnQgdGhlIEpvaW5TdHlsZSBlbnVtIHRvIGl0cyBuYW1lIGlmIG5lZWRlZAogICAgICAgIGlmIGhhc2F0dHIoY3MsICJuYW1lIik6CiAgICAgICAgICAgIGNzID0gY3MubmFtZS5sb3dlcigpCiAgICAgICAgaWYgY3MgaW4gWyJidXR0IiwgInJvdW5kIiwgInByb2plY3RpbmciXToKICAgICAgICAgICAgc2VsZi5fY2Fwc3R5bGUgPSBjcwogICAgICAgICAgICBzZWxmLnJlbmRlcmVyLmN0eC5saW5lQ2FwID0gX2NhcHN0eWxlX2RbY3NdCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIlVucmVjb2duaXplZCBjYXAgc3R5bGUuIEZvdW5kIHtjc30iKQoKICAgIGRlZiBnZXRfY2Fwc3R5bGUoc2VsZik6CiAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHN0eWxlCgogICAgZGVmIHNldF9jbGlwX3JlY3RhbmdsZShzZWxmLCByZWN0YW5nbGUpOgogICAgICAgIHNlbGYucmVuZGVyZXIuY3R4LnNhdmUoKQogICAgICAgIGlmIG5vdCByZWN0YW5nbGU6CiAgICAgICAgICAgIHNlbGYucmVuZGVyZXIuY3R4LnJlc3RvcmUoKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB4LCB5LCB3LCBoID0gbnAucm91bmQocmVjdGFuZ2xlLmJvdW5kcykKICAgICAgICBzZWxmLnJlbmRlcmVyLmN0eC5iZWdpblBhdGgoKQogICAgICAgIHNlbGYucmVuZGVyZXIuY3R4LnJlY3QoeCwgc2VsZi5yZW5kZXJlci5oZWlnaHQgLSB5IC0gaCwgdywgaCkKICAgICAgICBzZWxmLnJlbmRlcmVyLmN0eC5jbGlwKCkKCiAgICBkZWYgc2V0X2NsaXBfcGF0aChzZWxmLCBwYXRoKToKICAgICAgICBzZWxmLnJlbmRlcmVyLmN0eC5zYXZlKCkKICAgICAgICBpZiBub3QgcGF0aDoKICAgICAgICAgICAgc2VsZi5yZW5kZXJlci5jdHgucmVzdG9yZSgpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIHRwYXRoLCBhZmZpbmUgPSBwYXRoLmdldF90cmFuc2Zvcm1lZF9wYXRoX2FuZF9hZmZpbmUoKQogICAgICAgIGFmZmluZSA9IGFmZmluZSArIEFmZmluZTJEKCkuc2NhbGUoMSwgLTEpLnRyYW5zbGF0ZSgwLCBzZWxmLnJlbmRlcmVyLmhlaWdodCkKICAgICAgICBzZWxmLnJlbmRlcmVyLl9wYXRoX2hlbHBlcihzZWxmLnJlbmRlcmVyLmN0eCwgdHBhdGgsIGFmZmluZSkKICAgICAgICBzZWxmLnJlbmRlcmVyLmN0eC5jbGlwKCkKCiAgICBkZWYgc2V0X2Rhc2hlcyhzZWxmLCBkYXNoX29mZnNldCwgZGFzaF9saXN0KToKICAgICAgICBzZWxmLl9kYXNoZXMgPSBkYXNoX29mZnNldCwgZGFzaF9saXN0CiAgICAgICAgaWYgZGFzaF9vZmZzZXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHNlbGYucmVuZGVyZXIuY3R4LmxpbmVEYXNoT2Zmc2V0ID0gZGFzaF9vZmZzZXQKICAgICAgICBpZiBkYXNoX2xpc3QgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5yZW5kZXJlci5jdHguc2V0TGluZURhc2goW10pCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZGxuID0gbnAuYXNhcnJheShkYXNoX2xpc3QpCiAgICAgICAgICAgIGRsID0gbGlzdChzZWxmLnJlbmRlcmVyLnBvaW50c190b19waXhlbHMoZGxuKSkKICAgICAgICAgICAgc2VsZi5yZW5kZXJlci5jdHguc2V0TGluZURhc2goZGwpCgogICAgZGVmIHNldF9qb2luc3R5bGUoc2VsZiwganMpOgogICAgICAgIGlmIGpzIGluIFsibWl0ZXIiLCAicm91bmQiLCAiYmV2ZWwiXToKICAgICAgICAgICAgc2VsZi5fam9pbnN0eWxlID0ganMKICAgICAgICAgICAgc2VsZi5yZW5kZXJlci5jdHgubGluZUpvaW4gPSBqcwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJVbnJlY29nbml6ZWQgam9pbiBzdHlsZS4gRm91bmQge2pzfSIpCgogICAgZGVmIHNldF9saW5ld2lkdGgoc2VsZiwgdyk6CiAgICAgICAgc2VsZi5zdHJva2UgPSB3ICE9IDAKICAgICAgICBzZWxmLl9saW5ld2lkdGggPSBmbG9hdCh3KQogICAgICAgIHNlbGYucmVuZGVyZXIuY3R4LmxpbmVXaWR0aCA9IHNlbGYucmVuZGVyZXIucG9pbnRzX3RvX3BpeGVscyhmbG9hdCh3KSkKCmNsYXNzIFJlbmRlcmVySFRNTENhbnZhc1dvcmtlcihSZW5kZXJlckJhc2UpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGN0eCwgd2lkdGgsIGhlaWdodCwgZHBpLCBmaWcpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQogICAgICAgIHNlbGYuZmlnID0gZmlnCiAgICAgICAgc2VsZi5jdHggPSBjdHgKICAgICAgICBzZWxmLndpZHRoID0gd2lkdGgKICAgICAgICBzZWxmLmhlaWdodCA9IGhlaWdodAogICAgICAgIHNlbGYuY3R4LndpZHRoID0gc2VsZi53aWR0aAogICAgICAgIHNlbGYuY3R4LmhlaWdodCA9IHNlbGYuaGVpZ2h0CiAgICAgICAgc2VsZi5kcGkgPSBkcGkKICAgICAgICBzZWxmLm1hdGh0ZXh0X3BhcnNlciA9IE1hdGhUZXh0UGFyc2VyKCJwYXRoIikKICAgICAgICBzZWxmLl9nZXRfZm9udF9oZWxwZXIgPSBscnVfY2FjaGUobWF4c2l6ZT01MCkoc2VsZi5fZ2V0X2ZvbnRfaGVscGVyKQoKICAgICAgICAjIEtlZXAgdGhlIHN0YXRlIG9mIGZvbnRmYWNlcyB0aGF0IGFyZSBsb2FkaW5nCiAgICAgICAgc2VsZi5mb250c19sb2FkaW5nID0ge30KCiAgICBkZWYgbmV3X2djKHNlbGYpOgogICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRIVE1MQ2FudmFzKHJlbmRlcmVyPXNlbGYpCgogICAgZGVmIHBvaW50c190b19waXhlbHMoc2VsZiwgcG9pbnRzKToKICAgICAgICByZXR1cm4gKHBvaW50cyAvIDcyLjApICogc2VsZi5kcGkKCiAgICBkZWYgX21hdHBsb3RsaWJfY29sb3JfdG9fQ1NTKHNlbGYsIGNvbG9yLCBhbHBoYSwgYWxwaGFfb3ZlcnJpZGVzLCBpc19SR0I9VHJ1ZSk6CiAgICAgICAgaWYgbm90IGlzX1JHQjoKICAgICAgICAgICAgUiwgRywgQiwgYWxwaGEgPSBjb2xvckNvbnZlcnRlci50b19yZ2JhKGNvbG9yKQogICAgICAgICAgICBjb2xvciA9IChSLCBHLCBCKQoKICAgICAgICBpZiAobGVuKGNvbG9yKSA9PSA0KSBhbmQgKGFscGhhIGlzIE5vbmUpOgogICAgICAgICAgICBhbHBoYSA9IGNvbG9yWzNdCgogICAgICAgIGlmIGFscGhhIGlzIE5vbmU6CiAgICAgICAgICAgIENTU19jb2xvciA9IHJnYjJoZXgoY29sb3JbOjNdKQoKICAgICAgICBlbHNlOgogICAgICAgICAgICBSID0gaW50KGNvbG9yWzBdICogMjU1KQogICAgICAgICAgICBHID0gaW50KGNvbG9yWzFdICogMjU1KQogICAgICAgICAgICBCID0gaW50KGNvbG9yWzJdICogMjU1KQogICAgICAgICAgICBpZiBsZW4oY29sb3IpID09IDMgb3IgYWxwaGFfb3ZlcnJpZGVzOgogICAgICAgICAgICAgICAgQ1NTX2NvbG9yID0gZiIiInJnYmEoe1I6ZH0sIHtHOmR9LCB7QjpkfSwge2FscGhhOi4zZ30pIiIiCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBDU1NfY29sb3IgPSAiIiJyZ2JhKHs6ZH0sIHs6ZH0sIHs6ZH0sIHs6LjNnfSkiIiIuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgIFIsIEcsIEIsIGNvbG9yWzNdCiAgICAgICAgICAgICAgICApCgogICAgICAgIHJldHVybiBDU1NfY29sb3IKCiAgICBkZWYgX2RyYXdfbWF0aF90ZXh0KHNlbGYsIGdjLCB4LCB5LCBzLCBwcm9wLCBhbmdsZSk6CiAgICAgICAgd2lkdGgsIGhlaWdodCwgZGVwdGgsIGdseXBocywgcmVjdHMgPSBzZWxmLm1hdGh0ZXh0X3BhcnNlci5wYXJzZSgKICAgICAgICAgICAgcywgZHBpPXNlbGYuZHBpLCBwcm9wPXByb3AKICAgICAgICApCiAgICAgICAgc2VsZi5jdHguc2F2ZSgpCiAgICAgICAgc2VsZi5jdHgudHJhbnNsYXRlKHgsIHNlbGYuaGVpZ2h0ICsgeSkKICAgICAgICBpZiBhbmdsZSAhPSAwOgogICAgICAgICAgICBzZWxmLmN0eC5yb3RhdGUoLW1hdGgucmFkaWFucyhhbmdsZSkpCiAgICAgICAgc2VsZi5jdHguZmlsbFN0eWxlID0gc2VsZi5fbWF0cGxvdGxpYl9jb2xvcl90b19DU1MoCiAgICAgICAgICAgIGdjLmdldF9yZ2IoKSwgZ2MuZ2V0X2FscGhhKCksIGdjLmdldF9mb3JjZWRfYWxwaGEoKQogICAgICAgICkKICAgICAgICBmb3IgZm9udCwgZm9udHNpemUsIGMsIG94LCBveSBpbiBnbHlwaHM6CiAgICAgICAgICAgIHNlbGYuY3R4LnNhdmUoKQogICAgICAgICAgICBzZWxmLmN0eC50cmFuc2xhdGUob3gsIC1veSkKICAgICAgICAgICAgZm9udC5zZXRfc2l6ZShmb250c2l6ZSwgc2VsZi5kcGkpCiAgICAgICAgICAgIGZvbnQubG9hZF9jaGFyKGMpCiAgICAgICAgICAgIHZlcnRzLCBjb2RlcyA9IGZvbnQuZ2V0X3BhdGgoKQogICAgICAgICAgICBwYXRoID0gUGF0aCh2ZXJ0cywgY29kZXMpCiAgICAgICAgICAgIHRyYW5zZm9ybSA9IEFmZmluZTJEKCkuc2NhbGUoMS4wLCAtMS4wKQogICAgICAgICAgICBzZWxmLl9wYXRoX2hlbHBlcihzZWxmLmN0eCwgcGF0aCwgdHJhbnNmb3JtKQogICAgICAgICAgICBzZWxmLmN0eC5maWxsKCkKICAgICAgICAgICAgc2VsZi5jdHgucmVzdG9yZSgpCiAgICAgICAgZm9yIHgxLCB5MSwgeDIsIHkyIGluIHJlY3RzOgogICAgICAgICAgICBzZWxmLmN0eC5maWxsUmVjdCh4MSwgLXkyLCB4MiAtIHgxLCB5MiAtIHkxKQogICAgICAgIHNlbGYuY3R4LnJlc3RvcmUoKQoKICAgIGRlZiBfc2V0X3N0eWxlKHNlbGYsIGdjLCByZ2JGYWNlPU5vbmUpOgogICAgICAgIGlmIHJnYkZhY2UgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHNlbGYuY3R4LmZpbGxTdHlsZSA9IHNlbGYuX21hdHBsb3RsaWJfY29sb3JfdG9fQ1NTKAogICAgICAgICAgICAgICAgcmdiRmFjZSwgZ2MuZ2V0X2FscGhhKCksIGdjLmdldF9mb3JjZWRfYWxwaGEoKQogICAgICAgICAgICApCgogICAgICAgIGNhcHN0eWxlID0gZ2MuZ2V0X2NhcHN0eWxlKCkKICAgICAgICBpZiBjYXBzdHlsZToKICAgICAgICAgICAgIyBHZXQgdGhlIHN0cmluZyBuYW1lIGlmIGl0J3MgYW4gZW51bQogICAgICAgICAgICBpZiBoYXNhdHRyKGNhcHN0eWxlLCAibmFtZSIpOgogICAgICAgICAgICAgICAgY2Fwc3R5bGUgPSBjYXBzdHlsZS5uYW1lLmxvd2VyKCkKICAgICAgICAgICAgc2VsZi5jdHgubGluZUNhcCA9IF9jYXBzdHlsZV9kW2NhcHN0eWxlXQoKICAgICAgICBzZWxmLmN0eC5zdHJva2VTdHlsZSA9IHNlbGYuX21hdHBsb3RsaWJfY29sb3JfdG9fQ1NTKAogICAgICAgICAgICBnYy5nZXRfcmdiKCksIGdjLmdldF9hbHBoYSgpLCBnYy5nZXRfZm9yY2VkX2FscGhhKCkKICAgICAgICApCgogICAgICAgIHNlbGYuY3R4LmxpbmVXaWR0aCA9IHNlbGYucG9pbnRzX3RvX3BpeGVscyhnYy5nZXRfbGluZXdpZHRoKCkpCgogICAgZGVmIF9wYXRoX2hlbHBlcihzZWxmLCBjdHgsIHBhdGgsIHRyYW5zZm9ybSwgY2xpcD1Ob25lKToKICAgICAgICBjdHguYmVnaW5QYXRoKCkKICAgICAgICBmb3IgcG9pbnRzLCBjb2RlIGluIHBhdGguaXRlcl9zZWdtZW50cyh0cmFuc2Zvcm0sIHJlbW92ZV9uYW5zPVRydWUsIGNsaXA9Y2xpcCk6CiAgICAgICAgICAgIGlmIGNvZGUgPT0gUGF0aC5NT1ZFVE86CiAgICAgICAgICAgICAgICBjdHgubW92ZVRvKHBvaW50c1swXSwgcG9pbnRzWzFdKQogICAgICAgICAgICBlbGlmIGNvZGUgPT0gUGF0aC5MSU5FVE86CiAgICAgICAgICAgICAgICBjdHgubGluZVRvKHBvaW50c1swXSwgcG9pbnRzWzFdKQogICAgICAgICAgICBlbGlmIGNvZGUgPT0gUGF0aC5DVVJWRTM6CiAgICAgICAgICAgICAgICBjdHgucXVhZHJhdGljQ3VydmVUbygqcG9pbnRzKQogICAgICAgICAgICBlbGlmIGNvZGUgPT0gUGF0aC5DVVJWRTQ6CiAgICAgICAgICAgICAgICBjdHguYmV6aWVyQ3VydmVUbygqcG9pbnRzKQogICAgICAgICAgICBlbGlmIGNvZGUgPT0gUGF0aC5DTE9TRVBPTFk6CiAgICAgICAgICAgICAgICBjdHguY2xvc2VQYXRoKCkKCiAgICBkZWYgZHJhd19wYXRoKHNlbGYsIGdjLCBwYXRoLCB0cmFuc2Zvcm0sIHJnYkZhY2U9Tm9uZSk6CiAgICAgICAgc2VsZi5fc2V0X3N0eWxlKGdjLCByZ2JGYWNlKQogICAgICAgIGlmIHJnYkZhY2UgaXMgTm9uZSBhbmQgZ2MuZ2V0X2hhdGNoKCkgaXMgTm9uZToKICAgICAgICAgICAgZmlndXJlX2NsaXAgPSAoMCwgMCwgc2VsZi53aWR0aCwgc2VsZi5oZWlnaHQpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZmlndXJlX2NsaXAgPSBOb25lCgogICAgICAgIHRyYW5zZm9ybSArPSBBZmZpbmUyRCgpLnNjYWxlKDEsIC0xKS50cmFuc2xhdGUoMCwgc2VsZi5oZWlnaHQpCiAgICAgICAgc2VsZi5fcGF0aF9oZWxwZXIoc2VsZi5jdHgsIHBhdGgsIHRyYW5zZm9ybSwgZmlndXJlX2NsaXApCgogICAgICAgIGlmIHJnYkZhY2UgaXMgbm90IE5vbmU6CiAgICAgICAgICAgIHNlbGYuY3R4LmZpbGwoKQogICAgICAgICAgICBzZWxmLmN0eC5maWxsU3R5bGUgPSAiIzAwMDAwMCIKCiAgICAgICAgaWYgZ2Muc3Ryb2tlOgogICAgICAgICAgICBzZWxmLmN0eC5zdHJva2UoKQoKICAgIGRlZiBkcmF3X21hcmtlcnMoc2VsZiwgZ2MsIG1hcmtlcl9wYXRoLCBtYXJrZXJfdHJhbnMsIHBhdGgsIHRyYW5zLCByZ2JGYWNlPU5vbmUpOgogICAgICAgIHN1cGVyKCkuZHJhd19tYXJrZXJzKGdjLCBtYXJrZXJfcGF0aCwgbWFya2VyX3RyYW5zLCBwYXRoLCB0cmFucywgcmdiRmFjZSkKCiAgICBkZWYgX2dldF9mb250X2hlbHBlcihzZWxmLCBwcm9wKToKICAgICAgICBmbmFtZSA9IGZpbmRmb250KHByb3ApCiAgICAgICAgZm9udCA9IEZUMkZvbnQoc3RyKGZuYW1lKSkKICAgICAgICBmb250X2ZpbGVfbmFtZSA9IGZuYW1lLnJwYXJ0aXRpb24oIi8iKVstMV0KICAgICAgICByZXR1cm4gKGZvbnQsIGZvbnRfZmlsZV9uYW1lKQoKICAgIGRlZiBfZ2V0X2ZvbnQoc2VsZiwgcHJvcCk6CiAgICAgICAgcmVzdWx0ID0gc2VsZi5fZ2V0X2ZvbnRfaGVscGVyKHByb3ApCiAgICAgICAgZm9udCA9IHJlc3VsdFswXQogICAgICAgIGZvbnQuY2xlYXIoKQogICAgICAgIGZvbnQuc2V0X3NpemUocHJvcC5nZXRfc2l6ZV9pbl9wb2ludHMoKSwgc2VsZi5kcGkpCiAgICAgICAgcmV0dXJuIHJlc3VsdAoKICAgIGRlZiBnZXRfdGV4dF93aWR0aF9oZWlnaHRfZGVzY2VudChzZWxmLCBzLCBwcm9wLCBpc21hdGgpOgogICAgICAgIHc6IGZsb2F0CiAgICAgICAgaDogZmxvYXQKICAgICAgICBkOiBmbG9hdAogICAgICAgIGlmIGlzbWF0aDoKICAgICAgICAgICAgIyBVc2UgdGhlIHBhdGggcGFyc2VyIHRvIGdldCBleGFjdCBtZXRyaWNzCiAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIGRlcHRoLCBfLCBfID0gc2VsZi5tYXRodGV4dF9wYXJzZXIucGFyc2UoCiAgICAgICAgICAgICAgICBzLCBkcGk9NzIsIHByb3A9cHJvcAogICAgICAgICAgICApCiAgICAgICAgICAgIHJldHVybiB3aWR0aCwgaGVpZ2h0LCBkZXB0aAogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGZvbnQsIF8gPSBzZWxmLl9nZXRfZm9udChwcm9wKQogICAgICAgICAgICBmb250LnNldF90ZXh0KHMsIDAuMCwgZmxhZ3M9TE9BRF9OT19ISU5USU5HKQogICAgICAgICAgICB3LCBoID0gZm9udC5nZXRfd2lkdGhfaGVpZ2h0KCkKICAgICAgICAgICAgdyAvPSA2NC4wCiAgICAgICAgICAgIGggLz0gNjQuMAogICAgICAgICAgICBkID0gZm9udC5nZXRfZGVzY2VudCgpIC8gNjQuMAogICAgICAgIHJldHVybiB3LCBoLCBkCgogICAgZGVmIGRyYXdfaW1hZ2Uoc2VsZiwgZ2MsIHgsIHksIGltLCB0cmFuc2Zvcm09Tm9uZSk6CiAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCiAgICAgICAgaW0gPSBucC5mbGlwdWQoaW0pCiAgICAgICAgaCwgdywgZCA9IGltLnNoYXBlCiAgICAgICAgeSA9IHNlbGYuY3R4LmhlaWdodCAtIHkgLSBoCiAgICAgICAgaW0gPSBucC5yYXZlbChucC51aW50OChucC5yZXNoYXBlKGltLCAoaCAqIHcgKiBkLCAtMSkpKSkudG9ieXRlcygpCiAgICAgICAgcGl4ZWxzX3Byb3h5ID0gY3JlYXRlX3Byb3h5KGltKQogICAgICAgIHBpeGVsc19idWYgPSBwaXhlbHNfcHJveHkuZ2V0QnVmZmVyKCJ1OGNsYW1wZWQiKQogICAgICAgIGltZ19kYXRhID0gSW1hZ2VEYXRhLm5ldyhwaXhlbHNfYnVmLmRhdGEsIHcsIGgpCiAgICAgICAgc2VsZi5jdHguc2F2ZSgpCiAgICAgICAgaW5fbWVtb3J5X2NhbnZhcyA9IE9mZnNjcmVlbkNhbnZhcy5uZXcodywgaCkKICAgICAgICBpbl9tZW1vcnlfY2FudmFzX2NvbnRleHQgPSBpbl9tZW1vcnlfY2FudmFzLmdldENvbnRleHQoIjJkIikKICAgICAgICBpbl9tZW1vcnlfY2FudmFzX2NvbnRleHQucHV0SW1hZ2VEYXRhKGltZ19kYXRhLCAwLCAwKQogICAgICAgIHNlbGYuY3R4LmRyYXdJbWFnZShpbl9tZW1vcnlfY2FudmFzLCB4LCB5LCB3LCBoKQogICAgICAgIHNlbGYuY3R4LnJlc3RvcmUoKQogICAgICAgIHBpeGVsc19wcm94eS5kZXN0cm95KCkKICAgICAgICBwaXhlbHNfYnVmLnJlbGVhc2UoKQoKICAgIGRlZiBkcmF3X3RleHQoc2VsZiwgZ2MsIHgsIHksIHMsIHByb3AsIGFuZ2xlLCBpc21hdGg9RmFsc2UsIG10ZXh0PU5vbmUpOgogICAgICAgIGlmIGlzbWF0aDoKICAgICAgICAgICAgc2VsZi5fZHJhd19tYXRoX3RleHQoZ2MsIHgsIHksIHMsIHByb3AsIGFuZ2xlKQogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgYW5nbGUgPSBtYXRoLnJhZGlhbnMoYW5nbGUpCiAgICAgICAgd2lkdGgsIGhlaWdodCwgZGVzY2VudCA9IHNlbGYuZ2V0X3RleHRfd2lkdGhfaGVpZ2h0X2Rlc2NlbnQocywgcHJvcCwgaXNtYXRoKQogICAgICAgIHggLT0gbWF0aC5zaW4oYW5nbGUpICogZGVzY2VudAogICAgICAgIHkgLT0gbWF0aC5jb3MoYW5nbGUpICogZGVzY2VudCAtIHNlbGYuY3R4LmhlaWdodAogICAgICAgIGZvbnRfc2l6ZSA9IHNlbGYucG9pbnRzX3RvX3BpeGVscyhwcm9wLmdldF9zaXplX2luX3BvaW50cygpKQoKICAgICAgICBmb250X3Byb3BlcnR5X3N0cmluZyA9ICJ7fSB7fSB7Oi4zZ31weCB7fSwge30iLmZvcm1hdCgKICAgICAgICAgICAgcHJvcC5nZXRfc3R5bGUoKSwKICAgICAgICAgICAgcHJvcC5nZXRfd2VpZ2h0KCksCiAgICAgICAgICAgIGZvbnRfc2l6ZSwKICAgICAgICAgICAgcHJvcC5nZXRfbmFtZSgpLAogICAgICAgICAgICBwcm9wLmdldF9mYW1pbHkoKVswXSwKICAgICAgICApCiAgICAgICAgaWYgYW5nbGUgIT0gMDoKICAgICAgICAgICAgc2VsZi5jdHguc2F2ZSgpCiAgICAgICAgICAgIHNlbGYuY3R4LnRyYW5zbGF0ZSh4LCB5KQogICAgICAgICAgICBzZWxmLmN0eC5yb3RhdGUoLWFuZ2xlKQogICAgICAgICAgICBzZWxmLmN0eC50cmFuc2xhdGUoLXgsIC15KQogICAgICAgIHNlbGYuY3R4LmZvbnQgPSBmb250X3Byb3BlcnR5X3N0cmluZwogICAgICAgIHNlbGYuY3R4LmZpbGxTdHlsZSA9IHNlbGYuX21hdHBsb3RsaWJfY29sb3JfdG9fQ1NTKAogICAgICAgICAgICBnYy5nZXRfcmdiKCksIGdjLmdldF9hbHBoYSgpLCBnYy5nZXRfZm9yY2VkX2FscGhhKCkKICAgICAgICApCiAgICAgICAgc2VsZi5jdHguZmlsbFRleHQocywgeCwgeSkKICAgICAgICBzZWxmLmN0eC5maWxsU3R5bGUgPSAiIzAwMDAwMCIKICAgICAgICBpZiBhbmdsZSAhPSAwOgogICAgICAgICAgICBzZWxmLmN0eC5yZXN0b3JlKCkKCmNsYXNzIEZpZ3VyZU1hbmFnZXJIVE1MQ2FudmFzKEZpZ3VyZU1hbmFnZXJCYXNlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYW52YXMsIG51bSk6CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhjYW52YXMsIG51bSkKICAgICAgICBzZWxmLnNldF93aW5kb3dfdGl0bGUoIkZpZ3VyZSAlZCIgJSBudW0pCgogICAgZGVmIHNob3coc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmNhbnZhcy5zaG93KCphcmdzLCAqKmt3YXJncykKCiAgICBkZWYgZGVzdHJveShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuY2FudmFzLmRlc3Ryb3koKmFyZ3MsICoqa3dhcmdzKQoKICAgIGRlZiByZXNpemUoc2VsZiwgdywgaCk6CiAgICAgICAgcGFzcwoKICAgIGRlZiBzZXRfd2luZG93X3RpdGxlKHNlbGYsIHRpdGxlKToKICAgICAgICBzZWxmLmNhbnZhcy5zZXRfd2luZG93X3RpdGxlKHRpdGxlKQoKCkBfQmFja2VuZC5leHBvcnQKY2xhc3MgX0JhY2tlbmRXYXNtQ29yZUFnZyhfQmFja2VuZCk6CiAgICBGaWd1cmVDYW52YXMgPSBGaWd1cmVDYW52YXNXb3JrZXIKICAgIEZpZ3VyZU1hbmFnZXIgPSBGaWd1cmVNYW5hZ2VySFRNTENhbnZhcwoKICAgIEBzdGF0aWNtZXRob2QKICAgIGRlZiBzaG93KCphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgZnJvbSBtYXRwbG90bGliIGltcG9ydCBweXBsb3QgYXMgcGx0CiAgICAgICAgcGx0LmdjZigpLmNhbnZhcy5zaG93KCphcmdzLCAqKmt3YXJncykKCiAgICBAc3RhdGljbWV0aG9kCiAgICBkZWYgZGVzdHJveSgqYXJncywgKiprd2FyZ3MpOgogICAgICAgIGZyb20gbWF0cGxvdGxpYiBpbXBvcnQgcHlwbG90IGFzIHBsdAogICAgICAgIHBsdC5nY2YoKS5jYW52YXMuZGVzdHJveSgqYXJncywgKiprd2FyZ3MpCg=="});var pl={};k0(pl,{ChannelType:()=>Lt,Console:()=>qy,Shelter:()=>el,WebR:()=>pf,WebRChannelError:()=>Ot,WebRError:()=>yi,WebRPayloadError:()=>jr,WebRWorkerError:()=>Nu,isRCall:()=>Ss,isRCharacter:()=>Ji,isRComplex:()=>My,isRDouble:()=>Qy,isREnvironment:()=>Ey,isRFunction:()=>ks,isRInteger:()=>Ay,isRList:()=>ct,isRLogical:()=>Ry,isRNull:()=>Ae,isRObject:()=>te,isRPairlist:()=>Cy,isRRaw:()=>dl,isRSymbol:()=>Py});var C0=Object.create,Lu=Object.defineProperty,E0=Object.getOwnPropertyDescriptor,R0=Object.getOwnPropertyNames,A0=Object.getPrototypeOf,Q0=Object.prototype.hasOwnProperty,zi=(i=>typeof mi<"u"?mi:typeof Proxy<"u"?new Proxy(i,{get:(e,t)=>(typeof mi<"u"?mi:e)[t]}):i)(function(i){if(typeof mi<"u")return mi.apply(this,arguments);throw new Error('Dynamic require of "'+i+'" is not supported')}),Te=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),M0=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of R0(e))!Q0.call(i,n)&&n!==t&&Lu(i,n,{get:()=>e[n],enumerable:!(r=E0(e,n))||r.enumerable});return i},Ui=(i,e,t)=>(t=i!=null?C0(A0(i)):{},M0(e||!i||!i.__esModule?Lu(t,"default",{value:i,enumerable:!0}):t,i)),tl=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)},S=(i,e,t)=>(tl(i,e,"read from private field"),t?t.call(i):e.get(i)),V=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},ge=(i,e,t,r)=>(tl(i,e,"write to private field"),r?r.call(i,t):e.set(i,t),t);var tt=(i,e,t)=>(tl(i,e,"access private method"),t),Os=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.getUint64=i.getInt64=i.setInt64=i.setUint64=i.UINT32_MAX=void 0,i.UINT32_MAX=4294967295;function e(s,o,a){let l=a/4294967296,c=a;s.setUint32(o,l),s.setUint32(o+4,c)}i.setUint64=e;function t(s,o,a){let l=Math.floor(a/4294967296),c=a;s.setUint32(o,l),s.setUint32(o+4,c)}i.setInt64=t;function r(s,o){let a=s.getInt32(o),l=s.getUint32(o+4);return a*4294967296+l}i.getInt64=r;function n(s,o){let a=s.getUint32(o),l=s.getUint32(o+4);return a*4294967296+l}i.getUint64=n}),il=Te(i=>{"use strict";var e,t,r;Object.defineProperty(i,"__esModule",{value:!0}),i.utf8DecodeTD=i.TEXT_DECODER_THRESHOLD=i.utf8DecodeJs=i.utf8EncodeTE=i.TEXT_ENCODER_THRESHOLD=i.utf8EncodeJs=i.utf8Count=void 0;var n=Os(),s=(typeof process>"u"||((e=process==null?void 0:process.env)===null||e===void 0?void 0:e.TEXT_ENCODING)!=="never")&&typeof TextEncoder<"u"&&typeof TextDecoder<"u";function o(p){let g=p.length,O=0,y=0;for(;y=55296&&v<=56319&&y>6&31|192;else{if(w>=55296&&w<=56319&&x>18&7|240,g[v++]=w>>12&63|128,g[v++]=w>>6&63|128):(g[v++]=w>>12&15|224,g[v++]=w>>6&63|128)}else{g[v++]=w;continue}g[v++]=w&63|128}}i.utf8EncodeJs=a;var l=s?new TextEncoder:void 0;i.TEXT_ENCODER_THRESHOLD=s?typeof process<"u"&&((t=process==null?void 0:process.env)===null||t===void 0?void 0:t.TEXT_ENCODING)!=="force"?200:0:n.UINT32_MAX;function c(p,g,O){g.set(l.encode(p),O)}function h(p,g,O){l.encodeInto(p,g.subarray(O))}i.utf8EncodeTE=l!=null&&l.encodeInto?h:c;var u=4096;function f(p,g,O){let y=g,v=y+O,x=[],w="";for(;y65535&&(q-=65536,x.push(q>>>10&1023|55296),q=56320|q&1023),x.push(q)}else x.push(T);x.length>=u&&(w+=String.fromCharCode(...x),x.length=0)}return x.length>0&&(w+=String.fromCharCode(...x)),w}i.utf8DecodeJs=f;var d=s?new TextDecoder:null;i.TEXT_DECODER_THRESHOLD=s?typeof process<"u"&&((r=process==null?void 0:process.env)===null||r===void 0?void 0:r.TEXT_DECODER)!=="force"?200:0:n.UINT32_MAX;function m(p,g,O){let y=p.subarray(g,g+O);return d.decode(y)}i.utf8DecodeTD=m}),qu=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ExtData=void 0;var e=class{constructor(t,r){this.type=t,this.data=r}};i.ExtData=e}),rl=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DecodeError=void 0;var e=class extends Error{constructor(t){super(t);let r=Object.create(e.prototype);Object.setPrototypeOf(this,r),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:e.name})}};i.DecodeError=e}),Vu=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.timestampExtension=i.decodeTimestampExtension=i.decodeTimestampToTimeSpec=i.encodeTimestampExtension=i.encodeDateToTimeSpec=i.encodeTimeSpecToTimestamp=i.EXT_TIMESTAMP=void 0;var e=rl(),t=Os();i.EXT_TIMESTAMP=-1;var r=4294967296-1,n=17179869184-1;function s({sec:h,nsec:u}){if(h>=0&&u>=0&&h<=n)if(u===0&&h<=r){let f=new Uint8Array(4);return new DataView(f.buffer).setUint32(0,h),f}else{let f=h/4294967296,d=h&4294967295,m=new Uint8Array(8),p=new DataView(m.buffer);return p.setUint32(0,u<<2|f&3),p.setUint32(4,d),m}else{let f=new Uint8Array(12),d=new DataView(f.buffer);return d.setUint32(0,u),(0,t.setInt64)(d,4,h),f}}i.encodeTimeSpecToTimestamp=s;function o(h){let u=h.getTime(),f=Math.floor(u/1e3),d=(u-f*1e3)*1e6,m=Math.floor(d/1e9);return{sec:f+m,nsec:d-m*1e9}}i.encodeDateToTimeSpec=o;function a(h){if(h instanceof Date){let u=o(h);return s(u)}else return null}i.encodeTimestampExtension=a;function l(h){let u=new DataView(h.buffer,h.byteOffset,h.byteLength);switch(h.byteLength){case 4:return{sec:u.getUint32(0),nsec:0};case 8:{let f=u.getUint32(0),d=u.getUint32(4),m=(f&3)*4294967296+d,p=f>>>2;return{sec:m,nsec:p}}case 12:{let f=(0,t.getInt64)(u,4),d=u.getUint32(0);return{sec:f,nsec:d}}default:throw new e.DecodeError(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${h.length}`)}}i.decodeTimestampToTimeSpec=l;function c(h){let u=l(h);return new Date(u.sec*1e3+u.nsec/1e6)}i.decodeTimestampExtension=c,i.timestampExtension={type:i.EXT_TIMESTAMP,encode:a,decode:c}}),nl=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ExtensionCodec=void 0;var e=qu(),t=Vu(),r=class{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(t.timestampExtension)}register({type:n,encode:s,decode:o}){if(n>=0)this.encoders[n]=s,this.decoders[n]=o;else{let a=1+n;this.builtInEncoders[a]=s,this.builtInDecoders[a]=o}}tryToEncode(n,s){for(let o=0;o{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.createDataView=i.ensureUint8Array=void 0;function e(r){return r instanceof Uint8Array?r:ArrayBuffer.isView(r)?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):r instanceof ArrayBuffer?new Uint8Array(r):Uint8Array.from(r)}i.ensureUint8Array=e;function t(r){if(r instanceof ArrayBuffer)return new DataView(r);let n=e(r);return new DataView(n.buffer,n.byteOffset,n.byteLength)}i.createDataView=t}),Bu=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.Encoder=i.DEFAULT_INITIAL_BUFFER_SIZE=i.DEFAULT_MAX_DEPTH=void 0;var e=il(),t=nl(),r=Os(),n=$u();i.DEFAULT_MAX_DEPTH=100,i.DEFAULT_INITIAL_BUFFER_SIZE=2048;var s=class{constructor(o=t.ExtensionCodec.defaultCodec,a=void 0,l=i.DEFAULT_MAX_DEPTH,c=i.DEFAULT_INITIAL_BUFFER_SIZE,h=!1,u=!1,f=!1,d=!1){this.extensionCodec=o,this.context=a,this.maxDepth=l,this.initialBufferSize=c,this.sortKeys=h,this.forceFloat32=u,this.ignoreUndefined=f,this.forceIntegerToFloat=d,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}reinitializeState(){this.pos=0}encodeSharedRef(o){return this.reinitializeState(),this.doEncode(o,1),this.bytes.subarray(0,this.pos)}encode(o){return this.reinitializeState(),this.doEncode(o,1),this.bytes.slice(0,this.pos)}doEncode(o,a){if(a>this.maxDepth)throw new Error(`Too deep objects in depth ${a}`);o==null?this.encodeNil():typeof o=="boolean"?this.encodeBoolean(o):typeof o=="number"?this.encodeNumber(o):typeof o=="string"?this.encodeString(o):this.encodeObject(o,a)}ensureBufferSizeToWrite(o){let a=this.pos+o;this.view.byteLength=0?o<128?this.writeU8(o):o<256?(this.writeU8(204),this.writeU8(o)):o<65536?(this.writeU8(205),this.writeU16(o)):o<4294967296?(this.writeU8(206),this.writeU32(o)):(this.writeU8(207),this.writeU64(o)):o>=-32?this.writeU8(224|o+32):o>=-128?(this.writeU8(208),this.writeI8(o)):o>=-32768?(this.writeU8(209),this.writeI16(o)):o>=-2147483648?(this.writeU8(210),this.writeI32(o)):(this.writeU8(211),this.writeI64(o)):this.forceFloat32?(this.writeU8(202),this.writeF32(o)):(this.writeU8(203),this.writeF64(o))}writeStringHeader(o){if(o<32)this.writeU8(160+o);else if(o<256)this.writeU8(217),this.writeU8(o);else if(o<65536)this.writeU8(218),this.writeU16(o);else if(o<4294967296)this.writeU8(219),this.writeU32(o);else throw new Error(`Too long string: ${o} bytes in UTF-8`)}encodeString(o){if(o.length>e.TEXT_ENCODER_THRESHOLD){let a=(0,e.utf8Count)(o);this.ensureBufferSizeToWrite(5+a),this.writeStringHeader(a),(0,e.utf8EncodeTE)(o,this.bytes,this.pos),this.pos+=a}else{let a=(0,e.utf8Count)(o);this.ensureBufferSizeToWrite(5+a),this.writeStringHeader(a),(0,e.utf8EncodeJs)(o,this.bytes,this.pos),this.pos+=a}}encodeObject(o,a){let l=this.extensionCodec.tryToEncode(o,this.context);if(l!=null)this.encodeExtension(l);else if(Array.isArray(o))this.encodeArray(o,a);else if(ArrayBuffer.isView(o))this.encodeBinary(o);else if(typeof o=="object")this.encodeMap(o,a);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(o)}`)}encodeBinary(o){let a=o.byteLength;if(a<256)this.writeU8(196),this.writeU8(a);else if(a<65536)this.writeU8(197),this.writeU16(a);else if(a<4294967296)this.writeU8(198),this.writeU32(a);else throw new Error(`Too large binary: ${a}`);let l=(0,n.ensureUint8Array)(o);this.writeU8a(l)}encodeArray(o,a){let l=o.length;if(l<16)this.writeU8(144+l);else if(l<65536)this.writeU8(220),this.writeU16(l);else if(l<4294967296)this.writeU8(221),this.writeU32(l);else throw new Error(`Too large array: ${l}`);for(let c of o)this.doEncode(c,a+1)}countWithoutUndefined(o,a){let l=0;for(let c of a)o[c]!==void 0&&l++;return l}encodeMap(o,a){let l=Object.keys(o);this.sortKeys&&l.sort();let c=this.ignoreUndefined?this.countWithoutUndefined(o,l):l.length;if(c<16)this.writeU8(128+c);else if(c<65536)this.writeU8(222),this.writeU16(c);else if(c<4294967296)this.writeU8(223),this.writeU32(c);else throw new Error(`Too large map object: ${c}`);for(let h of l){let u=o[h];this.ignoreUndefined&&u===void 0||(this.encodeString(h),this.doEncode(u,a+1))}}encodeExtension(o){let a=o.data.length;if(a===1)this.writeU8(212);else if(a===2)this.writeU8(213);else if(a===4)this.writeU8(214);else if(a===8)this.writeU8(215);else if(a===16)this.writeU8(216);else if(a<256)this.writeU8(199),this.writeU8(a);else if(a<65536)this.writeU8(200),this.writeU16(a);else if(a<4294967296)this.writeU8(201),this.writeU32(a);else throw new Error(`Too large extension object: ${a}`);this.writeI8(o.type),this.writeU8a(o.data)}writeU8(o){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,o),this.pos++}writeU8a(o){let a=o.length;this.ensureBufferSizeToWrite(a),this.bytes.set(o,this.pos),this.pos+=a}writeI8(o){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,o),this.pos++}writeU16(o){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,o),this.pos+=2}writeI16(o){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,o),this.pos+=2}writeU32(o){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,o),this.pos+=4}writeI32(o){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,o),this.pos+=4}writeF32(o){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,o),this.pos+=4}writeF64(o){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,o),this.pos+=8}writeU64(o){this.ensureBufferSizeToWrite(8),(0,r.setUint64)(this.view,this.pos,o),this.pos+=8}writeI64(o){this.ensureBufferSizeToWrite(8),(0,r.setInt64)(this.view,this.pos,o),this.pos+=8}};i.Encoder=s}),_0=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.encode=void 0;var e=Bu(),t={};function r(n,s=t){return new e.Encoder(s.extensionCodec,s.context,s.maxDepth,s.initialBufferSize,s.sortKeys,s.forceFloat32,s.ignoreUndefined,s.forceIntegerToFloat).encodeSharedRef(n)}i.encode=r}),D0=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.prettyByte=void 0;function e(t){return`${t<0?"-":""}0x${Math.abs(t).toString(16).padStart(2,"0")}`}i.prettyByte=e}),L0=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CachedKeyDecoder=void 0;var e=il(),t=16,r=16,n=class{constructor(s=t,o=r){this.maxKeyLength=s,this.maxLengthPerKey=o,this.hit=0,this.miss=0,this.caches=[];for(let a=0;a0&&s<=this.maxKeyLength}find(s,o,a){let l=this.caches[a-1];e:for(let c of l){let h=c.bytes;for(let u=0;u=this.maxLengthPerKey?a[Math.random()*a.length|0]=l:a.push(l)}decode(s,o,a){let l=this.find(s,o,a);if(l!=null)return this.hit++,l;this.miss++;let c=(0,e.utf8DecodeJs)(s,o,a),h=Uint8Array.prototype.slice.call(s,o,o+a);return this.store(h,c),c}};i.CachedKeyDecoder=n}),sl=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.Decoder=i.DataViewIndexOutOfBoundsError=void 0;var e=D0(),t=nl(),r=Os(),n=il(),s=$u(),o=L0(),a=rl(),l=p=>{let g=typeof p;return g==="string"||g==="number"},c=-1,h=new DataView(new ArrayBuffer(0)),u=new Uint8Array(h.buffer);i.DataViewIndexOutOfBoundsError=(()=>{try{h.getInt8(0)}catch(p){return p.constructor}throw new Error("never reached")})();var f=new i.DataViewIndexOutOfBoundsError("Insufficient data"),d=new o.CachedKeyDecoder,m=class{constructor(p=t.ExtensionCodec.defaultCodec,g=void 0,O=r.UINT32_MAX,y=r.UINT32_MAX,v=r.UINT32_MAX,x=r.UINT32_MAX,w=r.UINT32_MAX,T=d){this.extensionCodec=p,this.context=g,this.maxStrLength=O,this.maxBinLength=y,this.maxArrayLength=v,this.maxMapLength=x,this.maxExtLength=w,this.keyDecoder=T,this.totalPos=0,this.pos=0,this.view=h,this.bytes=u,this.headByte=c,this.stack=[]}reinitializeState(){this.totalPos=0,this.headByte=c,this.stack.length=0}setBuffer(p){this.bytes=(0,s.ensureUint8Array)(p),this.view=(0,s.createDataView)(this.bytes),this.pos=0}appendBuffer(p){if(this.headByte===c&&!this.hasRemaining(1))this.setBuffer(p);else{let g=this.bytes.subarray(this.pos),O=(0,s.ensureUint8Array)(p),y=new Uint8Array(g.length+O.length);y.set(g),y.set(O,g.length),this.setBuffer(y)}}hasRemaining(p){return this.view.byteLength-this.pos>=p}createExtraByteError(p){let{view:g,pos:O}=this;return new RangeError(`Extra ${g.byteLength-O} of ${g.byteLength} byte(s) found at buffer[${p}]`)}decode(p){this.reinitializeState(),this.setBuffer(p);let g=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return g}*decodeMulti(p){for(this.reinitializeState(),this.setBuffer(p);this.hasRemaining(1);)yield this.doDecodeSync()}async decodeAsync(p){let g=!1,O;for await(let w of p){if(g)throw this.createExtraByteError(this.totalPos);this.appendBuffer(w);try{O=this.doDecodeSync(),g=!0}catch(T){if(!(T instanceof i.DataViewIndexOutOfBoundsError))throw T}this.totalPos+=this.pos}if(g){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return O}let{headByte:y,pos:v,totalPos:x}=this;throw new RangeError(`Insufficient data in parsing ${(0,e.prettyByte)(y)} at ${x} (${v} in the current buffer)`)}decodeArrayStream(p){return this.decodeMultiAsync(p,!0)}decodeStream(p){return this.decodeMultiAsync(p,!1)}async*decodeMultiAsync(p,g){let O=g,y=-1;for await(let v of p){if(g&&y===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(v),O&&(y=this.readArraySize(),O=!1,this.complete());try{for(;yield this.doDecodeSync(),--y!==0;);}catch(x){if(!(x instanceof i.DataViewIndexOutOfBoundsError))throw x}this.totalPos+=this.pos}}doDecodeSync(){e:for(;;){let p=this.readHeadByte(),g;if(p>=224)g=p-256;else if(p<192)if(p<128)g=p;else if(p<144){let y=p-128;if(y!==0){this.pushMapState(y),this.complete();continue e}else g={}}else if(p<160){let y=p-144;if(y!==0){this.pushArrayState(y),this.complete();continue e}else g=[]}else{let y=p-160;g=this.decodeUtf8String(y,0)}else if(p===192)g=null;else if(p===194)g=!1;else if(p===195)g=!0;else if(p===202)g=this.readF32();else if(p===203)g=this.readF64();else if(p===204)g=this.readU8();else if(p===205)g=this.readU16();else if(p===206)g=this.readU32();else if(p===207)g=this.readU64();else if(p===208)g=this.readI8();else if(p===209)g=this.readI16();else if(p===210)g=this.readI32();else if(p===211)g=this.readI64();else if(p===217){let y=this.lookU8();g=this.decodeUtf8String(y,1)}else if(p===218){let y=this.lookU16();g=this.decodeUtf8String(y,2)}else if(p===219){let y=this.lookU32();g=this.decodeUtf8String(y,4)}else if(p===220){let y=this.readU16();if(y!==0){this.pushArrayState(y),this.complete();continue e}else g=[]}else if(p===221){let y=this.readU32();if(y!==0){this.pushArrayState(y),this.complete();continue e}else g=[]}else if(p===222){let y=this.readU16();if(y!==0){this.pushMapState(y),this.complete();continue e}else g={}}else if(p===223){let y=this.readU32();if(y!==0){this.pushMapState(y),this.complete();continue e}else g={}}else if(p===196){let y=this.lookU8();g=this.decodeBinary(y,1)}else if(p===197){let y=this.lookU16();g=this.decodeBinary(y,2)}else if(p===198){let y=this.lookU32();g=this.decodeBinary(y,4)}else if(p===212)g=this.decodeExtension(1,0);else if(p===213)g=this.decodeExtension(2,0);else if(p===214)g=this.decodeExtension(4,0);else if(p===215)g=this.decodeExtension(8,0);else if(p===216)g=this.decodeExtension(16,0);else if(p===199){let y=this.lookU8();g=this.decodeExtension(y,1)}else if(p===200){let y=this.lookU16();g=this.decodeExtension(y,2)}else if(p===201){let y=this.lookU32();g=this.decodeExtension(y,4)}else throw new a.DecodeError(`Unrecognized type byte: ${(0,e.prettyByte)(p)}`);this.complete();let O=this.stack;for(;O.length>0;){let y=O[O.length-1];if(y.type===0)if(y.array[y.position]=g,y.position++,y.position===y.size)O.pop(),g=y.array;else continue e;else if(y.type===1){if(!l(g))throw new a.DecodeError("The type of key must be string or number but "+typeof g);if(g==="__proto__")throw new a.DecodeError("The key __proto__ is not allowed");y.key=g,y.type=2;continue e}else if(y.map[y.key]=g,y.readCount++,y.readCount===y.size)O.pop(),g=y.map;else{y.key=null,y.type=1;continue e}}return g}}readHeadByte(){return this.headByte===c&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=c}readArraySize(){let p=this.readHeadByte();switch(p){case 220:return this.readU16();case 221:return this.readU32();default:{if(p<160)return p-144;throw new a.DecodeError(`Unrecognized array type byte: ${(0,e.prettyByte)(p)}`)}}}pushMapState(p){if(p>this.maxMapLength)throw new a.DecodeError(`Max length exceeded: map length (${p}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.push({type:1,size:p,key:null,readCount:0,map:{}})}pushArrayState(p){if(p>this.maxArrayLength)throw new a.DecodeError(`Max length exceeded: array length (${p}) > maxArrayLength (${this.maxArrayLength})`);this.stack.push({type:0,size:p,array:new Array(p),position:0})}decodeUtf8String(p,g){var O;if(p>this.maxStrLength)throw new a.DecodeError(`Max length exceeded: UTF-8 byte length (${p}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLengthn.TEXT_DECODER_THRESHOLD?v=(0,n.utf8DecodeTD)(this.bytes,y,p):v=(0,n.utf8DecodeJs)(this.bytes,y,p),this.pos+=g+p,v}stateIsMapKey(){return this.stack.length>0?this.stack[this.stack.length-1].type===1:!1}decodeBinary(p,g){if(p>this.maxBinLength)throw new a.DecodeError(`Max length exceeded: bin length (${p}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(p+g))throw f;let O=this.pos+g,y=this.bytes.subarray(O,O+p);return this.pos+=g+p,y}decodeExtension(p,g){if(p>this.maxExtLength)throw new a.DecodeError(`Max length exceeded: ext length (${p}) > maxExtLength (${this.maxExtLength})`);let O=this.view.getInt8(this.pos+g),y=this.decodeBinary(p,g+1);return this.extensionCodec.decode(y,O,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let p=this.view.getUint8(this.pos);return this.pos++,p}readI8(){let p=this.view.getInt8(this.pos);return this.pos++,p}readU16(){let p=this.view.getUint16(this.pos);return this.pos+=2,p}readI16(){let p=this.view.getInt16(this.pos);return this.pos+=2,p}readU32(){let p=this.view.getUint32(this.pos);return this.pos+=4,p}readI32(){let p=this.view.getInt32(this.pos);return this.pos+=4,p}readU64(){let p=(0,r.getUint64)(this.view,this.pos);return this.pos+=8,p}readI64(){let p=(0,r.getInt64)(this.view,this.pos);return this.pos+=8,p}readF32(){let p=this.view.getFloat32(this.pos);return this.pos+=4,p}readF64(){let p=this.view.getFloat64(this.pos);return this.pos+=8,p}};i.Decoder=m}),Xu=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.decodeMulti=i.decode=i.defaultDecodeOptions=void 0;var e=sl();i.defaultDecodeOptions={};function t(n,s=i.defaultDecodeOptions){return new e.Decoder(s.extensionCodec,s.context,s.maxStrLength,s.maxBinLength,s.maxArrayLength,s.maxMapLength,s.maxExtLength).decode(n)}i.decode=t;function r(n,s=i.defaultDecodeOptions){return new e.Decoder(s.extensionCodec,s.context,s.maxStrLength,s.maxBinLength,s.maxArrayLength,s.maxMapLength,s.maxExtLength).decodeMulti(n)}i.decodeMulti=r}),q0=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ensureAsyncIterable=i.asyncIterableFromStream=i.isAsyncIterable=void 0;function e(s){return s[Symbol.asyncIterator]!=null}i.isAsyncIterable=e;function t(s){if(s==null)throw new Error("Assertion Failure: value must not be null nor undefined")}async function*r(s){let o=s.getReader();try{for(;;){let{done:a,value:l}=await o.read();if(a)return;t(l),yield l}}finally{o.releaseLock()}}i.asyncIterableFromStream=r;function n(s){return e(s)?s:r(s)}i.ensureAsyncIterable=n}),V0=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.decodeStream=i.decodeMultiStream=i.decodeArrayStream=i.decodeAsync=void 0;var e=sl(),t=q0(),r=Xu();async function n(l,c=r.defaultDecodeOptions){let h=(0,t.ensureAsyncIterable)(l);return new e.Decoder(c.extensionCodec,c.context,c.maxStrLength,c.maxBinLength,c.maxArrayLength,c.maxMapLength,c.maxExtLength).decodeAsync(h)}i.decodeAsync=n;function s(l,c=r.defaultDecodeOptions){let h=(0,t.ensureAsyncIterable)(l);return new e.Decoder(c.extensionCodec,c.context,c.maxStrLength,c.maxBinLength,c.maxArrayLength,c.maxMapLength,c.maxExtLength).decodeArrayStream(h)}i.decodeArrayStream=s;function o(l,c=r.defaultDecodeOptions){let h=(0,t.ensureAsyncIterable)(l);return new e.Decoder(c.extensionCodec,c.context,c.maxStrLength,c.maxBinLength,c.maxArrayLength,c.maxMapLength,c.maxExtLength).decodeStream(h)}i.decodeMultiStream=o;function a(l,c=r.defaultDecodeOptions){return o(l,c)}i.decodeStream=a}),ol=Te(i=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.decodeTimestampExtension=i.encodeTimestampExtension=i.decodeTimestampToTimeSpec=i.encodeTimeSpecToTimestamp=i.encodeDateToTimeSpec=i.EXT_TIMESTAMP=i.ExtData=i.ExtensionCodec=i.Encoder=i.DataViewIndexOutOfBoundsError=i.DecodeError=i.Decoder=i.decodeStream=i.decodeMultiStream=i.decodeArrayStream=i.decodeAsync=i.decodeMulti=i.decode=i.encode=void 0;var e=_0();Object.defineProperty(i,"encode",{enumerable:!0,get:function(){return e.encode}});var t=Xu();Object.defineProperty(i,"decode",{enumerable:!0,get:function(){return t.decode}}),Object.defineProperty(i,"decodeMulti",{enumerable:!0,get:function(){return t.decodeMulti}});var r=V0();Object.defineProperty(i,"decodeAsync",{enumerable:!0,get:function(){return r.decodeAsync}}),Object.defineProperty(i,"decodeArrayStream",{enumerable:!0,get:function(){return r.decodeArrayStream}}),Object.defineProperty(i,"decodeMultiStream",{enumerable:!0,get:function(){return r.decodeMultiStream}}),Object.defineProperty(i,"decodeStream",{enumerable:!0,get:function(){return r.decodeStream}});var n=sl();Object.defineProperty(i,"Decoder",{enumerable:!0,get:function(){return n.Decoder}}),Object.defineProperty(i,"DataViewIndexOutOfBoundsError",{enumerable:!0,get:function(){return n.DataViewIndexOutOfBoundsError}});var s=rl();Object.defineProperty(i,"DecodeError",{enumerable:!0,get:function(){return s.DecodeError}});var o=Bu();Object.defineProperty(i,"Encoder",{enumerable:!0,get:function(){return o.Encoder}});var a=nl();Object.defineProperty(i,"ExtensionCodec",{enumerable:!0,get:function(){return a.ExtensionCodec}});var l=qu();Object.defineProperty(i,"ExtData",{enumerable:!0,get:function(){return l.ExtData}});var c=Vu();Object.defineProperty(i,"EXT_TIMESTAMP",{enumerable:!0,get:function(){return c.EXT_TIMESTAMP}}),Object.defineProperty(i,"encodeDateToTimeSpec",{enumerable:!0,get:function(){return c.encodeDateToTimeSpec}}),Object.defineProperty(i,"encodeTimeSpecToTimestamp",{enumerable:!0,get:function(){return c.encodeTimeSpecToTimestamp}}),Object.defineProperty(i,"decodeTimestampToTimeSpec",{enumerable:!0,get:function(){return c.decodeTimestampToTimeSpec}}),Object.defineProperty(i,"encodeTimestampExtension",{enumerable:!0,get:function(){return c.encodeTimestampExtension}}),Object.defineProperty(i,"decodeTimestampExtension",{enumerable:!0,get:function(){return c.decodeTimestampExtension}})}),yi=class extends Error{constructor(i){super(i),this.name=this.constructor.name,Object.setPrototypeOf(this,new.target.prototype)}},Nu=class extends yi{},Ot=class extends yi{},jr=class extends yi{},ze=typeof process<"u"&&process.release&&process.release.name==="node",Qa;if(globalThis.document)Qa=i=>new Promise((e,t)=>{let r=document.createElement("script");r.src=i,r.onload=()=>e(),r.onerror=t,document.head.appendChild(r)});else if(globalThis.importScripts)Qa=async i=>{try{globalThis.importScripts(i)}catch(e){if(e instanceof TypeError)await Promise.resolve().then(()=>Ui(zi(i)));else throw e}};else if(ze)Qa=async i=>{let e=(await Promise.resolve().then(()=>Ui(zi("path")))).default;await Promise.resolve().then(()=>Ui(zi(e.resolve(i))))};else throw new yi("Cannot determine runtime environment");var P={};function $0(i){Object.keys(i).forEach(e=>P._free(i[e]))}var yt={null:0,symbol:1,pairlist:2,closure:3,environment:4,promise:5,call:6,special:7,builtin:8,string:9,logical:10,integer:13,double:14,complex:15,character:16,dots:17,any:18,list:19,expression:20,bytecode:21,pointer:22,weakref:23,raw:24,s4:25,new:30,free:31,function:99};function Iu(i){return!!i&&typeof i=="object"&&Object.keys(yt).includes(i.type)}function ys(i){return!!i&&typeof i=="object"&&"re"in i&&"im"in i}function rs(i){return P._Rf_protect(qt(i)),i}function le(i,e){return P._Rf_protect(qt(i)),++e.n,i}function B0(i){let e=P._malloc(4);return P._R_ProtectWithIndex(qt(i),e),{loc:P.getValue(e,"i32"),ptr:e}}function X0(i){P._Rf_unprotect(1),P._free(i.ptr)}function N0(i,e){return P._R_Reprotect(qt(i),e.loc),i}function ye(i){P._Rf_unprotect(i)}function Eu(i,e,t){P._Rf_defineVar(qt(e),qt(t),qt(i))}function Ru(i,e){let t={},r={n:0};try{let n=new Uu(e);le(n,r),t.code=P.allocateUTF8(i);let s=P._R_ParseEvalString(t.code,n.ptr);return U.wrap(s)}finally{$0(t),ye(r.n)}}function bs(i,e){return P.getWasmTableEntry(P.GOT.ffi_safe_eval.value)(qt(i),qt(e))}var I0=new WeakMap;function W0(i,e){return I0.set(i,e),i}var j0=63;function Wu(){let i=Array.from({length:4},z0).join("-");if(i.length!==j0)throw new Error("comlink internal error: UUID has the wrong length");return i}function z0(){let i=Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16),e=15-i.length;return e>0&&(i=Array.from({length:e},()=>0).join("")+i),i}function qt(i){return us(i)?i.ptr:i}function bi(i,e){if(P._TYPEOF(i.ptr)!==yt[e])throw new Error(`Unexpected object type "${i.type()}" when expecting type "${e}"`)}function ju(i){if(Iu(i))return new(ef(i.type))(i);if(i&&typeof i=="object"&&"type"in i&&i.type==="null")return new zu;if(i===null)return new Gi({type:"logical",names:null,values:[null]});if(typeof i=="boolean")return new Gi(i);if(typeof i=="number")return new vs(i);if(typeof i=="string")return new Ht(i);if(ys(i))return new ll(i);if(ArrayBuffer.isView(i)||i instanceof ArrayBuffer)return new cl(i);if(Array.isArray(i))return U0(i);if(typeof i=="object")return zr.fromObject(i);throw new Error("Robj construction for this JS object is not yet supported")}function U0(i){let e={n:0};if(i.every(t=>t&&typeof t=="object"&&!us(t)&&!ys(t))){let t=i,r=t.every(s=>Object.keys(s).filter(o=>!Object.keys(t[0]).includes(o)).length===0&&Object.keys(t[0]).filter(o=>!Object.keys(s).includes(o)).length===0),n=t.every(s=>Object.values(s).every(o=>rf(o)||tf(o)));if(r&&n)return zr.fromD3(t)}if(i.every(t=>typeof t=="boolean"||t===null))return new Gi(i);if(i.every(t=>typeof t=="number"||t===null))return new vs(i);if(i.every(t=>typeof t=="string"||t===null))return new Ht(i);try{let t=new Oi([new bt("c"),...i]);return le(t,e),t.eval()}finally{ye(e.n)}}var be=class{constructor(i){this.ptr=i}type(){let i=P._TYPEOF(this.ptr);return Object.keys(yt).find(e=>yt[e]===i)}},$r,ns,Fi=class extends be{constructor(i){if(!(i instanceof be))return ju(i);super(i.ptr),V(this,$r)}static wrap(i){let e=P._TYPEOF(i),t=Object.keys(yt)[Object.values(yt).indexOf(e)];return new(ef(t))(new be(i))}get[Symbol.toStringTag](){return`RObject:${this.type()}`}static getPersistentObject(i){return ke[i]}getPropertyValue(i){return this[i]}inspect(){Ru(".Internal(inspect(x))",{x:this})}isNull(){return P._TYPEOF(this.ptr)===yt.null}isNa(){try{let i=Ru("is.na(x)",{x:this});return rs(i),i.toBoolean()}finally{ye(1)}}isUnbound(){return this.ptr===ke.unboundValue.ptr}attrs(){return ws.wrap(P._ATTRIB(this.ptr))}class(){let i={n:0},e=new Oi([new bt("class"),this]);le(e,i);try{return e.eval()}finally{ye(i.n)}}setNames(i){let e;if(i===null)e=ke.null;else if(Array.isArray(i)&&i.every(t=>typeof t=="string"||t===null))e=new Ht(i);else throw new Error("Argument to setNames must be null or an Array of strings or null");return P._Rf_setAttrib(this.ptr,ke.namesSymbol.ptr,e.ptr),this}names(){let i=Ht.wrap(P._Rf_getAttrib(this.ptr,ke.namesSymbol.ptr));return i.isNull()?null:i.toArray()}includes(i){let e=this.names();return e&&e.includes(i)}toJs(i={depth:0},e=1){throw new Error("This R object cannot be converted to JS")}subset(i){return tt(this,$r,ns).call(this,i,ke.bracketSymbol.ptr)}get(i){return tt(this,$r,ns).call(this,i,ke.bracket2Symbol.ptr)}getDollar(i){return tt(this,$r,ns).call(this,i,ke.dollarSymbol.ptr)}pluck(...i){let e=B0(ke.null);try{let t=(n,s)=>{let o=n.get(s);return N0(o,e)},r=i.reduce(t,this);return r.isNull()?void 0:r}finally{X0(e)}}set(i,e){let t={n:0};try{let r=new Fi(i);le(r,t);let n=new Fi(e);le(n,t);let s=new bt("[[<-"),o=P._Rf_lang4(s.ptr,this.ptr,r.ptr,n.ptr);return le(o,t),Fi.wrap(bs(o,ke.baseEnv))}finally{ye(t.n)}}static getMethods(i){let e=new Set,t=i;do Object.getOwnPropertyNames(t).map(r=>e.add(r));while(t=Object.getPrototypeOf(t));return[...e.keys()].filter(r=>typeof i[r]=="function")}},U=Fi;$r=new WeakSet,ns=function(i,e){let t={n:0};try{let r=new Fi(i);le(r,t);let n=P._Rf_lang3(e,this.ptr,r.ptr);return le(n,t),Fi.wrap(bs(n,ke.baseEnv))}finally{ye(t.n)}};var zu=class extends U{constructor(){return super(new be(P.getValue(P._R_NilValue,"*"))),this}toJs(){return{type:"null"}}},bt=class extends U{constructor(i){if(i instanceof be){bi(i,"symbol"),super(i);return}let e=P.allocateUTF8(i);try{super(new be(P._Rf_install(e)))}finally{P._free(e)}}toJs(){let i=this.toObject();return{type:"symbol",printname:i.printname,symvalue:i.symvalue,internal:i.internal}}toObject(){return{printname:this.printname().isUnbound()?null:this.printname().toString(),symvalue:this.symvalue().isUnbound()?null:this.symvalue().ptr,internal:this.internal().isNull()?null:this.internal().ptr}}toString(){return this.printname().toString()}printname(){return al.wrap(P._PRINTNAME(this.ptr))}symvalue(){return U.wrap(P._SYMVALUE(this.ptr))}internal(){return U.wrap(P._INTERNAL(this.ptr))}},ws=class extends U{constructor(i){if(i instanceof be)return bi(i,"pairlist"),super(i),this;let e={n:0};try{let{names:t,values:r}=Zi(i),n=ws.wrap(P._Rf_allocList(r.length));le(n,e);for(let[s,o]=[0,n];!o.isNull();[s,o]=[s+1,o.cdr()])o.setcar(new U(r[s]));n.setNames(t),super(n)}finally{ye(e.n)}}get length(){return this.toArray().length}toArray(i={depth:1}){return this.toJs(i).values}toObject({allowDuplicateKey:i=!0,allowEmptyKey:e=!1,depth:t=-1}={}){let r=this.entries({depth:t}),n=r.map(([s])=>s);if(!i&&new Set(n).size!==n.length)throw new Error("Duplicate key when converting pairlist without allowDuplicateKey enabled");if(!e&&n.some(s=>!s))throw new Error("Empty or null key when converting pairlist without allowEmptyKey enabled");return Object.fromEntries(r.filter((s,o)=>r.findIndex(a=>a[0]===s[0])===o))}entries(i={depth:1}){let e=this.toJs(i);return e.values.map((t,r)=>[e.names?e.names[r]:null,t])}toJs(i={depth:0},e=1){let t=[],r=!1,n=[];for(let s=this;!s.isNull();s=s.cdr()){let o=s.tag();o.isNull()?t.push(""):(r=!0,t.push(o.toString())),i.depth&&e>=i.depth?n.push(s.car()):n.push(s.car().toJs(i,e+1))}return{type:"pairlist",names:r?t:null,values:n}}includes(i){return i in this.toObject()}setcar(i){P._SETCAR(this.ptr,i.ptr)}car(){return U.wrap(P._CAR(this.ptr))}cdr(){return U.wrap(P._CDR(this.ptr))}tag(){return U.wrap(P._TAG(this.ptr))}},Oi=class extends U{constructor(i){if(i instanceof be)return bi(i,"call"),super(i),this;let e={n:0};try{let{values:t}=Zi(i),r=t.map(s=>le(new U(s),e)),n=Oi.wrap(P._Rf_allocVector(yt.call,t.length));le(n,e);for(let[s,o]=[0,n];!o.isNull();[s,o]=[s+1,o.cdr()])o.setcar(r[s]);super(n)}finally{ye(e.n)}}setcar(i){P._SETCAR(this.ptr,i.ptr)}car(){return U.wrap(P._CAR(this.ptr))}cdr(){return U.wrap(P._CDR(this.ptr))}eval(){return P.webr.evalR(this,{env:ke.baseEnv})}capture(i={}){return P.webr.captureR(this,i)}deparse(){let i={n:0};try{let e=P._Rf_lang2(new bt("deparse1").ptr,P._Rf_lang2(new bt("quote").ptr,this.ptr));le(e,i);let t=Ht.wrap(bs(e,ke.baseEnv));return le(t,i),t.toString()}finally{ye(i.n)}}},_a=class extends U{constructor(i,e=null){if(i instanceof be){if(bi(i,"list"),super(i),e){if(e.length!==this.length)throw new Error("Can't construct named `RList`. Supplied `names` must be the same length as the list.");this.setNames(e)}return this}let t={n:0};try{let r=Zi(i),n=P._Rf_allocVector(yt.list,r.values.length);le(n,t),r.values.forEach((o,a)=>{P._SET_VECTOR_ELT(n,a,new U(o).ptr)});let s=e||r.names;if(s&&s.length!==r.values.length)throw new Error("Can't construct named `RList`. Supplied `names` must be the same length as the list.");U.wrap(n).setNames(s),super(new be(n))}finally{ye(t.n)}}get length(){return P._LENGTH(this.ptr)}isDataFrame(){let i=ws.wrap(P._ATTRIB(this.ptr)).get("class");return!i.isNull()&&i.toArray().includes("data.frame")}toArray(i={depth:1}){return this.toJs(i).values}toObject({allowDuplicateKey:i=!0,allowEmptyKey:e=!1,depth:t=-1}={}){let r=this.entries({depth:t}),n=r.map(([s])=>s);if(!i&&new Set(n).size!==n.length)throw new Error("Duplicate key when converting list without allowDuplicateKey enabled");if(!e&&n.some(s=>!s))throw new Error("Empty or null key when converting list without allowEmptyKey enabled");return Object.fromEntries(r.filter((s,o)=>r.findIndex(a=>a[0]===s[0])===o))}toD3(){if(!this.isDataFrame())throw new Error("Can't convert R list object to D3 format. Object must be of class 'data.frame'.");return this.entries().reduce((i,e)=>(e[1].forEach((t,r)=>i[r]=Object.assign(i[r]||{},{[e[0]]:t})),i),[])}entries(i={depth:-1}){let e=this.toJs(i);return this.isDataFrame()&&i.depth<0&&(e.values=e.values.map(t=>t.toArray())),e.values.map((t,r)=>[e.names?e.names[r]:null,t])}toJs(i={depth:0},e=1){return{type:"list",names:this.names(),values:[...Array(this.length).keys()].map(t=>i.depth&&e>=i.depth?this.get(t+1):this.get(t+1).toJs(i,e+1))}}},zr=class extends _a{constructor(i){if(i instanceof be){if(super(i),!this.isDataFrame())throw new Error("Can't construct `RDataFrame`. Supplied R object is not a `data.frame`.");return this}return zr.fromObject(i)}static fromObject(i){let{names:e,values:t}=Zi(i),r={n:0};try{let n=!!e&&e.length>0&&e.every(o=>o),s=t.length>0&&t.every(o=>Array.isArray(o)||ArrayBuffer.isView(o)||o instanceof ArrayBuffer);if(n&&s){let o=t,a=o.every(c=>c.length===o[0].length),l=o.every(c=>rf(c[0])||tf(c[0]));if(a&&l){let c=new _a({type:"list",names:e,values:o.map(u=>ju(u))});le(c,r);let h=new Oi([new bt("as.data.frame"),c]);return le(h,r),new zr(h.eval())}}}finally{ye(r.n)}throw new Error("Can't construct `data.frame`. Source object is not eligible.")}static fromD3(i){return this.fromObject(Object.fromEntries(Object.keys(i[0]).map(e=>[e,i.map(t=>t[e])])))}},is=class extends U{exec(...i){let e={n:0};try{let t=new Oi([this,...i]);return le(t,e),t.eval()}finally{ye(e.n)}}capture(i={},...e){let t={n:0};try{let r=new Oi([this,...e]);return le(r,t),r.capture(i)}finally{ye(t.n)}}},al=class extends U{constructor(i){if(i instanceof be){bi(i,"string"),super(i);return}let e=P.allocateUTF8(i);try{super(new be(P._Rf_mkChar(e)))}finally{P._free(e)}}toString(){return P.UTF8ToString(P._R_CHAR(this.ptr))}toJs(){return{type:"string",value:this.toString()}}},Uu=class extends U{constructor(i={}){if(i instanceof be)return bi(i,"environment"),super(i),this;let e=0;try{let{names:t,values:r}=Zi(i),n=rs(P._R_NewEnv(ke.globalEnv.ptr,0,0));++e,r.forEach((s,o)=>{let a=t?t[o]:null;if(!a)throw new Error("Can't create object in new environment with empty symbol name");let l=new bt(a),c=rs(new U(s));try{Eu(n,l,c)}finally{ye(1)}}),super(new be(n))}finally{ye(e)}}ls(i=!1,e=!0){return Ht.wrap(P._R_lsInternal3(this.ptr,Number(i),Number(e))).toArray()}bind(i,e){let t=new bt(i),r=rs(new U(e));try{Eu(this,t,r)}finally{ye(1)}}names(){return this.ls(!0,!0)}frame(){return U.wrap(P._FRAME(this.ptr))}subset(i){if(typeof i=="number")throw new Error("Object of type environment is not subsettable");return this.getDollar(i)}toObject({depth:i=-1}={}){let e=this.names();return Object.fromEntries([...Array(e.length).keys()].map(t=>{let r=this.getDollar(e[t]);return[e[t],i<0?r:r.toJs({depth:i})]}))}toJs(i={depth:0},e=1){let t=this.names(),r=[...Array(t.length).keys()].map(n=>i.depth&&e>=i.depth?this.getDollar(t[n]):this.getDollar(t[n]).toJs(i,e+1));return{type:"environment",names:t,values:r}}},Yi=class extends U{constructor(i,e,t){if(i instanceof be)return bi(i,e),super(i),this;let r={n:0};try{let{names:n,values:s}=Zi(i),o=P._Rf_allocVector(yt[e],s.length);le(o,r),s.forEach(t(o)),U.wrap(o).setNames(n),super(new be(o))}finally{ye(r.n)}}get length(){return P._LENGTH(this.ptr)}get(i){return super.get(i)}subset(i){return super.subset(i)}getDollar(){throw new Error("$ operator is invalid for atomic vectors")}detectMissing(){let i={n:0};try{let e=P._Rf_lang2(new bt("is.na").ptr,this.ptr);le(e,i);let t=Gi.wrap(bs(e,ke.baseEnv));le(t,i);let r=t.toTypedArray();return Array.from(r).map(n=>!!n)}finally{ye(i.n)}}toArray(){let i=this.toTypedArray();return this.detectMissing().map((e,t)=>e?null:i[t])}toObject({allowDuplicateKey:i=!0,allowEmptyKey:e=!1}={}){let t=this.entries(),r=t.map(([n])=>n);if(!i&&new Set(r).size!==r.length)throw new Error("Duplicate key when converting atomic vector without allowDuplicateKey enabled");if(!e&&r.some(n=>!n))throw new Error("Empty or null key when converting atomic vector without allowEmptyKey enabled");return Object.fromEntries(t.filter((n,s)=>t.findIndex(o=>o[0]===n[0])===s))}entries(){let i=this.toArray(),e=this.names();return i.map((t,r)=>[e?e[r]:null,t])}toJs(){return{type:this.type(),names:this.names(),values:this.toArray()}}},Da,Fu=class extends Yi{constructor(i){super(i,"logical",S(Fu,Da))}getBoolean(i){return this.get(i).toArray()[0]}toBoolean(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getBoolean(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS boolean");return i}toTypedArray(){return new Int32Array(P.HEAP32.subarray(P._LOGICAL(this.ptr)/4,P._LOGICAL(this.ptr)/4+this.length))}toArray(){let i=this.toTypedArray();return this.detectMissing().map((e,t)=>e?null:!!i[t])}},Gi=Fu;Da=new WeakMap,V(Gi,Da,i=>{let e=P._LOGICAL(i),t=P.getValue(P._R_NaInt,"i32");return(r,n)=>{P.setValue(e+4*n,r===null?t:!!r,"i32")}});var La,Hu=class extends Yi{constructor(i){super(i,"integer",S(Hu,La))}getNumber(i){return this.get(i).toArray()[0]}toNumber(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getNumber(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS number");return i}toTypedArray(){return new Int32Array(P.HEAP32.subarray(P._INTEGER(this.ptr)/4,P._INTEGER(this.ptr)/4+this.length))}},Gu=Hu;La=new WeakMap,V(Gu,La,i=>{let e=P._INTEGER(i),t=P.getValue(P._R_NaInt,"i32");return(r,n)=>{P.setValue(e+4*n,r===null?t:Math.round(Number(r)),"i32")}});var qa,Yu=class extends Yi{constructor(i){super(i,"double",S(Yu,qa))}getNumber(i){return this.get(i).toArray()[0]}toNumber(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getNumber(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS number");return i}toTypedArray(){return new Float64Array(P.HEAPF64.subarray(P._REAL(this.ptr)/8,P._REAL(this.ptr)/8+this.length))}},vs=Yu;qa=new WeakMap,V(vs,qa,i=>{let e=P._REAL(i),t=P.getValue(P._R_NaReal,"double");return(r,n)=>{P.setValue(e+8*n,r===null?t:r,"double")}});var Va,Zu=class extends Yi{constructor(i){super(i,"complex",S(Zu,Va))}getComplex(i){return this.get(i).toArray()[0]}toComplex(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getComplex(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS object");return i}toTypedArray(){return new Float64Array(P.HEAPF64.subarray(P._COMPLEX(this.ptr)/8,P._COMPLEX(this.ptr)/8+2*this.length))}toArray(){let i=this.toTypedArray();return this.detectMissing().map((e,t)=>e?null:{re:i[2*t],im:i[2*t+1]})}},ll=Zu;Va=new WeakMap,V(ll,Va,i=>{let e=P._COMPLEX(i),t=P.getValue(P._R_NaReal,"double");return(r,n)=>{P.setValue(e+8*(2*n),r===null?t:r.re,"double"),P.setValue(e+8*(2*n+1),r===null?t:r.im,"double")}});var $a,Ju=class extends Yi{constructor(i){super(i,"character",S(Ju,$a))}getString(i){return this.get(i).toArray()[0]}toString(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getString(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS string");return i}toTypedArray(){return new Uint32Array(P.HEAPU32.subarray(P._STRING_PTR(this.ptr)/4,P._STRING_PTR(this.ptr)/4+this.length))}toArray(){return this.detectMissing().map((i,e)=>i?null:P.UTF8ToString(P._R_CHAR(P._STRING_ELT(this.ptr,e))))}},Ht=Ju;$a=new WeakMap,V(Ht,$a,i=>(e,t)=>{e===null?P._SET_STRING_ELT(i,t,ke.naString.ptr):P._SET_STRING_ELT(i,t,new al(e).ptr)});var Ba,Ku=class extends Yi{constructor(i){i instanceof ArrayBuffer&&(i=new Uint8Array(i)),super(i,"raw",S(Ku,Ba))}getNumber(i){return this.get(i).toArray()[0]}toNumber(){if(this.length!==1)throw new Error("Can't convert atomic vector of length > 1 to a scalar JS value");let i=this.getNumber(1);if(i===null)throw new Error("Can't convert missing value `NA` to a JS number");return i}toTypedArray(){return new Uint8Array(P.HEAPU8.subarray(P._RAW(this.ptr),P._RAW(this.ptr)+this.length))}},cl=Ku;Ba=new WeakMap,V(cl,Ba,i=>{let e=P._RAW(i);return(t,r)=>{P.setValue(e+r,Number(t),"i8")}});function Zi(i){return Iu(i)?i:Array.isArray(i)||ArrayBuffer.isView(i)?{names:null,values:i}:i&&typeof i=="object"&&!ys(i)?{names:Object.keys(i),values:Object.values(i)}:{names:null,values:[i]}}function ef(i){let e={object:U,null:zu,symbol:bt,pairlist:ws,closure:is,environment:Uu,call:Oi,special:is,builtin:is,string:al,logical:Gi,integer:Gu,double:vs,complex:ll,character:Ht,list:_a,raw:cl,function:is,dataframe:zr};return i in e?e[i]:U}function us(i){return i instanceof U}function tf(i){let e=["logical","integer","double","complex","character"];return us(i)&&e.includes(i.type())||us(i)&&i.isNa()}function rf(i){return i===null||typeof i=="number"||typeof i=="boolean"||typeof i=="string"||ys(i)}var ke;function xs(){let i={resolve:()=>{},reject:()=>{},promise:Promise.resolve()},e=new Promise((t,r)=>{i.resolve=t,i.reject=r});return i.promise=e,i}function F0(i){return new Promise(e=>setTimeout(e,i))}function Gt(i,e,t,...r){return i==null||H0(i)?i:i instanceof ArrayBuffer?new Uint8Array(i):e(i)?t(i,...r):Array.isArray(i)||ArrayBuffer.isView(i)?i.map(n=>Gt(n,e,t,...r)):i instanceof be?i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([n,s])=>[n,Gt(s,e,t,...r)])):i}function hl(i,e){let t=new XMLHttpRequest;t.open("get",i,!0),t.onload=()=>{let r=new Worker(URL.createObjectURL(new Blob([t.responseText])));e(r)},t.send()}function ul(i){if(ze)return!1;let e=new URL(location.href),t=new URL(i,location.origin);return!(e.host===t.host&&e.port===t.port&&e.protocol===t.protocol)}function H0(i){return typeof ImageBitmap<"u"&&i instanceof ImageBitmap}var G0=Ui(ol()),Y0=new TextEncoder;async function Z0(i,e,t){try{let{taskId:r,sizeBuffer:n,dataBuffer:s,signalBuffer:o}=e,a=(0,G0.encode)(t),l=a.length<=s.length;if(Atomics.store(n,0,a.length),Atomics.store(n,1,+l),!l){let[c,h]=J0(i);s.set(Y0.encode(c)),await Au(o,r),s=(await h).dataBuffer}s.set(a),Atomics.store(n,1,1),await Au(o,r)}catch(r){console.warn(r)}}function J0(i){let e=Wu();return[e,new Promise(t=>{ze?i.once("message",r=>{!r.id||r.id!==e||t(r)}):i.addEventListener("message",function r(n){!n.data||!n.data.id||n.data.id!==e||(i.removeEventListener("message",r),t(n.data))}),i.start&&i.start()})]}async function Au(i,e){let t=(e>>1)%32,r=1;for(;Atomics.compareExchange(i,t+1,0,e)!==0;)await F0(r),r<32&&(r*=2);Atomics.or(i,0,1<{S(this,Dt).push(i)}))};function K0(i,e){return nf({type:"request",data:{uuid:Wu(),msg:i}},e)}function Na(i,e,t){return nf({type:"response",data:{uuid:i,resp:e}},t)}function nf(i,e){return e&&W0(i,e),i}function ey(i){let e=new Nu(i.obj.message);return i.obj.name!=="Error"&&(e.name=i.obj.name),e.stack=i.obj.stack,e}function ty(i){return!!i&&typeof i=="object"&&"payloadType"in i&&"obj"in i}function sf(i){return ty(i)&&i.payloadType==="ptr"}var Br,fl=class{constructor(){this.inputQueue=new Ma,this.outputQueue=new Ma,this.systemQueue=new Ma,V(this,Br,new Map)}async read(){return await this.outputQueue.get()}async flush(){let i=[];for(;!this.outputQueue.isEmpty();)i.push(await this.read());return i}async readSystem(){return await this.systemQueue.get()}write(i){this.inputQueue.put(i)}async request(i,e){let t=K0(i,e),{resolve:r,reject:n,promise:s}=xs();return S(this,Br).set(t.data.uuid,{resolve:r,reject:n}),this.write(t),s}putClosedMessage(){this.outputQueue.put({type:"closed"})}resolveResponse(i){let e=i.data.uuid,t=S(this,Br).get(e);if(t){let r=i.data.resp;S(this,Br).delete(e),r.payloadType==="err"?t.reject(ey(r)):t.resolve(r)}else console.warn("Can't find request.")}};Br=new WeakMap;var HT=Ui(ol()),GT=new TextDecoder("utf-8"),iy,ry,ny,sy,oy;iy=new WeakMap,ry=new WeakMap,ny=new WeakMap,sy=new WeakMap,oy=new WeakMap;var YT=new Int32Array(new ArrayBuffer(4));ze&&(globalThis.Worker=zi("worker_threads").Worker);var Xr,Ia,of,os,Qu=class extends fl{constructor(i){super(),V(this,Ia),V(this,Xr,void 0),this.close=()=>{},V(this,os,async(t,r)=>{if(!(!r||!r.type))switch(r.type){case"resolve":ge(this,Xr,new Int32Array(r.data)),this.resolve();return;case"response":this.resolveResponse(r);return;case"system":this.systemQueue.put(r.data);return;default:this.outputQueue.put(r);return;case"sync-request":{let n=r,s=n.data.msg,o=n.data.reqData;switch(s.type){case"read":{let a=await this.inputQueue.get();await Z0(t,o,a);break}default:throw new Ot(`Unsupported request type '${s.type}'.`)}return}case"request":throw new Ot("Can't send messages of type 'request' from a worker. Please Use 'sync-request' instead.")}});let e=t=>{tt(this,Ia,of).call(this,t),this.close=()=>{t.terminate(),this.putClosedMessage()};let r={type:"init",data:{config:i,channelType:Lt.SharedArrayBuffer}};t.postMessage(r)};if(ul(i.baseUrl))hl(`${i.baseUrl}webr-worker.js`,t=>e(t));else{let t=new Worker(`${i.baseUrl}webr-worker.js`);e(t)}({resolve:this.resolve,promise:this.initialised}=xs())}interrupt(){if(!S(this,Xr))throw new Ot("Failed attempt to interrupt before initialising interruptBuffer");this.inputQueue.reset(),S(this,Xr)[0]=1}};Xr=new WeakMap,Ia=new WeakSet,of=function(i){ze?i.on("message",e=>{S(this,os).call(this,i,e)}):i.onmessage=e=>S(this,os).call(this,i,e.data)},os=new WeakMap;var ay,ly,cy,hy;ay=new WeakMap,ly=new WeakMap,cy=new WeakMap,hy=new WeakMap;var ZT=Ui(ol());ze&&(globalThis.Worker=zi("worker_threads").Worker);var Ir,Hi,Wr,Wa,af,ja,Mu,za,lf,as,uy=class extends fl{constructor(i){super(),V(this,Wa),V(this,ja),V(this,za),this.close=()=>{},V(this,Ir,new Map),V(this,Hi,void 0),V(this,Wr,!1),V(this,as,(t,r)=>{if(!(!r||!r.type))switch(r.type){case"resolve":this.resolve();return;case"response":this.resolveResponse(r);return;case"system":this.systemQueue.put(r.data);return;default:this.outputQueue.put(r);return;case"sync-request":{let n=r.data;S(this,Ir).set(n.data.uuid,n.data.msg);return}case"request":throw new Ot("Can't send messages of type 'request' from a worker.Use service worker fetch request instead.")}}),console.warn("The ServiceWorker communication channel is deprecated and will be removed in a future version of webR. Consider using the PostMessage channel instead. If blocking input is required (for example, `browser()`) the SharedArrayBuffer channel should be used. See https://docs.r-wasm.org/webr/latest/serving.html for further information.");let e=t=>{tt(this,za,lf).call(this,t),this.close=()=>{t.terminate(),this.putClosedMessage()},tt(this,Wa,af).call(this,`${i.serviceWorkerUrl}webr-serviceworker.js`).then(r=>{let n={type:"init",data:{config:i,channelType:Lt.ServiceWorker,clientId:r,location:window.location.href}};t.postMessage(n)})};if(ul(i.serviceWorkerUrl))hl(`${i.serviceWorkerUrl}webr-worker.js`,t=>e(t));else{let t=new Worker(`${i.serviceWorkerUrl}webr-worker.js`);e(t)}({resolve:this.resolve,promise:this.initialised}=xs())}activeRegistration(){var i;if(!((i=S(this,Hi))!=null&&i.active))throw new Ot("Attempted to obtain a non-existent active registration.");return S(this,Hi).active}interrupt(){ge(this,Wr,!0)}};Ir=new WeakMap,Hi=new WeakMap,Wr=new WeakMap,Wa=new WeakSet,af=async function(i){ge(this,Hi,await navigator.serviceWorker.register(i)),await navigator.serviceWorker.ready,window.addEventListener("beforeunload",()=>{var t;(t=S(this,Hi))==null||t.unregister()});let e=await new Promise(t=>{navigator.serviceWorker.addEventListener("message",function r(n){n.data.type==="registration-successful"&&(navigator.serviceWorker.removeEventListener("message",r),t(n.data.clientId))}),this.activeRegistration().postMessage({type:"register-client-main"})});return navigator.serviceWorker.addEventListener("message",t=>{tt(this,ja,Mu).call(this,t)}),e},ja=new WeakSet,Mu=async function(i){if(i.data.type==="request"){let e=i.data.data,t=S(this,Ir).get(e);if(!t)throw new Ot("Request not found during service worker XHR request");switch(S(this,Ir).delete(e),t.type){case"read":{let r=await this.inputQueue.get();this.activeRegistration().postMessage({type:"wasm-webr-fetch-response",uuid:e,response:Na(e,r)});break}case"interrupt":{let r=S(this,Wr);this.activeRegistration().postMessage({type:"wasm-webr-fetch-response",uuid:e,response:Na(e,r)}),this.inputQueue.reset(),ge(this,Wr,!1);break}default:throw new Ot(`Unsupported request type '${t.type}'.`)}return}},za=new WeakSet,lf=function(i){ze?i.on("message",e=>{S(this,as).call(this,i,e)}):i.onmessage=e=>S(this,as).call(this,i,e.data)},as=new WeakMap;var fy,dy,py,my,gy,Oy;fy=new WeakMap,dy=new WeakMap,py=new WeakMap,my=new WeakMap,gy=new WeakMap,Oy=new WeakMap;ze&&(globalThis.Worker=zi("worker_threads").Worker);var Nr,Ua,cf,ls,_u=class extends fl{constructor(i){super(),V(this,Ua),this.close=()=>{},V(this,Nr,void 0),V(this,ls,async(t,r)=>{if(!(!r||!r.type))switch(r.type){case"resolve":this.resolve();return;case"response":this.resolveResponse(r);return;case"system":this.systemQueue.put(r.data);return;default:this.outputQueue.put(r);return;case"request":{let n=r,s=n.data.msg;switch(s.type){case"read":{let o=await this.inputQueue.get();if(S(this,Nr)){let a=Na(n.data.uuid,o);S(this,Nr).postMessage(a)}break}default:throw new Ot(`Unsupported request type '${s.type}'.`)}return}case"sync-request":throw new Ot("Can't send messages of type 'sync-request' in PostMessage mode. Use 'request' instead.")}});let e=t=>{ge(this,Nr,t),tt(this,Ua,cf).call(this,t),this.close=()=>t.terminate();let r={type:"init",data:{config:i,channelType:Lt.PostMessage}};t.postMessage(r)};if(ul(i.baseUrl))hl(`${i.baseUrl}webr-worker.js`,t=>e(t));else{let t=new Worker(`${i.baseUrl}webr-worker.js`);e(t)}({resolve:this.resolve,promise:this.initialised}=xs())}interrupt(){console.error("Interrupting R execution is not available when using the PostMessage channel")}};Nr=new WeakMap,Ua=new WeakSet,cf=function(i){ze?i.on("message",e=>{S(this,ls).call(this,i,e)}):i.onmessage=e=>S(this,ls).call(this,i,e.data)},ls=new WeakMap;var yy,by,wy,vy,xy;yy=new WeakMap,by=new WeakMap,wy=new WeakMap,vy=new WeakMap,xy=new WeakMap;var Lt={Automatic:0,SharedArrayBuffer:1,ServiceWorker:2,PostMessage:3};function Sy(i){switch(i.channelType){case Lt.SharedArrayBuffer:return new Qu(i);case Lt.ServiceWorker:return new uy(i);case Lt.PostMessage:return new _u(i);case Lt.Automatic:default:return typeof SharedArrayBuffer<"u"?new Qu(i):new _u(i)}}var ky=ze?__dirname+"/":"https://webr.r-wasm.org/v0.4.0/",Ty="https://repo.r-wasm.org",hf="0.4.0";function te(i){return!!i&&(typeof i=="object"||typeof i=="function")&&"payloadType"in i&&sf(i._payload)}function Ae(i){return te(i)&&i._payload.obj.type==="null"}function Py(i){return te(i)&&i._payload.obj.type==="symbol"}function Cy(i){return te(i)&&i._payload.obj.type==="pairlist"}function Ey(i){return te(i)&&i._payload.obj.type==="environment"}function Ry(i){return te(i)&&i._payload.obj.type==="logical"}function Ay(i){return te(i)&&i._payload.obj.type==="integer"}function Qy(i){return te(i)&&i._payload.obj.type==="double"}function My(i){return te(i)&&i._payload.obj.type==="complex"}function Ji(i){return te(i)&&i._payload.obj.type==="character"}function ct(i){return te(i)&&i._payload.obj.type==="list"}function dl(i){return te(i)&&i._payload.obj.type==="raw"}function Ss(i){return te(i)&&i._payload.obj.type==="call"}function ks(i){var e;return!!(te(i)&&(e=i._payload.obj.methods)!=null&&e.includes("exec"))}function _y(){}function Dy(i,e){return async function*(){let t={type:"callRObjectMethod",data:{payload:e._payload,prop:"getPropertyValue",args:[{payloadType:"raw",obj:"length"}],shelter:void 0}},r=await i.request(t);if(typeof r.obj!="number")throw new yi("Cannot iterate over object, unexpected type for length property.");for(let n=1;n<=r.obj;n++)yield e.get(n)}}function uf(i,e,t){return async(...r)=>{let n=r.map(a=>te(a)?a._payload:{obj:Gt(a,te,l=>l._payload),payloadType:"raw"}),s={type:"callRObjectMethod",data:{payload:t,prop:e,args:n}},o=await i.request(s);switch(o.payloadType){case"ptr":return gi(i,o);case"raw":return Gt(o,sf,(a,l)=>gi(l,a),i).obj}}}async function Ly(i,e,t,...r){let n={type:"newRObject",data:{objType:e,args:Gt(r,te,o=>o._payload),shelter:t}},s=await i.request(n);switch(s.payloadType){case"raw":throw new jr("Unexpected raw payload type returned from newRObject");case"ptr":return gi(i,s)}}function gi(i,e){var t;let r=new Proxy((t=e.obj.methods)!=null&&t.includes("exec")?Object.assign(_y,{...e}):e,{get:(n,s)=>{var o;if(s==="_payload")return e;if(s===Symbol.asyncIterator)return Dy(i,r);if((o=e.obj.methods)!=null&&o.includes(s.toString()))return uf(i,s.toString(),e)},apply:async(n,s,o)=>{let a=await gi(i,e).exec(...o);return ks(a)?a:a.toJs()}});return r}function $e(i,e,t){return new Proxy(U,{construct:(r,n)=>Ly(i,t,e,...n),get:(r,n)=>uf(i,n.toString())})}var fs,ds,ps,ms,gs,Fa,Ha,Ga,Ya,Za,Ja,ff,qy=class{constructor(i={},e={REnv:{R_HOME:"/usr/lib/R",FONTCONFIG_PATH:"/etc/fonts",R_ENABLE_JIT:"0"}}){V(this,Ja),V(this,fs,void 0),V(this,ds,void 0),V(this,ps,void 0),V(this,ms,void 0),V(this,gs,void 0),V(this,Fa,t=>{console.log(t)}),V(this,Ha,t=>{console.error(t)}),V(this,Ga,t=>{let r=prompt(t);r&&this.stdin(`${r}
-`)}),V(this,Ya,t=>{if(ze)throw new Error("Plotting with HTML canvas is not yet supported under Node");this.canvas.getContext("2d").drawImage(t,0,0)}),V(this,Za,()=>{if(ze)throw new Error("Plotting with HTML canvas is not yet supported under Node");this.canvas.getContext("2d").clearRect(0,0,this.canvas.width,this.canvas.height)}),this.webR=new pf(e),ze||(this.canvas=document.createElement("canvas"),this.canvas.setAttribute("width","1008"),this.canvas.setAttribute("height","1008")),ge(this,fs,i.stdout||S(this,Fa)),ge(this,ds,i.stderr||S(this,Ha)),ge(this,ps,i.prompt||S(this,Ga)),ge(this,ms,i.canvasImage||S(this,Ya)),ge(this,gs,i.canvasNewPage||S(this,Za)),this.webR.evalRVoid("options(device=webr::canvas)")}stdin(i){this.webR.writeConsole(i)}interrupt(){this.webR.interrupt()}run(){tt(this,Ja,ff).call(this)}};fs=new WeakMap,ds=new WeakMap,ps=new WeakMap,ms=new WeakMap,gs=new WeakMap,Fa=new WeakMap,Ha=new WeakMap,Ga=new WeakMap,Ya=new WeakMap,Za=new WeakMap,Ja=new WeakSet,ff=async function(){for(;;){let i=await this.webR.read();switch(i.type){case"stdout":S(this,fs).call(this,i.data);break;case"stderr":S(this,ds).call(this,i.data);break;case"prompt":S(this,ps).call(this,i.data);break;case"canvas":i.data.event==="canvasImage"?S(this,ms).call(this,i.data.image):i.data.event==="canvasNewPage"&&S(this,gs).call(this);break;case"closed":return;default:console.warn(`Unhandled output type for webR Console: ${i.type}.`)}}};var Vy={FONTCONFIG_PATH:"/etc/fonts",R_HOME:"/usr/lib/R",R_ENABLE_JIT:"0",WEBR:"1",WEBR_VERSION:hf},Du={RArgs:[],REnv:Vy,baseUrl:ky,serviceWorkerUrl:"",repoUrl:Ty,homedir:"/home/web_user",interactive:!0,channelType:Lt.Automatic,createLazyFilesystem:!0},ne,cs,Ka,df,pf=class{constructor(i={}){V(this,Ka),V(this,ne,void 0),V(this,cs,void 0),this.version=hf,this.FS={lookupPath:async t=>{let r={type:"lookupPath",data:{path:t}};return(await S(this,ne).request(r)).obj},mkdir:async t=>{let r={type:"mkdir",data:{path:t}};return(await S(this,ne).request(r)).obj},mount:async(t,r,n)=>{let s={type:"mount",data:{type:t,options:r,mountpoint:n}};await S(this,ne).request(s)},syncfs:async t=>{let r={type:"syncfs",data:{populate:t}};await S(this,ne).request(r)},readFile:async(t,r)=>{let n={type:"readFile",data:{path:t,flags:r}};return(await S(this,ne).request(n)).obj},rmdir:async t=>{let r={type:"rmdir",data:{path:t}};await S(this,ne).request(r)},writeFile:async(t,r,n)=>{let s={type:"writeFile",data:{path:t,data:r,flags:n}};await S(this,ne).request(s)},unlink:async t=>{let r={type:"unlink",data:{path:t}};await S(this,ne).request(r)},unmount:async t=>{let r={type:"unmount",data:{path:t}};await S(this,ne).request(r)}};let e={...Du,...i,REnv:{...Du.REnv,...i.REnv}};ge(this,ne,Sy(e)),this.objs={},this.Shelter=$y(S(this,ne)),ge(this,cs,S(this,ne).initialised.then(async()=>{this.globalShelter=await new this.Shelter,this.RObject=this.globalShelter.RObject,this.RLogical=this.globalShelter.RLogical,this.RInteger=this.globalShelter.RInteger,this.RDouble=this.globalShelter.RDouble,this.RComplex=this.globalShelter.RComplex,this.RCharacter=this.globalShelter.RCharacter,this.RRaw=this.globalShelter.RRaw,this.RList=this.globalShelter.RList,this.RDataFrame=this.globalShelter.RDataFrame,this.RPairlist=this.globalShelter.RPairlist,this.REnvironment=this.globalShelter.REnvironment,this.RSymbol=this.globalShelter.RSymbol,this.RString=this.globalShelter.RString,this.RCall=this.globalShelter.RCall,this.objs={baseEnv:await this.RObject.getPersistentObject("baseEnv"),globalEnv:await this.RObject.getPersistentObject("globalEnv"),null:await this.RObject.getPersistentObject("null"),true:await this.RObject.getPersistentObject("true"),false:await this.RObject.getPersistentObject("false"),na:await this.RObject.getPersistentObject("na")},tt(this,Ka,df).call(this)}))}async init(){return S(this,cs)}close(){S(this,ne).close()}async read(){return await S(this,ne).read()}async flush(){return await S(this,ne).flush()}write(i){S(this,ne).write(i)}writeConsole(i){this.write({type:"stdin",data:i+`
-`})}interrupt(){S(this,ne).interrupt()}async installPackages(i,e){let t=Object.assign({quiet:!1,mount:!0},e),r={type:"installPackages",data:{name:i,options:t}};await S(this,ne).request(r)}async destroy(i){await this.globalShelter.destroy(i)}async evalR(i,e){return this.globalShelter.evalR(i,e)}async evalRVoid(i,e){return this.evalRRaw(i,"void",e)}async evalRBoolean(i,e){return this.evalRRaw(i,"boolean",e)}async evalRNumber(i,e){return this.evalRRaw(i,"number",e)}async evalRString(i,e){return this.evalRRaw(i,"string",e)}async evalRRaw(i,e,t={}){let r=Gt(t,te,o=>o._payload),n={type:"evalRRaw",data:{code:i,options:r,outputType:e}},s=await S(this,ne).request(n);switch(s.payloadType){case"raw":return s.obj;case"ptr":throw new jr("Unexpected ptr payload type returned from evalRVoid")}}async invokeWasmFunction(i,...e){let t={type:"invokeWasmFunction",data:{ptr:i,args:e}};return(await S(this,ne).request(t)).obj}};ne=new WeakMap,cs=new WeakMap,Ka=new WeakSet,df=async function(){for(;;){let i=await S(this,ne).readSystem();switch(i.type){case"setTimeoutWasm":setTimeout((e,t)=>{this.invokeWasmFunction(e,...t)},i.data.delay,i.data.ptr,i.data.args);break;case"console.log":console.log(i.data);break;case"console.warn":console.warn(i.data);break;case"console.error":console.error(i.data);break;default:throw new yi("Unknown system message type `"+i.type+"`")}}};var oe,J,hs,el=class{constructor(i){V(this,oe,""),V(this,J,void 0),V(this,hs,!1),ge(this,J,i)}async init(){if(S(this,hs))return;let i={type:"newShelter"},e=await S(this,J).request(i);ge(this,oe,e.obj),this.RObject=$e(S(this,J),S(this,oe),"object"),this.RLogical=$e(S(this,J),S(this,oe),"logical"),this.RInteger=$e(S(this,J),S(this,oe),"integer"),this.RDouble=$e(S(this,J),S(this,oe),"double"),this.RComplex=$e(S(this,J),S(this,oe),"complex"),this.RCharacter=$e(S(this,J),S(this,oe),"character"),this.RRaw=$e(S(this,J),S(this,oe),"raw"),this.RList=$e(S(this,J),S(this,oe),"list"),this.RDataFrame=$e(S(this,J),S(this,oe),"dataframe"),this.RPairlist=$e(S(this,J),S(this,oe),"pairlist"),this.REnvironment=$e(S(this,J),S(this,oe),"environment"),this.RSymbol=$e(S(this,J),S(this,oe),"symbol"),this.RString=$e(S(this,J),S(this,oe),"string"),this.RCall=$e(S(this,J),S(this,oe),"call"),ge(this,hs,!0)}async purge(){let i={type:"shelterPurge",data:S(this,oe)};await S(this,J).request(i)}async destroy(i){let e={type:"shelterDestroy",data:{id:S(this,oe),obj:i._payload}};await S(this,J).request(e)}async size(){let i={type:"shelterSize",data:S(this,oe)};return(await S(this,J).request(i)).obj}async evalR(i,e={}){let t=Gt(e,te,s=>s._payload),r={type:"evalR",data:{code:i,options:t,shelter:S(this,oe)}},n=await S(this,J).request(r);switch(n.payloadType){case"raw":throw new jr("Unexpected payload type returned from evalR");default:return gi(S(this,J),n)}}async captureR(i,e={}){let t=Gt(e,te,s=>s._payload),r={type:"captureR",data:{code:i,options:t,shelter:S(this,oe)}},n=await S(this,J).request(r);switch(n.payloadType){case"ptr":throw new jr("Unexpected payload type returned from evalR");case"raw":{let s=n.obj,o=gi(S(this,J),s.result),a=s.output,l=s.images;for(let c=0;c{let e=new el(i);return await e.init(),e}})}var gf=Symbol("Comlink.proxy"),Ol=Symbol("Comlink.endpoint"),By=Symbol("Comlink.releaseProxy"),ml=Symbol("Comlink.finalizer"),Ps=Symbol("Comlink.thrown"),Of=i=>typeof i=="object"&&i!==null||typeof i=="function",Xy={canHandle:i=>Of(i)&&i[gf],serialize(i){let{port1:e,port2:t}=new MessageChannel;return As(i,e),[t,[t]]},deserialize(i){return i.start(),Ur(i)}},Ny={canHandle:i=>Of(i)&&Ps in i,serialize({value:i}){let e;return i instanceof Error?e={isError:!0,value:{message:i.message,name:i.name,stack:i.stack}}:e={isError:!1,value:i},[e,[]]},deserialize(i){throw i.isError?Object.assign(new Error(i.value.message),i.value):i.value}},vi=new Map([["proxy",Xy],["throw",Ny]]);function Iy(i,e){for(let t of i)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function As(i,e=globalThis,t=["*"]){e.addEventListener("message",function r(n){if(!n||!n.data)return;if(!Iy(t,n.origin)){console.warn(`Invalid origin '${n.origin}' for comlink proxy`);return}let{id:s,type:o,path:a}=Object.assign({path:[]},n.data),l=(n.data.argumentList||[]).map(wi),c;try{let h=a.slice(0,-1).reduce((f,d)=>f[d],i),u=a.reduce((f,d)=>f[d],i);switch(o){case"GET":c=u;break;case"SET":h[a.slice(-1)[0]]=wi(n.data.value),c=!0;break;case"APPLY":c=u.apply(h,l);break;case"CONSTRUCT":{let f=new u(...l);c=Hy(f)}break;case"ENDPOINT":{let{port1:f,port2:d}=new MessageChannel;As(i,d),c=Fy(f,[f])}break;case"RELEASE":c=void 0;break;default:return}}catch(h){c={value:h,[Ps]:0}}Promise.resolve(c).catch(h=>({value:h,[Ps]:0})).then(h=>{let[u,f]=Rs(h);e.postMessage(Object.assign(Object.assign({},u),{id:s}),f),o==="RELEASE"&&(e.removeEventListener("message",r),yf(e),ml in i&&typeof i[ml]=="function"&&i[ml]())}).catch(h=>{let[u,f]=Rs({value:new TypeError("Unserializable return value"),[Ps]:0});e.postMessage(Object.assign(Object.assign({},u),{id:s}),f)})}),e.start&&e.start()}function Wy(i){return i.constructor.name==="MessagePort"}function yf(i){Wy(i)&&i.close()}function Ur(i,e){return gl(i,[],e)}function Ts(i){if(i)throw new Error("Proxy has been released and is not useable")}function bf(i){return Ki(i,{type:"RELEASE"}).then(()=>{yf(i)})}var Cs=new WeakMap,Es="FinalizationRegistry"in globalThis&&new FinalizationRegistry(i=>{let e=(Cs.get(i)||0)-1;Cs.set(i,e),e===0&&bf(i)});function jy(i,e){let t=(Cs.get(e)||0)+1;Cs.set(e,t),Es&&Es.register(i,e,i)}function zy(i){Es&&Es.unregister(i)}function gl(i,e=[],t=function(){}){let r=!1,n=new Proxy(t,{get(s,o){if(Ts(r),o===By)return()=>{zy(n),bf(i),r=!0};if(o==="then"){if(e.length===0)return{then:()=>n};let a=Ki(i,{type:"GET",path:e.map(l=>l.toString())}).then(wi);return a.then.bind(a)}return gl(i,[...e,o])},set(s,o,a){Ts(r);let[l,c]=Rs(a);return Ki(i,{type:"SET",path:[...e,o].map(h=>h.toString()),value:l},c).then(wi)},apply(s,o,a){Ts(r);let l=e[e.length-1];if(l===Ol)return Ki(i,{type:"ENDPOINT"}).then(wi);if(l==="bind")return gl(i,e.slice(0,-1));let[c,h]=mf(a);return Ki(i,{type:"APPLY",path:e.map(u=>u.toString()),argumentList:c},h).then(wi)},construct(s,o){Ts(r);let[a,l]=mf(o);return Ki(i,{type:"CONSTRUCT",path:e.map(c=>c.toString()),argumentList:a},l).then(wi)}});return jy(n,i),n}function Uy(i){return Array.prototype.concat.apply([],i)}function mf(i){let e=i.map(Rs);return[e.map(t=>t[0]),Uy(e.map(t=>t[1]))]}var wf=new WeakMap;function Fy(i,e){return wf.set(i,e),i}function Hy(i){return Object.assign(i,{[gf]:!0})}function Rs(i){for(let[e,t]of vi)if(t.canHandle(i)){let[r,n]=t.serialize(i);return[{type:"HANDLER",name:e,value:r},n]}return[{type:"RAW",value:i},wf.get(i)||[]]}function wi(i){switch(i.type){case"HANDLER":return vi.get(i.name).deserialize(i.value);case"RAW":return i.value}}function Ki(i,e,t){return new Promise(r=>{let n=Gy();i.addEventListener("message",function s(o){!o.data||!o.data.id||o.data.id!==n||(i.removeEventListener("message",s),r(o.data))}),i.start&&i.start(),i.postMessage(Object.assign({id:n},e),t)})}function Gy(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var er=[],it=class{constructor(e){this.isRunning=!1;this.isDestroyed=!1;er.push(this),e?this.callbacks=e:this.callbacks={busyCallback:()=>{},idleCallback:()=>{},runningCallback:()=>{},finishedCallback:()=>{}}}running(){this.isRunning=!0,er.forEach(e=>e.callbacks.busyCallback()),this.callbacks.runningCallback()}finished(){this.isRunning=!1,this.callbacks.finishedCallback(),this.status().busy||er.forEach(e=>e.callbacks.idleCallback())}status(){let e=this.isRunning,t=this.isDestroyed,r=er.some(n=>n.isRunning);return{running:e,busy:r,destroyed:t}}destroy(){this.isDestroyed=!0;let e=er.indexOf(this);er.splice(e,1)}};var I=class i{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,r){[e,t]=or(this,e,t);let n=[];return this.decompose(0,e,n,2),r.length&&r.decompose(0,r.length,n,3),this.decompose(t,this.length,n,1),ir.from(n,this.length-(t-e)+r.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=or(this,e,t);let r=[];return this.decompose(e,t,r,0),ir.from(r,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),r=this.length-this.scanIdentical(e,-1),n=new ki(this),s=new ki(e);for(let o=t,a=t;;){if(n.next(o),s.next(o),o=0,n.lineBreak!=s.lineBreak||n.done!=s.done||n.value!=s.value)return!1;if(a+=n.value.length,n.done||a>=r)return!0}}iter(e=1){return new ki(this,e)}iterRange(e,t=this.length){return new Ds(this,e,t)}iterLines(e,t){let r;if(e==null)r=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;r=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Ls(r)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Ue(e):ir.from(Ue.split(e,[]))}},Ue=class i extends I{constructor(e,t=Yy(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.text[s],a=n+o.length;if((t?r:a)>=e)return new bl(n,a,r,o);n=a+1,r++}}decompose(e,t,r,n){let s=e<=0&&t>=this.length?this:new i(xf(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let o=r.pop(),a=_s(s.text,o.text.slice(),0,s.length);if(a.length<=32)r.push(new i(a,o.length+s.length));else{let l=a.length>>1;r.push(new i(a.slice(0,l)),new i(a.slice(l)))}}else r.push(s)}replace(e,t,r){if(!(r instanceof i))return super.replace(e,t,r);[e,t]=or(this,e,t);let n=_s(this.text,_s(r.text,xf(this.text,0,e)),t),s=this.length+r.length-(t-e);return n.length<=32?new i(n,s):ir.from(i.split(n,[]),s)}sliceString(e,t=this.length,r=`
-`){[e,t]=or(this,e,t);let n="";for(let s=0,o=0;s<=t&&oe&&o&&(n+=r),es&&(n+=a.slice(Math.max(0,e-s),t-s)),s=l+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let r=[],n=-1;for(let s of e)r.push(s),n+=s.length+1,r.length==32&&(t.push(new i(r,n)),r=[],n=-1);return n>-1&&t.push(new i(r,n)),t}},ir=class i extends I{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let r of e)this.lines+=r.lines}lineInner(e,t,r,n){for(let s=0;;s++){let o=this.children[s],a=n+o.length,l=r+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,r,n);n=a+1,r=l+1}}decompose(e,t,r,n){for(let s=0,o=0;o<=t&&s=o){let c=n&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?r.push(a):a.decompose(e-o,t-o,r,c)}o=l+1}}replace(e,t,r){if([e,t]=or(this,e,t),r.lines=s&&t<=a){let l=o.replace(e-s,t-s,r),c=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>c>>6){let h=this.children.slice();return h[n]=l,new i(h,this.length-(t-e)+r.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,r)}sliceString(e,t=this.length,r=`
-`){[e,t]=or(this,e,t);let n="";for(let s=0,o=0;se&&s&&(n+=r),eo&&(n+=a.sliceString(e-o,t-o,r)),o=l+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let r=0,[n,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,s+=t){if(n==o||s==a)return r;let l=this.children[n],c=e.children[s];if(l!=c)return r+l.scanIdentical(c,t);r+=l.length+1}}static from(e,t=e.reduce((r,n)=>r+n.length+1,-1)){let r=0;for(let d of e)r+=d.lines;if(r<32){let d=[];for(let m of e)m.flatten(d);return new Ue(d,t)}let n=Math.max(32,r>>5),s=n<<1,o=n>>1,a=[],l=0,c=-1,h=[];function u(d){let m;if(d.lines>s&&d instanceof i)for(let p of d.children)u(p);else d.lines>o&&(l>o||!l)?(f(),a.push(d)):d instanceof Ue&&l&&(m=h[h.length-1])instanceof Ue&&d.lines+m.lines<=32?(l+=d.lines,c+=d.length+1,h[h.length-1]=new Ue(m.text.concat(d.text),m.length+1+d.length)):(l+d.lines>n&&f(),l+=d.lines,c+=d.length+1,h.push(d))}function f(){l!=0&&(a.push(h.length==1?h[0]:i.from(h,c)),c=-1,l=h.length=0)}for(let d of e)u(d);return f(),a.length==1?a[0]:new i(a,t)}};I.empty=new Ue([""],0);function Yy(i){let e=-1;for(let t of i)e+=t.length+1;return e}function _s(i,e,t=0,r=1e9){for(let n=0,s=0,o=!0;s=t&&(l>r&&(a=a.slice(0,r-n)),n0?1:(e instanceof Ue?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let r=this.nodes.length-1,n=this.nodes[r],s=this.offsets[r],o=s>>1,a=n instanceof Ue?n.text.length:n.children.length;if(o==(t>0?a:0)){if(r==0)return this.done=!0,this.value="",this;t>0&&this.offsets[r-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[r]+=t,e==0)return this.lineBreak=!0,this.value=`
-`,this;e--}else if(n instanceof Ue){let l=n.text[o+(t<0?-1:0)];if(this.offsets[r]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=n.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[r]+=t):(t<0&&this.offsets[r]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof Ue?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Ds=class{constructor(e,t,r){this.value="",this.done=!1,this.cursor=new ki(e,t>r?-1:1),this.pos=t>r?e.length:0,this.from=Math.min(t,r),this.to=Math.max(t,r)}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 r=t<0?this.pos-this.from:this.to-this.pos;e>r&&(e=r),r-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=r?n:t<0?n.slice(n.length-r):n.slice(0,r),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!=""}},Ls=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:r,value:n}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):r?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(I.prototype[Symbol.iterator]=function(){return this.iter()},ki.prototype[Symbol.iterator]=Ds.prototype[Symbol.iterator]=Ls.prototype[Symbol.iterator]=function(){return this});var bl=class{constructor(e,t,r,n){this.from=e,this.to=t,this.number=r,this.text=n}get length(){return this.to-this.from}};function or(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}var rr="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(i=>i?parseInt(i,36):1);for(let i=1;ii)return rr[e-1]<=i;return!1}function Sf(i){return i>=127462&&i<=127487}var kf=8205;function de(i,e,t=!0,r=!0){return(t?Af:Jy)(i,e,r)}function Af(i,e,t){if(e==i.length)return e;e&&Qf(i.charCodeAt(e))&&Mf(i.charCodeAt(e-1))&&e--;let r=ue(i,e);for(e+=Qe(r);e=0&&Sf(ue(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Jy(i,e,t){for(;e>0;){let r=Af(i,e-2,t);if(r=56320&&i<57344}function Mf(i){return i>=55296&&i<56320}function ue(i,e){let t=i.charCodeAt(e);if(!Mf(t)||e+1==i.length)return t;let r=i.charCodeAt(e+1);return Qf(r)?(t-55296<<10)+(r-56320)+65536:t}function Jr(i){return i<=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i>>10)+55296,(i&1023)+56320))}function Qe(i){return i<65536?1:2}var wl=/\r\n?|\n/,Oe=function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i}(Oe||(Oe={})),Vt=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-n);s+=a}else{if(r!=Oe.Simple&&c>=e&&(r==Oe.TrackDel&&ne||r==Oe.TrackBefore&&ne))return null;if(c>e||c==e&&t<0&&!a)return e==n||t<0?s:s+l;s+=l}n=c}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return s}touchesRange(e,t=e){for(let r=0,n=0;r=0&&n<=t&&a>=e)return nt?"cover":!0;n=a}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}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 i(e)}static create(e){return new i(e)}},Me=class i extends Vt{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 vl(this,(t,r,n,s,o)=>e=e.replace(n,n+(r-t),o),!1),e}mapDesc(e,t=!1){return xl(this,e,t,!0)}invert(e){let t=this.sections.slice(),r=[];for(let n=0,s=0;n=0){t[n]=a,t[n+1]=o;let l=n>>1;for(;r.length0&&Yt(r,t,s.text),s.forward(h),a+=h}let c=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,r){let n=[],s=[],o=0,a=null;function l(h=!1){if(!h&&!n.length)return;of||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let m=d?typeof d=="string"?I.of(d.split(r||wl)):d:I.empty,p=m.length;if(u==f&&p==0)return;uo&&Pe(n,u-o,-1),Pe(n,f-u,p),Yt(s,n,m),o=f}}return c(e),l(!a),a}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],r=[];for(let n=0;na&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;r.length=0&&t<=0&&t==i[n+1]?i[n]+=e:e==0&&i[n]==0?i[n+1]+=t:r?(i[n]+=e,i[n+1]+=t):i.push(e,t)}function Yt(i,e,t){if(t.length==0)return;let r=e.length-2>>1;if(r>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)a=i.sections[o++],l=i.sections[o++];e(n,c,s,h,u),n=c,s=h}}}function xl(i,e,t,r=!1){let n=[],s=r?[]:null,o=new Ti(i),a=new Ti(e);for(let l=-1;;)if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);Pe(n,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let c=0,h=o.len;for(;h;)if(a.ins==-1){let u=Math.min(h,a.len);c+=u,h-=u,a.forward(u)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||r.length>c),s.forward2(l),o.forward(l)}}}}var Ti=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?I.empty:e[t]}textBit(e){let{inserted:t}=this.set,r=this.i-2>>1;return r>=t.length&&!e?I.empty:t[r].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)}},tr=class i{constructor(e,t,r){this.from=e,this.to=t,this.flags=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let r,n;return this.empty?r=n=e.mapPos(this.from,t):(r=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),r==this.from&&n==this.to?this:new i(r,n,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return k.range(e,t);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return k.range(this.anchor,r)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}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 k.range(e.anchor,e.head)}static create(e,t,r){return new i(e,t,r)}},k=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(r=>r.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let r=0;re.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 i(e.ranges.map(t=>tr.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.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 r=0,n=0;ne?8:0)|s)}static normalized(e,t=0){let r=e[t];e.sort((n,s)=>n.from-s.from),t=e.indexOf(r);for(let n=1;ns.head?i.range(l,a):i.range(a,l))}}return new i(e,t)}};function Df(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var Ml=0,A=class i{constructor(e,t,r,n,s){this.combine=e,this.compareInput=t,this.compare=r,this.isStatic=n,this.id=Ml++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,r)=>t===r),e.compare||(e.combine?(t,r)=>t===r:_l),!!e.static,e.enables)}of(e){return new nr([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new nr(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new nr(e,this,2,t)}from(e,t){return t||(t=r=>r),this.compute([e],r=>t(r.field(e)))}};function _l(i,e){return i==e||i.length==e.length&&i.every((t,r)=>t===e[r])}var nr=class{constructor(e,t,r,n){this.dependencies=e,this.facet=t,this.type=r,this.value=n,this.id=Ml++}dynamicSlot(e){var t;let r=this.value,n=this.facet.compareInput,s=this.id,o=e[s]>>1,a=this.type==2,l=!1,c=!1,h=[];for(let u of this.dependencies)u=="doc"?l=!0:u=="selection"?c=!0:(((t=e[u.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[u.id]);return{create(u){return u.values[o]=r(u),1},update(u,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||Sl(u,h)){let d=r(u);if(a?!Tf(d,u.values[o],n):!n(d,u.values[o]))return u.values[o]=d,1}return 0},reconfigure:(u,f)=>{let d,m=f.config.address[s];if(m!=null){let p=$s(f,m);if(this.dependencies.every(g=>g instanceof A?f.facet(g)===u.facet(g):g instanceof ie?f.field(g,!1)==u.field(g,!1):!0)||(a?Tf(d=r(u),p,n):n(d=r(u),p)))return u.values[o]=p,0}else d=r(u);return u.values[o]=d,1}}}};function Tf(i,e,t){if(i.length!=e.length)return!1;for(let r=0;ri[l.id]),n=t.map(l=>l.type),s=r.filter(l=>!(l&1)),o=i[e.id]>>1;function a(l){let c=[];for(let h=0;hr===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Pf).find(r=>r.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:r=>(r.values[t]=this.create(r),1),update:(r,n)=>{let s=r.values[t],o=this.updateF(s,n);return this.compareF(s,o)?0:(r.values[t]=o,1)},reconfigure:(r,n)=>n.config.address[this.id]!=null?(r.values[t]=n.field(this),0):(r.values[t]=this.create(r),1)}}init(e){return[this,Pf.of({field:this,create:e})]}get extension(){return this}},xi={lowest:4,low:3,default:2,high:1,highest:0};function Fr(i){return e=>new qs(e,i)}var _e={highest:Fr(xi.highest),high:Fr(xi.high),default:Fr(xi.default),low:Fr(xi.low),lowest:Fr(xi.lowest)},qs=class{constructor(e,t){this.inner=e,this.prec=t}},$t=class i{of(e){return new Gr(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Gr=class{constructor(e,t){this.compartment=e,this.inner=t}},Vs=class i{constructor(e,t,r,n,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=r,this.address=n,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,r){let n=[],s=Object.create(null),o=new Map;for(let f of eb(e,t,o))f instanceof ie?n.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of n)a[f.id]=c.length<<1,c.push(d=>f.slot(d));let h=r?.config.facets;for(let f in s){let d=s[f],m=d[0].facet,p=h&&h[f]||[];if(d.every(g=>g.type==0))if(a[m.id]=l.length<<1|1,_l(p,d))l.push(r.facet(m));else{let g=m.combine(d.map(O=>O.value));l.push(r&&m.compare(g,r.facet(m))?r.facet(m):g)}else{for(let g of d)g.type==0?(a[g.id]=l.length<<1|1,l.push(g.value)):(a[g.id]=c.length<<1,c.push(O=>g.dynamicSlot(O)));a[m.id]=c.length<<1,c.push(g=>Ky(g,m,d))}}let u=c.map(f=>f(a));return new i(e,o,u,a,l,s)}};function eb(i,e,t){let r=[[],[],[],[],[]],n=new Map;function s(o,a){let l=n.get(o);if(l!=null){if(l<=a)return;let c=r[l].indexOf(o);c>-1&&r[l].splice(c,1),o instanceof Gr&&t.delete(o.compartment)}if(n.set(o,a),Array.isArray(o))for(let c of o)s(c,a);else if(o instanceof Gr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,a)}else if(o instanceof qs)s(o.inner,o.prec);else if(o instanceof ie)r[a].push(o),o.provides&&s(o.provides,a);else if(o instanceof nr)r[a].push(o),o.facet.extensions&&s(o.facet.extensions,xi.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,a)}}return s(i,xi.default),r.reduce((o,a)=>o.concat(a))}function Hr(i,e){if(e&1)return 2;let t=e>>1,r=i.status[t];if(r==4)throw new Error("Cyclic dependency between fields and/or facets");if(r&2)return r;i.status[t]=4;let n=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|n}function $s(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var Lf=A.define(),kl=A.define({combine:i=>i.some(e=>e),static:!0}),qf=A.define({combine:i=>i.length?i[0]:void 0,static:!0}),Vf=A.define(),$f=A.define(),Bf=A.define(),Xf=A.define({combine:i=>i.length?i[0]:!1}),Be=class{constructor(e,t){this.type=e,this.value=t}static define(){return new Tl}},Tl=class{of(e){return new Be(this,e)}},Pl=class{constructor(e){this.map=e}of(e){return new _(this,e)}},_=class i{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 i(this.type,t)}is(e){return this.type==e}static define(e={}){return new Pl(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let r=[];for(let n of e){let s=n.map(t);s&&r.push(s)}return r}};_.reconfigure=_.define();_.appendConfig=_.define();var fe=class i{constructor(e,t,r,n,s,o){this.startState=e,this.changes=t,this.selection=r,this.effects=n,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,r&&Df(r,t.newLength),s.some(a=>a.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,r,n,s,o){return new i(e,t,r,n,s,o)}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(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};fe.time=Be.define();fe.userEvent=Be.define();fe.addToHistory=Be.define();fe.remote=Be.define();function tb(i,e){let t=[];for(let r=0,n=0;;){let s,o;if(r=i[r]))s=i[r++],o=i[r++];else if(n=0;n--){let s=r[n](i);s instanceof fe?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof fe?i=s[0]:i=If(e,sr(s),!1)}return i}function rb(i){let e=i.startState,t=e.facet(Bf),r=i;for(let n=t.length-1;n>=0;n--){let s=t[n](i);s&&Object.keys(s).length&&(r=Nf(r,Cl(e,s,i.changes.newLength),!0))}return r==i?i:fe.create(e,i.changes,i.selection,r.effects,r.annotations,r.scrollIntoView)}var nb=[];function sr(i){return i==null?nb:Array.isArray(i)?i:[i]}var H=function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i}(H||(H={})),sb=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,El;try{El=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ob(i){if(El)return El.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||sb.test(t)))return!0}return!1}function ab(i){return e=>{if(!/\S/.test(e))return H.Space;if(ob(e))return H.Word;for(let t=0;t-1)return H.Word;return H.Other}}var j=class i{constructor(e,t,r,n,s,o){this.config=e,this.doc=t,this.selection=r,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let a=0;an.set(c,l)),t=null),n.set(a.value.compartment,a.value.extension)):a.is(_.reconfigure)?(t=null,r=a.value):a.is(_.appendConfig)&&(t=null,r=sr(r).concat(a.value));let s;t?s=e.startState.values.slice():(t=Vs.resolve(r,n,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(kl)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(a,l)=>l.update(a,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:k.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,r=e(t.ranges[0]),n=this.changes(r.changes),s=[r.range],o=sr(r.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return i.create({doc:e.doc,selection:k.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=Vs.resolve(e.extensions||[],new Map),r=e.doc instanceof I?e.doc:I.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||wl)),n=e.selection?e.selection instanceof k?e.selection:k.single(e.selection.anchor,e.selection.head):k.single(0);return Df(n,r.length),t.staticFacet(kl)||(n=n.asSingle()),new i(t,r,n,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||`
-`}get readOnly(){return this.facet(Xf)}phrase(e,...t){for(let r of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(r,e)){e=r[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(r,n)=>{if(n=="$")return"$";let s=+(n||1);return!s||s>t.length?r:t[s-1]})),e}languageDataAt(e,t,r=-1){let n=[];for(let s of this.facet(Lf))for(let o of s(this,t,r))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){return ab(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:r,length:n}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-r,a=e-r;for(;o>0;){let l=de(t,o,!1);if(s(t.slice(l,o))!=H.Word)break;o=l}for(;ai.length?i[0]:4});j.lineSeparator=qf;j.readOnly=Xf;j.phrases=A.define({compare(i,e){let t=Object.keys(i),r=Object.keys(e);return t.length==r.length&&t.every(n=>i[n]==e[n])}});j.languageData=Lf;j.changeFilter=Vf;j.transactionFilter=$f;j.transactionExtender=Bf;$t.reconfigure=_.define();function Ce(i,e,t={}){let r={};for(let n of i)for(let s of Object.keys(n)){let o=n[s],a=r[s];if(a===void 0)r[s]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,s))r[s]=t[s](a,o);else throw new Error("Config merge conflict for field "+s)}for(let n in e)r[n]===void 0&&(r[n]=e[n]);return r}var ht=class{eq(e){return this==e}range(e,t=e){return Yr.create(e,t,this)}};ht.prototype.startSide=ht.prototype.endSide=0;ht.prototype.point=!1;ht.prototype.mapMode=Oe.TrackDel;var Yr=class i{constructor(e,t,r){this.from=e,this.to=t,this.value=r}static create(e,t,r){return new i(e,t,r)}};function Rl(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var Al=class i{constructor(e,t,r,n){this.from=e,this.to=t,this.value=r,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,r,n=0){let s=r?this.to:this.from;for(let o=n,a=s.length;;){if(o==a)return o;let l=o+a>>1,c=s[l]-e||(r?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,r,n){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(r,1e9,!1,s);sd||f==d&&c.startSide>0&&c.endSide<=0)continue;(d-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,d-f)),r.push(c),n.push(f-o),s.push(d-o))}return{mapped:r.length?new i(n,s,r,a):null,pos:o}}},z=class i{constructor(e,t,r,n){this.chunkPos=e,this.chunk=t,this.nextLayer=r,this.maxPoint=n}static create(e,t,r,n){return new i(e,t,r,n)}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:r=!1,filterFrom:n=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(r&&(t=t.slice().sort(Rl)),this.isEmpty)return t.length?i.of(t):this;let a=new Bs(this,null,-1).goto(0),l=0,c=[],h=new ut;for(;a.value||l=0){let u=t[l++];h.addInner(u.from,u.to,u.value)||c.push(u)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||sa.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,r)===!1)return}this.nextLayer.between(e,t,r)}}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,r,n,s=-1){let o=e.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),a=t.filter(u=>u.maxPoint>0||!u.isEmpty&&u.maxPoint>=s),l=Cf(o,a,r),c=new Si(o,l,s),h=new Si(a,l,s);r.iterGaps((u,f,d)=>Ef(c,u,h,f,d,n)),r.empty&&r.length==0&&Ef(c,0,h,0,0,n)}static eq(e,t,r=0,n){n==null&&(n=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let a=Cf(s,o),l=new Si(s,a,0).goto(r),c=new Si(o,a,0).goto(r);for(;;){if(l.to!=c.to||!Ql(l.active,c.active)||l.point&&(!c.point||!l.point.eq(c.point)))return!1;if(l.to>n)return!0;l.next(),c.next()}}static spans(e,t,r,n,s=-1){let o=new Si(e,null,s).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,r);if(o.point){let h=o.activeForPoint(o.to),u=o.pointFroma&&(n.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>r)return l+(o.point&&o.to>r?1:0);a=o.to,o.next()}}static of(e,t=!1){let r=new ut;for(let n of e instanceof Yr?[e]:t?lb(e):e)r.add(n.from,n.to,n.value);return r.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let r=e.length-2;r>=0;r--)for(let n=e[r];n!=i.empty;n=n.nextLayer)t=new i(n.chunkPos,n.chunk,t,Math.max(n.maxPoint,t.maxPoint));return t}};z.empty=new z([],[],null,-1);function lb(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(Rl);e=r}return i}z.empty.nextLayer=z.empty;var ut=class i{finishChunk(e){this.chunks.push(new Al(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=[])}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}add(e,t,r){this.addInner(e,t,r)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,r)}addInner(e,t,r){let n=e-this.lastTo||r.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||r.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<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=r,this.lastFrom=e,this.lastTo=t,this.value.push(r),r.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 r=t.value.length-1;return this.last=t.value[r],this.lastFrom=t.from[r]+e,this.lastTo=t.to[r]+e,!0}finish(){return this.finishInner(z.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=z.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Cf(i,e,t){let r=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=r&&n.push(new Bs(o,t,r,s));return n.length==1?n[0]:new i(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let r of this.heap)r.goto(e,t);for(let r=this.heap.length>>1;r>=0;r--)yl(this.heap,r);return this.next(),this}forward(e,t){for(let r of this.heap)r.forward(e,t);for(let r=this.heap.length>>1;r>=0;r--)yl(this.heap,r);(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(),yl(this.heap,0)}}};function yl(i,e){for(let t=i[e];;){let r=(e<<1)+1;if(r>=i.length)break;let n=i[r];if(r+1=0&&(n=i[r+1],r++),t.compare(n)<0)break;i[r]=t,i[e]=n,e=r}}var Si=class{constructor(e,t,r){this.minPoint=r,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,r)}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){Qs(this.active,e),Qs(this.activeTo,e),Qs(this.activeRank,e),this.minActive=Rf(this.active,this.activeTo)}addActive(e){let t=0,{value:r,to:n,rank:s}=this.cursor;for(;t0;)t++;Ms(this.active,t,r),Ms(this.activeTo,t,n),Ms(this.activeRank,t,s),e&&Ms(e,t,this.cursor.from),this.minActive=Rf(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let r=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),r&&Qs(r,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(r),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&r[n]=0&&!(this.activeRank[r]e||this.activeTo[r]==e&&this.active[r].endSide>=this.point.endSide)&&t.push(this.active[r]);return t.reverse()}openEnd(e){let t=0;for(let r=this.activeTo.length-1;r>=0&&this.activeTo[r]>e;r--)t++;return t}};function Ef(i,e,t,r,n,s){i.goto(e),t.goto(r);let o=r+n,a=r,l=r-e;for(;;){let c=i.to+l-t.to||i.endSide-t.endSide,h=c<0?i.to+l:t.to,u=Math.min(h,o);if(i.point||t.point?i.point&&t.point&&(i.point==t.point||i.point.eq(t.point))&&Ql(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(a,u,i.point,t.point):u>a&&!Ql(i.active,t.active)&&s.compareRange(a,u,i.active,t.active),h>o)break;a=h,c<=0&&i.next(),c>=0&&t.next()}}function Ql(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;r--)i[r+1]=i[r];i[e]=t}function Rf(i,e){let t=-1,r=1e9;for(let n=0;n=e)return n;if(n==i.length)break;s+=i.charCodeAt(n)==9?t-s%t:1,n=de(i,n)}return r===!0?-1:i.length}var Dl="\u037C",Wf=typeof Symbol>"u"?"__"+Dl:Symbol.for(Dl),Ll=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),jf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},rt=class{constructor(e,t){this.rules=[];let{finish:r}=t||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,a,l,c){let h=[],u=/^@(\w+)\b/.exec(o[0]),f=u&&u[1]=="keyframes";if(u&&a==null)return l.push(o[0]+";");for(let d in a){let m=a[d];if(/&/.test(d))s(d.split(/,\s*/).map(p=>o.map(g=>p.replace(/&/,g))).reduce((p,g)=>p.concat(g)),m,l);else if(m&&typeof m=="object"){if(!u)throw new RangeError("The value of a property ("+d+") should be a primitive value.");s(n(d),m,h,f)}else m!=null&&h.push(d.replace(/_.*/,"").replace(/[A-Z]/g,p=>"-"+p.toLowerCase())+": "+m+";")}(h.length||f)&&l.push((r&&!u&&!c?o.map(r):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(n(o),e[o],this.rules)}getRules(){return this.rules.join(`
-`)}static newName(){let e=jf[Wf]||1;return jf[Wf]=e+1,Dl+e.toString(36)}static mount(e,t,r){let n=e[Ll],s=r&&r.nonce;n?s&&n.setNonce(s):n=new ql(e,s),n.mount(Array.isArray(t)?t:[t],e)}},zf=new Map,ql=class{constructor(e,t){let r=e.ownerDocument||e,n=r.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let s=zf.get(r);if(s)return e[Ll]=s;this.sheet=new n.CSSStyleSheet,zf.set(r,this)}else this.styleTag=r.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Ll]=this}mount(e,t){let r=this.sheet,n=0,s=0;for(let o=0;o-1&&(this.modules.splice(l,1),s--,l=-1),l==-1){if(this.modules.splice(s++,0,a),r)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},cb=typeof navigator<"u"&&/Mac/.test(navigator.platform),hb=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(pe=0;pe<10;pe++)Xt[48+pe]=Xt[96+pe]=String(pe);var pe;for(pe=1;pe<=24;pe++)Xt[pe+111]="F"+pe;var pe;for(pe=65;pe<=90;pe++)Xt[pe]=String.fromCharCode(pe+32),ar[pe]=String.fromCharCode(pe);var pe;for(Ns in Xt)ar.hasOwnProperty(Ns)||(ar[Ns]=Xt[Ns]);var Ns;function Uf(i){var e=cb&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||hb&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?ar:Xt)[i.keyCode]||i.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 dn(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function jl(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function ub(i){let e=i.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Zs(i,e){if(!e.anchorNode)return!1;try{return jl(i,e.anchorNode)}catch{return!1}}function pn(i){return i.nodeType==3?Ei(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function on(i,e,t,r){return t?Ff(i,e,t,r,-1)||Ff(i,e,t,r,1):!1}function Ci(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function ro(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function Ff(i,e,t,r,n){for(;;){if(i==t&&e==r)return!0;if(e==(n<0?0:Nt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Ci(i)+(n<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(n<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=n<0?Nt(i):0}else return!1}}function Nt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function _c(i,e){let t=e?i.left:i.right;return{left:t,right:t,top:i.top,bottom:i.bottom}}function fb(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function _d(i,e){let t=e.width/i.offsetWidth,r=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(e.height-i.offsetHeight)<1)&&(r=1),{scaleX:t,scaleY:r}}function db(i,e,t,r,n,s,o,a){let l=i.ownerDocument,c=l.defaultView||window;for(let h=i,u=!1;h&&!u;)if(h.nodeType==1){let f,d=h==l.body,m=1,p=1;if(d)f=fb(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(u=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let y=h.getBoundingClientRect();({scaleX:m,scaleY:p}=_d(h,y)),f={left:y.left,right:y.left+h.clientWidth*m,top:y.top,bottom:y.top+h.clientHeight*p}}let g=0,O=0;if(n=="nearest")e.top0&&e.bottom>f.bottom+O&&(O=e.bottom-f.bottom+O+o)):e.bottom>f.bottom&&(O=e.bottom-f.bottom+o,t<0&&e.top-O0&&e.right>f.right+g&&(g=e.right-f.right+g+s)):e.right>f.right&&(g=e.right-f.right+s,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}var zl=class{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){let{anchorNode:t,focusNode:r}=e;this.set(t,Math.min(e.anchorOffset,t?Nt(t):0),r,Math.min(e.focusOffset,r?Nt(r):0))}set(e,t,r,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=r,this.focusOffset=n}},lr=null;function Dd(i){if(i.setActive)return i.setActive();if(lr)return i.focus(lr);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(lr==null?{get preventScroll(){return lr={preventScroll:!0},!0}}:void 0),!lr){lr=!1;for(let t=0;tMath.max(1,i.scrollHeight-i.clientHeight-4)}function Vd(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&r>0)return{node:t,offset:r};if(t.nodeType==1&&r>0){if(t.contentEditable=="false")return null;t=t.childNodes[r-1],r=Nt(t)}else if(t.parentNode&&!ro(t))r=Ci(t),t=t.parentNode;else return null}}function $d(i,e){for(let t=i,r=e;;){if(t.nodeType==3&&rt)return u.domBoundsAround(e,t,c);if(f>=e&&n==-1&&(n=l,s=c),c>t&&u.dom.parentNode==this.dom){o=l,a=h;break}h=f,c=f+u.breakAfter}return{from:s,to:a<0?r+this.length:a,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=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,r=Dc){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let r=this.children[--this.i];this.pos-=r.length+r.breakAfter}}};function Bd(i,e,t,r,n,s,o,a,l){let{children:c}=i,h=c.length?c[e]:null,u=s.length?s[s.length-1]:null,f=u?u.breakAfter:o;if(!(e==r&&h&&!o&&!f&&s.length<2&&h.merge(t,n,s.length?u:null,t==0,a,l))){if(r0&&(!o&&s.length&&h.merge(t,h.length,s[0],!1,a,0)?h.breakAfter=s.shift().breakAfter:(t2),Q={mac:Jf||/Mac/.test(Xe.platform),windows:/Win/.test(Xe.platform),linux:/Linux|X11/.test(Xe.platform),ie:bo,ie_version:Nd?Ul.documentMode||6:Hl?+Hl[1]:Fl?+Fl[1]:0,gecko:Yf,gecko_version:Yf?+(/Firefox\/(\d+)/.exec(Xe.userAgent)||[0,0])[1]:0,chrome:!!Vl,chrome_version:Vl?+Vl[1]:0,ios:Jf,android:/Android\b/.test(Xe.userAgent),webkit:Zf,safari:Id,webkit_version:Zf?+(/\bAppleWebKit\/(\d+)/.exec(Xe.userAgent)||[0,0])[1]:0,tabSize:Ul.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},Ob=256,kt=class i extends K{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,r){return this.flags&8||r&&(!(r instanceof i)||this.length-(t-e)+r.length>Ob||r.flags&8)?!1:(this.text=this.text.slice(0,e)+(r?r.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new i(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new De(this.dom,e)}domBoundsAround(e,t,r){return{from:r,to:r+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return yb(this.dom,e,t)}},ei=class i extends K{constructor(e,t=[],r=0){super(),this.mark=e,this.children=t,this.length=r;for(let n of t)n.setParent(this)}setAttrs(e){if(Ld(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}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,r,n,s,o){return r&&(!(r instanceof i&&r.mark.eq(this.mark))||e&&s<=0||te&&t.push(r=e&&(n=s),r=l,s++}let o=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new i(this.mark,t,o)}domAtPos(e){return Wd(this,e)}coordsAt(e,t){return zd(this,e,t)}};function yb(i,e,t){let r=i.nodeValue.length;e>r&&(e=r);let n=e,s=e,o=0;e==0&&t<0||e==r&&t>=0?Q.chrome||Q.gecko||(e?(n--,o=1):s=0)?0:a.length-1];return Q.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?_c(l,o<0):l||null}var mn=class i extends K{static create(e,t,r){return new i(e,t,r)}constructor(e,t,r){super(),this.widget=e,this.length=t,this.side=r,this.prevWidget=null}split(e){let t=i.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.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,r,n,s,o){return r&&(!(r instanceof i)||!this.widget.compare(r.widget)||e>0&&s<=0||t0)?De.before(this.dom):De.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let r=this.widget.coordsAt(this.dom,e,t);if(r)return r;let n=this.dom.getClientRects(),s=null;if(!n.length)return null;let o=this.side?this.side<0:e>0;for(let a=o?n.length-1:0;s=n[a],!(e>0?a==0:a==n.length-1||s.top0?De.before(this.dom):De.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return I.empty}get isHidden(){return!0}};kt.prototype.children=mn.prototype.children=gn.prototype.children=Dc;function Wd(i,e){let t=i.dom,{children:r}=i,n=0;for(let s=0;ns&&e0;s--){let o=r[s-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let s=n;s0&&e instanceof ei&&n.length&&(r=n[n.length-1])instanceof ei&&r.mark.eq(e.mark)?jd(r,e.children[0],t-1):(n.push(e),e.setParent(i)),i.length+=e.length}function zd(i,e,t){let r=null,n=-1,s=null,o=-1;function a(c,h){for(let u=0,f=0;u=h&&(d.children.length?a(d,h-f):(!s||s.isHidden&&t>0)&&(m>h||f==m&&d.getSide()>0)?(s=d,o=h-f):(f-1?1:0)!=n.length-(t&&n.indexOf(t)>-1?1:0))return!1;for(let s of r)if(s!=t&&(n.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function Yl(i,e,t){let r=!1;if(e)for(let n in e)t&&n in t||(r=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(t)for(let n in t)e&&e[n]==t[n]||(r=!0,n=="style"?i.style.cssText=t[n]:i.setAttribute(n,t[n]));return r}function wb(i){let e=Object.create(null);for(let t=0;t0&&this.children[r-1].length==0;)this.children[--r].destroy();return this.children.length=r,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){so(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){jd(this,e,t)}addLineDeco(e){let t=e.spec.attributes,r=e.spec.class;t&&(this.attrs=Gl(t,this.attrs||{})),r&&(this.attrs=Gl({class:r},this.attrs||{}))}domAtPos(e){return Wd(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var r;this.dom?this.flags&4&&(Ld(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&&(Yl(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let n=this.dom.lastChild;for(;n&&K.get(n)instanceof ei;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((r=K.get(n))===null||r===void 0?void 0:r.isEditable)==!1&&(!Q.ios||!this.children.some(s=>s instanceof kt))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let r of this.children){if(!(r instanceof kt)||/[^ -~]/.test(r.text))return null;let n=pn(r.dom);if(n.length!=1)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let r=zd(this,e,t);if(!this.children.length&&r&&this.parent){let{heightOracle:n}=this.parent.view.viewState,s=r.bottom-r.top;if(Math.abs(s-n.lineHeight)<2&&n.textHeight=t){if(s instanceof i)return s;if(o>t)break}n=o+s.breakAfter}return null}},Pi=class i extends K{constructor(e,t,r){super(),this.widget=e,this.length=t,this.deco=r,this.breakAfter=0,this.prevWidget=null}merge(e,t,r,n,s,o){return r&&(!(r instanceof i)||!this.widget.compare(r.widget)||e>0&&s<=0||t0}},Ne=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,r){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},Le=function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i}(Le||(Le={})),M=class extends ht{constructor(e,t,r,n){super(),this.startSide=e,this.endSide=t,this.widget=r,this.spec=n}get heightRelevant(){return!1}static mark(e){return new On(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),r=!!e.block;return t+=r&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new ti(e,t,t,r,e.widget||null,!1)}static replace(e){let t=!!e.block,r,n;if(e.isBlockGap)r=-5e8,n=4e8;else{let{start:s,end:o}=Ud(e,t);r=(s?t?-3e8:-1:5e8)-1,n=(o?t?2e8:1:-6e8)+1}return new ti(e,r,n,t,e.widget||null,!0)}static line(e){return new yn(e)}static set(e,t=!1){return z.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};M.none=z.empty;var On=class i extends M{constructor(e){let{start:t,end:r}=Ud(e);super(t?-1:5e8,r?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,r;return this==e||e instanceof i&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((r=e.attrs)===null||r===void 0?void 0:r.class))&&so(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};On.prototype.point=!1;var yn=class i extends M{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&so(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)}};yn.prototype.mapMode=Oe.TrackBefore;yn.prototype.point=!0;var ti=class i extends M{constructor(e,t,r,n,s,o){super(t,r,s,e),this.block=n,this.isReplace=o,this.mapMode=n?t<=0?Oe.TrackBefore:Oe.TrackAfter:Oe.TrackDel}get type(){return this.startSide!=this.endSide?Le.WidgetRange:this.startSide<=0?Le.WidgetBefore:Le.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&vb(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)}};ti.prototype.point=!0;function Ud(i,e=!1){let{inclusiveStart:t,inclusiveEnd:r}=i;return t==null&&(t=i.inclusive),r==null&&(r=i.inclusive),{start:t??e,end:r??e}}function vb(i,e){return i==e||!!(i&&e&&i.compare(e))}function Zl(i,e,t,r=0){let n=t.length-1;n>=0&&t[n]+r>=i?t[n]=Math.max(t[n],e):t.push(i,e)}var an=class i{constructor(e,t,r,n){this.doc=e,this.pos=t,this.end=r,this.disallowBlockEffectsFor=n,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof Pi&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ve),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Is(new gn(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof Pi)&&this.getLine()}buildText(e,t,r){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:o,done:a}=this.cursor.next(this.skip);if(this.skip=0,a)throw new Error("Ran out of text content when drawing inline views");if(o){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=s,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-r)),this.getLine().append(Is(new kt(this.text.slice(this.textOff,this.textOff+n)),t),r),this.atCursorPos=!0,this.textOff+=n,e-=n,r=0}}span(e,t,r,n){this.buildText(t-e,r,n),this.pos=t,this.openStart<0&&(this.openStart=n)}point(e,t,r,n,s,o){if(this.disallowBlockEffectsFor[o]&&r instanceof ti){if(r.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 a=t-e;if(r instanceof ti)if(r.block)r.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Pi(r.widget||ii.block,a,r));else{let l=mn.create(r.widget||ii.inline,a,a?0:r.startSide),c=this.atCursorPos&&!l.isEditable&&s<=n.length&&(e0),h=!l.isEditable&&(en.length||r.startSide<=0),u=this.getLine();this.pendingBuffer==2&&!c&&!l.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),c&&(u.append(Is(new gn(1),n),s),s=n.length+Math.max(0,s-n.length)),u.append(Is(l,n),s),this.atCursorPos=h,this.pendingBuffer=h?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(r);a&&(this.textOff+a<=this.text.length?this.textOff+=a:(this.skip+=a-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,r,n,s){let o=new i(e,t,r,s);return o.openEnd=z.spans(n,t,r,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};function Is(i,e){for(let t of e)i=new ei(t,[i],i.length);return i}var ii=class extends Ne{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}get isHidden(){return!0}};ii.inline=new ii("span");ii.block=new ii("div");var G=function(i){return i[i.LTR=0]="LTR",i[i.RTL=1]="RTL",i}(G||(G={})),Ri=G.LTR,Lc=G.RTL;function Fd(i){let e=[];for(let t=0;t=t){if(a.level==r)return o;(s<0||(n!=0?n<0?a.fromt:e[s].level>a.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function Gd(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;p-=3)if(wt[p+1]==-d){let g=wt[p+2],O=g&2?n:g&4?g&1?s:n:0;O&&(Z[u]=Z[wt[p]]=O),a=p;break}}else{if(wt.length==189)break;wt[a++]=u,wt[a++]=f,wt[a++]=l}else if((m=Z[u])==2||m==1){let p=m==n;l=p?0:1;for(let g=a-3;g>=0;g-=3){let O=wt[g+2];if(O&2)break;if(p)wt[g+2]|=2;else{if(O&4)break;wt[g+2]|=4}}}}}function Cb(i,e,t,r){for(let n=0,s=r;n<=t.length;n++){let o=n?t[n-1].to:i,a=nl;)m==g&&(m=t[--p].from,g=p?t[p-1].to:i),Z[--m]=d;l=h}else s=c,l++}}}function Kl(i,e,t,r,n,s,o){let a=r%2?2:1;if(r%2==n%2)for(let l=e,c=0;ll&&o.push(new xt(l,p.from,d));let g=p.direction==Ri!=!(d%2);ec(i,g?r+1:r,n,p.inner,p.from,p.to,o),l=p.to}m=p.to}else{if(m==t||(h?Z[m]!=a:Z[m]==a))break;m++}f?Kl(i,l,m,r+1,n,f,o):le;){let h=!0,u=!1;if(!c||l>s[c-1].to){let p=Z[l-1];p!=a&&(h=!1,u=p==16)}let f=!h&&a==1?[]:null,d=h?r:r+1,m=l;e:for(;;)if(c&&m==s[c-1].to){if(u)break e;let p=s[--c];if(!h)for(let g=p.from,O=c;;){if(g==e)break e;if(O&&s[O-1].to==g)g=s[--O].from;else{if(Z[g-1]==a)break e;break}}if(f)f.push(p);else{p.toZ.length;)Z[Z.length]=256;let r=[],n=e==Ri?0:1;return ec(i,n,n,t,0,i.length,r),r}function Yd(i){return[new xt(0,i,0)]}var Zd="";function Rb(i,e,t,r,n){var s;let o=r.head-i.from,a=xt.find(e,o,(s=r.bidiLevel)!==null&&s!==void 0?s:-1,r.assoc),l=e[a],c=l.side(n,t);if(o==c){let f=a+=n?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!n,t),c=l.side(n,t)}let h=de(i.text,o,l.forward(n,t));(hl.to)&&(h=c),Zd=i.text.slice(Math.min(o,h),Math.max(o,h));let u=a==(n?e.length-1:0)?null:e[a+(n?1:-1)];return u&&h==c&&u.level+(n?0:1)i.some(e=>e)}),sp=A.define({combine:i=>i.some(e=>e)}),op=A.define(),ln=class i{constructor(e,t="nearest",r="nearest",n=5,s=5,o=!1){this.range=e,this.y=t,this.x=r,this.yMargin=n,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(k.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Ws=_.define({map:(i,e)=>i.map(e)}),ap=_.define();function xe(i,e,t){let r=i.facet(tp);r.length?r[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}var Zt=A.define({combine:i=>i.length?i[0]:!0}),Qb=0,en=A.define(),se=class i{constructor(e,t,r,n,s){this.id=e,this.create=t,this.domEventHandlers=r,this.domEventObservers=n,this.extension=s(this)}static define(e,t){let{eventHandlers:r,eventObservers:n,provide:s,decorations:o}=t||{};return new i(Qb++,e,r,n,a=>{let l=[en.of(a)];return o&&l.push(bn.of(c=>{let h=c.plugin(a);return h?o(h):M.none})),s&&l.push(s(a)),l})}static fromClass(e,t){return i.define(r=>new e(r),t)}},cn=class{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(r){if(xe(t.state,r,"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){xe(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(r){xe(e.state,r,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},lp=A.define(),qc=A.define(),bn=A.define(),cp=A.define(),Vc=A.define(),hp=A.define();function ed(i,e){let t=i.state.facet(hp);if(!t.length)return t;let r=t.map(s=>s instanceof Function?s(i):s),n=[];return z.spans(r,e.from,e.to,{point(){},span(s,o,a,l){let c=s-e.from,h=o-e.from,u=n;for(let f=a.length-1;f>=0;f--,l--){let d=a[f].spec.bidiIsolate,m;if(d==null&&(d=Ab(e.text,c,h)),l>0&&u.length&&(m=u[u.length-1]).to==c&&m.direction==d)m.to=h,u=m.inner;else{let p={from:c,to:h,direction:d,inner:[]};u.push(p),u=p.inner}}}}),n}var up=A.define();function fp(i){let e=0,t=0,r=0,n=0;for(let s of i.state.facet(up)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(r=Math.max(r,o.top)),o.bottom!=null&&(n=Math.max(n,o.bottom)))}return{left:e,right:t,top:r,bottom:n}}var tn=A.define(),St=class i{constructor(e,t,r,n){this.fromA=e,this.toA=t,this.fromB=r,this.toB=n}join(e){return new i(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,r=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>r.toA)){if(n.toAh)break;s+=2}if(!l)return r;new i(l.fromA,l.toA,l.fromB,l.toB).addToSet(r),o=l.toA,a=l.toB}}},oo=class i{constructor(e,t,r){this.view=e,this.state=t,this.transactions=r,this.flags=0,this.startState=e.state,this.changes=Me.empty(this.startState.doc.length);for(let s of r)this.changes=this.changes.compose(s.changes);let n=[];this.changes.iterChangedRanges((s,o,a,l)=>n.push(new St(s,o,a,l))),this.changedRanges=n}static create(e,t,r){return new i(e,t,r)}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}},ao=class extends K{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=M.none,this.lastCompositionAfterCursor=!1,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 ve],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new St(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let r=e.changedRanges;this.minWidth>0&&r.length&&(r.every(({fromA:c,toA:h})=>hthis.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.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?n=this.domChanged.newSel.head:!$b(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let s=n>-1?_b(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:c,to:h}=this.hasComposition;r=new St(c,h,e.changes.mapPos(c,-1),e.changes.mapPos(h,1)).addToSet(r.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Q.ie||Q.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.updateDeco(),l=qb(o,a,e.changes);return r=St.extendWithRanges(r,l),!(this.flags&7)&&r.length==0?!1:(this.updateInner(r,e.startState.doc.length,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,r){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,r);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=Q.chrome||Q.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||n.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to=0?n[o]:null;if(!a)break;let{fromA:l,toA:c,fromB:h,toB:u}=a,f,d,m,p;if(r&&r.range.fromBh){let x=an.build(this.view.state.doc,h,r.range.fromB,this.decorations,this.dynamicDecorationMap),w=an.build(this.view.state.doc,r.range.toB,u,this.decorations,this.dynamicDecorationMap);d=x.breakAtStart,m=x.openStart,p=w.openEnd;let T=this.compositionView(r);w.breakAtStart?T.breakAfter=1:w.content.length&&T.merge(T.length,T.length,w.content[0],!1,w.openStart,0)&&(T.breakAfter=w.content[0].breakAfter,w.content.shift()),x.content.length&&T.merge(0,0,x.content[x.content.length-1],!0,0,x.openEnd)&&x.content.pop(),f=x.content.concat(T).concat(w.content)}else({content:f,breakAtStart:d,openStart:m,openEnd:p}=an.build(this.view.state.doc,h,u,this.decorations,this.dynamicDecorationMap));let{i:g,off:O}=s.findPos(c,1),{i:y,off:v}=s.findPos(l,-1);Bd(this,y,v,g,O,f,d,m,p)}r&&this.fixCompositionDOM(r)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let r of t.effects)r.is(ap)&&(this.editContextFormatting=r.value)}compositionView(e){let t=new kt(e.text.nodeValue);t.flags|=8;for(let{deco:n}of e.marks)t=new ei(n,[t],t.length);let r=new ve;return r.append(t,0),r}fixCompositionDOM(e){let t=(s,o)=>{o.flags|=8|(o.children.some(l=>l.flags&7)?1:0),this.markedForComposition.add(o);let a=K.get(s);a&&a!=o&&(a.dom=null),o.setDOM(s)},r=this.childPos(e.range.fromB,1),n=this.children[r.i];t(e.line,n);for(let s=e.marks.length-1;s>=-1;s--)r=n.childPos(r.off,1),n=n.children[r.i],t(s>=0?e.marks[s].node:e.text,n)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let r=this.view.root.activeElement,n=r==this.dom,s=!n&&Zs(this.dom,this.view.observer.selectionRange)&&!(r&&this.dom.contains(r));if(!(n||t||s))return;let o=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(a.anchor)),c=a.empty?l:this.moveToLine(this.domAtPos(a.head));if(Q.gecko&&a.empty&&!this.hasComposition&&Mb(l)){let u=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(u,l.node.childNodes[l.offset]||null)),l=c=new De(u,0),o=!0}let h=this.view.observer.selectionRange;(o||!h.focusNode||(!on(l.node,l.offset,h.anchorNode,h.anchorOffset)||!on(c.node,c.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,a))&&(this.view.observer.ignore(()=>{Q.android&&Q.chrome&&this.dom.contains(h.focusNode)&&Vb(h.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let u=dn(this.view.root);if(u)if(a.empty){if(Q.gecko){let f=Db(l.node,l.offset);if(f&&f!=3){let d=(f==1?Vd:$d)(l.node,l.offset);d&&(l=new De(d.node,d.offset))}}u.collapse(l.node,l.offset),a.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=a.bidiLevel)}else if(u.extend){u.collapse(l.node,l.offset);try{u.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();a.anchor>a.head&&([l,c]=[c,l]),f.setEnd(c.node,c.offset),f.setStart(l.node,l.offset),u.removeAllRanges(),u.addRange(f)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(l,c)),this.impreciseAnchor=l.precise?null:new De(h.anchorNode,h.anchorOffset),this.impreciseHead=c.precise?null:new De(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&on(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,r=dn(e.root),{anchorNode:n,anchorOffset:s}=e.observer.selectionRange;if(!r||!t.empty||!t.assoc||!r.modify)return;let o=ve.find(this,t.head);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc);r.collapse(h.node,h.offset),r.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let u=e.observer.selectionRange;e.docView.posFromDOM(u.anchorNode,u.anchorOffset)!=t.from&&r.collapse(n,s)}moveToLine(e){let t=this.dom,r;if(e.node!=t)return e;for(let n=e.offset;!r&&n=0;n--){let s=K.get(t.childNodes[n]);s instanceof ve&&(r=s.domAtPos(s.length))}return r?new De(r.node,r.offset,!0):e}nearest(e){for(let t=e;t;){let r=K.get(t);if(r&&r.rootView==this)return r;t=t.parentNode}return null}posFromDOM(e,t){let r=this.nearest(e);if(!r)throw new RangeError("Trying to find position for a DOM position outside of the document");return r.localPosFromDOM(e,t)+r.posAtStart}domAtPos(e){let{i:t,off:r}=this.childCursor().findPos(e,-1);for(;t=0;o--){let a=this.children[o],l=s-a.breakAfter,c=l-a.length;if(le||a.covers(1))&&(!r||a instanceof ve&&!(r instanceof ve&&t>=0)))r=a,n=c;else if(r&&c==e&&l==e&&a instanceof Pi&&Math.abs(t)<2){if(a.deco.startSide<0)break;o&&(r=null)}s=c}return r?r.coordsAt(e-n,t):null}coordsForChar(e){let{i:t,off:r}=this.childPos(e,1),n=this.children[t];if(!(n instanceof ve))return null;for(;n.children.length;){let{i:a,off:l}=n.childPos(r,1);for(;;a++){if(a==n.children.length)return null;if((n=n.children[a]).length)break}r=l}if(!(n instanceof kt))return null;let s=de(n.text,r);if(s==r)return null;let o=Ei(n.dom,r,s).getClientRects();for(let a=0;aMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==G.LTR;for(let c=0,h=0;hn)break;if(c>=r){let d=u.dom.getBoundingClientRect();if(t.push(d.height),o){let m=u.dom.lastChild,p=m?pn(m):[];if(p.length){let g=p[p.length-1],O=l?g.right-d.left:d.right-g.left;O>a&&(a=O,this.minWidth=s,this.minWidthFrom=c,this.minWidthTo=f)}}}c=f+u.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?G.RTL:G.LTR}measureTextSize(){for(let s of this.children)if(s instanceof ve){let o=s.measureTextSize();if(o)return o}let e=document.createElement("div"),t,r,n;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=pn(e.firstChild)[0];t=e.getBoundingClientRect().height,r=s?s.width/27:7,n=s?s.height:t,e.remove()}),{lineHeight:t,charWidth:r,textHeight:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new no(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let r=0,n=0;;n++){let s=n==t.viewports.length?null:t.viewports[n],o=s?s.from-1:this.length;if(o>r){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(r).top)/this.view.scaleY;e.push(M.replace({widget:new lo(a),block:!0,inclusive:!0,isBlockGap:!0}).range(r,o))}if(!s)break;r=s.to+1}return M.set(e)}updateDeco(){let e=1,t=this.view.state.facet(bn).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),r=!1,n=this.view.state.facet(cp).map((s,o)=>{let a=typeof s=="function";return a&&(r=!0),a?s(this.view):s});for(n.length&&(this.dynamicDecorationMap[e++]=r,t.push(z.join(n))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];et.anchor?-1:1),n;if(!r)return;!t.empty&&(n=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(r={left:Math.min(r.left,n.left),top:Math.min(r.top,n.top),right:Math.max(r.right,n.right),bottom:Math.max(r.bottom,n.bottom)});let s=fp(this.view),o={left:r.left-s.left,top:r.top-s.top,right:r.right+s.right,bottom:r.bottom+s.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;db(this.view.scrollDOM,o,t.head{re.from&&(t=!0)}),t}function Bb(i,e,t=1){let r=i.charCategorizer(e),n=i.doc.lineAt(e),s=e-n.from;if(n.length==0)return k.cursor(e);s==0?t=1:s==n.length&&(t=-1);let o=s,a=s;t<0?o=de(n.text,s,!1):a=de(n.text,s);let l=r(n.text.slice(o,a));for(;o>0;){let c=de(n.text,o,!1);if(r(n.text.slice(c,o))!=l)break;o=c}for(;ai?e.left-i:Math.max(0,i-e.right)}function Nb(i,e){return e.top>i?e.top-i:Math.max(0,i-e.bottom)}function $l(i,e){return i.tope.top+1}function td(i,e){return ei.bottom?{top:i.top,left:i.left,right:i.right,bottom:e}:i}function ic(i,e,t){let r,n,s,o,a=!1,l,c,h,u;for(let m=i.firstChild;m;m=m.nextSibling){let p=pn(m);for(let g=0;gv||o==v&&s>y){r=m,n=O,s=y,o=v;let x=v?t0?g0)}y==0?t>O.bottom&&(!h||h.bottomO.top)&&(c=m,u=O):h&&$l(h,O)?h=id(h,O.bottom):u&&$l(u,O)&&(u=td(u,O.top))}}if(h&&h.bottom>=t?(r=l,n=h):u&&u.top<=t&&(r=c,n=u),!r)return{node:i,offset:0};let f=Math.max(n.left,Math.min(n.right,e));if(r.nodeType==3)return rd(r,f,t);if(a&&r.contentEditable!="false")return ic(r,f,t);let d=Array.prototype.indexOf.call(i.childNodes,r)+(e>=(n.left+n.right)/2?1:0);return{node:i,offset:d}}function rd(i,e,t){let r=i.nodeValue.length,n=-1,s=1e9,o=0;for(let a=0;at?h.top-t:t-h.bottom)-1;if(h.left-1<=e&&h.right+1>=e&&u=(h.left+h.right)/2,d=f;if((Q.chrome||Q.gecko)&&Ei(i,a).getBoundingClientRect().left==h.right&&(d=!f),u<=0)return{node:i,offset:a+(d?1:0)};n=a+(d?1:0),s=u}}}return{node:i,offset:n>-1?n:o>0?i.nodeValue.length:0}}function pp(i,e,t,r=-1){var n,s;let o=i.contentDOM.getBoundingClientRect(),a=o.top+i.viewState.paddingTop,l,{docHeight:c}=i.viewState,{x:h,y:u}=e,f=u-a;if(f<0)return 0;if(f>c)return i.state.doc.length;for(let x=i.viewState.heightOracle.textHeight/2,w=!1;l=i.elementAtHeight(f),l.type!=Le.Text;)for(;f=r>0?l.bottom+x:l.top-x,!(f>=0&&f<=c);){if(w)return t?null:0;w=!0,r=-r}u=a+f;let d=l.from;if(di.viewport.to)return i.viewport.to==i.state.doc.length?i.state.doc.length:t?null:nd(i,o,l,h,u);let m=i.dom.ownerDocument,p=i.root.elementFromPoint?i.root:m,g=p.elementFromPoint(h,u);g&&!i.contentDOM.contains(g)&&(g=null),g||(h=Math.max(o.left+1,Math.min(o.right-1,h)),g=p.elementFromPoint(h,u),g&&!i.contentDOM.contains(g)&&(g=null));let O,y=-1;if(g&&((n=i.docView.nearest(g))===null||n===void 0?void 0:n.isEditable)!=!1){if(m.caretPositionFromPoint){let x=m.caretPositionFromPoint(h,u);x&&({offsetNode:O,offset:y}=x)}else if(m.caretRangeFromPoint){let x=m.caretRangeFromPoint(h,u);x&&({startContainer:O,startOffset:y}=x,(!i.contentDOM.contains(O)||Q.safari&&Ib(O,y,h)||Q.chrome&&Wb(O,y,h))&&(O=void 0))}}if(!O||!i.docView.dom.contains(O)){let x=ve.find(i.docView,d);if(!x)return f>l.top+l.height/2?l.to:l.from;({node:O,offset:y}=ic(x.dom,h,u))}let v=i.docView.nearest(O);if(!v)return null;if(v.isWidget&&((s=v.dom)===null||s===void 0?void 0:s.nodeType)==1){let x=v.dom.getBoundingClientRect();return e.yi.defaultLineHeight*1.5){let a=i.viewState.heightOracle.textHeight,l=Math.floor((n-t.top-(i.defaultLineHeight-a)*.5)/a);s+=l*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+Xs(o,s,i.state.tabSize)}function Ib(i,e,t){let r;if(i.nodeType!=3||e!=(r=i.nodeValue.length))return!1;for(let n=i.nextSibling;n;n=n.nextSibling)if(n.nodeType!=1||n.nodeName!="BR")return!1;return Ei(i,r-1,r).getBoundingClientRect().left>t}function Wb(i,e,t){if(e!=0)return!1;for(let n=i;;){let s=n.parentNode;if(!s||s.nodeType!=1||s.firstChild!=n)return!1;if(s.classList.contains("cm-line"))break;n=s}let r=i.nodeType==1?i.getBoundingClientRect():Ei(i,0,Math.max(i.nodeValue.length,1)).getBoundingClientRect();return t-r.left>5}function rc(i,e){let t=i.lineBlockAt(e);if(Array.isArray(t.type)){for(let r of t.type)if(r.to>e||r.to==e&&(r.to==t.to||r.type==Le.Text))return r}return t}function jb(i,e,t,r){let n=rc(i,e.head),s=!r||n.type!=Le.Text||!(i.lineWrapping||n.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),a=i.textDirectionAt(n.from),l=i.posAtCoords({x:t==(a==G.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(l!=null)return k.cursor(l,t?-1:1)}return k.cursor(t?n.to:n.from,t?-1:1)}function sd(i,e,t,r){let n=i.state.doc.lineAt(e.head),s=i.bidiSpans(n),o=i.textDirectionAt(n.from);for(let a=e,l=null;;){let c=Rb(n,s,o,a,t),h=Zd;if(!c){if(n.number==(t?i.state.doc.lines:1))return a;h=`
-`,n=i.state.doc.line(n.number+(t?1:-1)),s=i.bidiSpans(n),c=i.visualLineSide(n,!t)}if(l){if(!l(h))return a}else{if(!r)return c;l=r(h)}a=c}}function zb(i,e,t){let r=i.state.charCategorizer(e),n=r(t);return s=>{let o=r(s);return n==H.Space&&(n=o),n==o}}function Ub(i,e,t,r){let n=e.head,s=t?1:-1;if(n==(t?i.state.doc.length:0))return k.cursor(n,e.assoc);let o=e.goalColumn,a,l=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(n,e.assoc||-1),h=i.documentTop;if(c)o==null&&(o=c.left-l.left),a=s<0?c.top:c.bottom;else{let d=i.viewState.lineBlockAt(n);o==null&&(o=Math.min(l.right-l.left,i.defaultCharacterWidth*(n-d.from))),a=(s<0?d.top:d.bottom)+h}let u=l.left+o,f=r??i.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let m=a+(f+d)*s,p=pp(i,{x:u,y:m},!1,s);if(ml.bottom||(s<0?pn)){let g=i.docView.coordsForChar(p),O=!g||m{if(e>s&&en(i)),t.from,e.head>t.from?-1:1);return r==t.from?t:k.cursor(r,rnull),Q.gecko&&aw(e.contentDOM.ownerDocument)}handleEvent(e){!Kb(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||this.runHandlers(e.type,e)}runHandlers(e,t){let r=this.handlers[e];if(r){for(let n of r.observers)n(this.view,t);for(let n of r.handlers){if(t.defaultPrevented)break;if(n(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=Fb(e),r=this.handlers,n=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,a=r[s];a&&o!=!a.handlers.length&&(n.removeEventListener(s,this.handleEvent),a=null),a||n.addEventListener(s,this.handleEvent,{passive:o})}for(let s in r)s!="scroll"&&!t[s]&&n.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&gp.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Q.android&&Q.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return Q.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=mp.find(r=>r.keyCode==e.keyCode))&&!e.ctrlKey||Hb.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:Q.safari&&!Q.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function od(i,e){return(t,r)=>{try{return e.call(i,r,t)}catch(n){xe(t.state,n)}}}function Fb(i){let e=Object.create(null);function t(r){return e[r]||(e[r]={observers:[],handlers:[]})}for(let r of i){let n=r.spec;if(n&&n.domEventHandlers)for(let s in n.domEventHandlers){let o=n.domEventHandlers[s];o&&t(s).handlers.push(od(r.value,o))}if(n&&n.domEventObservers)for(let s in n.domEventObservers){let o=n.domEventObservers[s];o&&t(s).observers.push(od(r.value,o))}}for(let r in ft)t(r).handlers.push(ft[r]);for(let r in st)t(r).observers.push(st[r]);return e}var mp=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Hb="dthko",gp=[16,17,18,20,91,92,224,225],js=6;function zs(i){return Math.max(0,i)*.7+8}function Gb(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var sc=class{constructor(e,t,r,n){this.view=e,this.startEvent=t,this.style=r,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=pb(e.contentDOM),this.atoms=e.state.facet(Vc).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(j.allowMultipleSelections)&&Yb(e,t),this.dragging=Jb(e,t)&&wp(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Gb(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let r=0,n=0,s=((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},o=fp(this.view);e.clientX-o.left<=s.left+js?r=-zs(s.left-e.clientX):e.clientX+o.right>=s.right-js&&(r=zs(e.clientX-s.right)),e.clientY-o.top<=s.top+js?n=-zs(s.top-e.clientY):e.clientY+o.bottom>=s.bottom-js&&(n=zs(e.clientY-s.bottom)),this.setScrollSpeed(r,n)}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=this.view.inputState.draggedContent=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)}skipAtoms(e){let t=null;for(let r=0;rt.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Yb(i,e){let t=i.state.facet(Jd);return t.length?t[0](e):Q.mac?e.metaKey:e.ctrlKey}function Zb(i,e){let t=i.state.facet(Kd);return t.length?t[0](e):Q.mac?!e.altKey:!e.ctrlKey}function Jb(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let r=dn(i.root);if(!r||r.rangeCount==0)return!0;let n=r.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function Kb(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,r;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(r=K.get(t))&&r.ignoreEvent(e))return!1;return!0}var ft=Object.create(null),st=Object.create(null),Op=Q.ie&&Q.ie_version<15||Q.ios&&Q.webkit_version<604;function ew(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),yp(i,t.value)},50)}function yp(i,e){let{state:t}=i,r,n=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(oc!=null&&t.selection.ranges.every(l=>l.empty)&&oc==s.toString()){let l=-1;r=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==l)return{range:c};l=h.from;let u=t.toText((o?s.line(n++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:u},range:k.cursor(c.from+u.length)}})}else o?r=t.changeByRange(l=>{let c=s.line(n++);return{changes:{from:l.from,to:l.to,insert:c.text},range:k.cursor(l.from+c.length)}}):r=t.replaceSelection(s);i.dispatch(r,{userEvent:"input.paste",scrollIntoView:!0})}st.scroll=i=>{i.inputState.lastScrollTop=i.scrollDOM.scrollTop,i.inputState.lastScrollLeft=i.scrollDOM.scrollLeft};ft.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);st.touchstart=(i,e)=>{i.inputState.lastTouchTime=Date.now(),i.inputState.setSelectionOrigin("select.pointer")};st.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};ft.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let r of i.state.facet(ep))if(t=r(i,e),t)break;if(!t&&e.button==0&&(t=rw(i,e)),t){let r=!i.hasFocus;i.inputState.startMouseSelection(new sc(i,e,t,r)),r&&i.observer.ignore(()=>{Dd(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let n=i.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}return!1};function ad(i,e,t,r){if(r==1)return k.cursor(e,t);if(r==2)return Bb(i.state,e,t);{let n=ve.find(i.docView,e),s=i.state.doc.lineAt(n?n.posAtEnd:e),o=n?n.posAtStart:s.from,a=n?n.posAtEnd:s.to;return ai>=e.top&&i<=e.bottom,ld=(i,e,t)=>bp(e,t)&&i>=t.left&&i<=t.right;function tw(i,e,t,r){let n=ve.find(i.docView,e);if(!n)return 1;let s=e-n.posAtStart;if(s==0)return 1;if(s==n.length)return-1;let o=n.coordsAt(s,-1);if(o&&ld(t,r,o))return-1;let a=n.coordsAt(s,1);return a&&ld(t,r,a)?1:o&&bp(r,o)?-1:1}function cd(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:tw(i,t,e.clientX,e.clientY)}}var iw=Q.ie&&Q.ie_version<=11,hd=null,ud=0,fd=0;function wp(i){if(!iw)return i.detail;let e=hd,t=fd;return hd=i,fd=Date.now(),ud=!e||t>Date.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(ud+1)%3:1}function rw(i,e){let t=cd(i,e),r=wp(e),n=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),n=n.map(s.changes))},get(s,o,a){let l=cd(i,s),c,h=ad(i,l.pos,l.bias,r);if(t.pos!=l.pos&&!o){let u=ad(i,t.pos,t.bias,r),f=Math.min(u.from,h.from),d=Math.max(u.to,h.to);h=f1&&(c=nw(n,l.pos))?c:a?n.addRange(h):k.create([h])}}}function nw(i,e){for(let t=0;t=e)return k.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}ft.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let n=i.docView.nearest(e.target);if(n&&n.isWidget){let s=n.posAtStart,o=s+n.length;(s>=t.to||o<=t.from)&&(t=k.range(s,o))}}let{inputState:r}=i;return r.mouseSelection&&(r.mouseSelection.dragging=!0),r.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",i.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove"),!1};ft.dragend=i=>(i.inputState.draggedContent=null,!1);function dd(i,e,t,r){if(!t)return;let n=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=r&&s&&Zb(i,e)?{from:s.from,to:s.to}:null,a={from:n,insert:t},l=i.state.changes(o?[o,a]:a);i.focus(),i.dispatch({changes:l,selection:{anchor:l.mapPos(n,-1),head:l.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}ft.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let r=Array(t.length),n=0,s=()=>{++n==t.length&&dd(i,e,r.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(r[o]=a.result),s()},a.readAsText(t[o])}return!0}else{let r=e.dataTransfer.getData("Text");if(r)return dd(i,e,r,!0),!0}return!1};ft.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=Op?null:e.clipboardData;return t?(yp(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(ew(i),!1)};function sw(i,e){let t=i.dom.parentNode;if(!t)return;let r=t.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout(()=>{r.remove(),i.focus()},50)}function ow(i){let e=[],t=[],r=!1;for(let n of i.selection.ranges)n.empty||(e.push(i.sliceDoc(n.from,n.to)),t.push(n));if(!e.length){let n=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>n&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),n=o.number}r=!0}return{text:e.join(i.lineBreak),ranges:t,linewise:r}}var oc=null;ft.copy=ft.cut=(i,e)=>{let{text:t,ranges:r,linewise:n}=ow(i.state);if(!t&&!n)return!1;oc=n?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let s=Op?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(sw(i,t),!1)};var vp=Be.define();function xp(i,e){let t=[];for(let r of i.facet(rp)){let n=r(i,e);n&&t.push(n)}return t?i.update({effects:t,annotations:vp.of(!0)}):null}function Sp(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=xp(i.state,e);t?i.dispatch(t):i.update([])}},10)}st.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),Sp(i)};st.blur=i=>{i.observer.clearSelectionRange(),Sp(i)};st.compositionstart=st.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};st.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,Q.chrome&&Q.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};st.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};ft.beforeinput=(i,e)=>{var t;let r;if(Q.chrome&&Q.android&&(r=mp.find(n=>n.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let n=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var s;(((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0)>n+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return Q.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),Q.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>st.compositionend(i,e),20),!1};var pd=new Set;function aw(i){pd.has(i)||(pd.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var md=["pre-wrap","normal","pre-line","break-spaces"],ac=class{constructor(e){this.lineWrapping=e,this.doc=I.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let r=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(r+=Math.max(0,Math.ceil((t-e-r*this.lineLength*.5)/this.lineLength))),this.lineHeight*r}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 md.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let r=0;r-1,l=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=r,this.textHeight=n,this.lineLength=s,l){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>Ks&&(e.heightChanged=!0),this.height=t)}replace(e,t,r){return i.of(r)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,r,n){let s=this,o=r.doc;for(let a=n.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:h,toB:u}=n[a],f=s.lineAt(l,ee.ByPosNoHeight,r.setDoc(t),0,0),d=f.to>=c?f:s.lineAt(c,ee.ByPosNoHeight,r,0,0);for(u+=d.to-c,c=d.to;a>0&&f.from<=n[a-1].toA;)l=n[a-1].fromA,h=n[a-1].fromB,a--,ls*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),r+=1+a.break,n-=a.size}else if(s>n*2){let a=e[r];a.break?e.splice(r,1,a.left,null,a.right):e.splice(r,1,a.left,a.right),r+=2+a.break,s-=a.size}else break;else if(n=s&&o(this.blockAt(0,r,n,s))}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},nt=class i extends co{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,r,n){return new vt(n,this.length,r,this.height,this.breaks)}replace(e,t,r){let n=r[0];return r.length==1&&(n instanceof i||n instanceof Kt&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof Kt?n=new i(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Fe.of(r)}updateHeight(e,t=0,r=!1,n){return n&&n.from<=t&&n.more?this.setHeight(e,n.heights[n.index++]):(r||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},Kt=class i extends Fe{constructor(e){super(e,0)}heightMetrics(e,t){let r=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,s=n-r+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*s);o=l/s,this.length>s+1&&(a=(this.height-l)/(this.length-s-1))}else o=this.height/s;return{firstLine:r,lastLine:n,perLine:o,perChar:a}}blockAt(e,t,r,n){let{firstLine:s,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,n);if(t.lineWrapping){let c=n+(e0){let s=r[r.length-1];s instanceof i?r[r.length-1]=new i(s.length+n):r.push(null,new i(n-1))}if(e>0){let s=r[0];s instanceof i?r[0]=new i(e+s.length):r.unshift(new i(e-1),null)}return Fe.of(r)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,r=!1,n){let s=t+this.length;if(n&&n.from<=t+this.length&&n.more){let o=[],a=Math.max(t,n.from),l=-1;for(n.from>t&&o.push(new i(n.from-t-1).updateHeight(e,t));a<=s&&n.more;){let h=e.doc.lineAt(a).length;o.length&&o.push(null);let u=n.heights[n.index++];l==-1?l=u:Math.abs(u-l)>=Ks&&(l=-2);let f=new nt(h,u);f.outdated=!1,o.push(f),a+=h+1}a<=s&&o.push(null,new i(s-a).updateHeight(e,a));let c=Fe.of(o);return(l<0||Math.abs(c.height-this.height)>=Ks||Math.abs(l-this.heightMetrics(e,t).perLine)>=Ks)&&(e.heightChanged=!0),c}else(r||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},cc=class extends Fe{constructor(e,t,r){super(e.length+t+r.length,e.height+r.height,t|(e.outdated||r.outdated?2:0)),this.left=e,this.right=r,this.size=e.size+r.size}get break(){return this.flags&1}blockAt(e,t,r,n){let s=r+this.left.height;return ea))return c;let h=t==ee.ByPosNoHeight?ee.ByPosNoHeight:ee.ByPos;return l?c.join(this.right.lineAt(a,h,r,o,a)):this.left.lineAt(a,h,r,n,s).join(c)}forEachLine(e,t,r,n,s,o){let a=n+this.left.height,l=s+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,r,a,l,o);else{let c=this.lineAt(l,ee.ByPos,r,n,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,r,a,l,o)}}replace(e,t,r){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,r));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let a of r)s.push(a);if(e>0&&gd(s,o-1),t=r&&t.push(null)),e>r&&this.right.decomposeLeft(e-r,t)}decomposeRight(e,t){let r=this.left.length,n=r+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?Fe.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,r=!1,n){let{left:s,right:o}=this,a=t+s.length+this.break,l=null;return n&&n.from<=t+s.length&&n.more?l=s=s.updateHeight(e,t,r,n):s.updateHeight(e,t,r),n&&n.from<=a+o.length&&n.more?l=o=o.updateHeight(e,a,r,n):o.updateHeight(e,a,r),l?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function gd(i,e){let t,r;i[e]==null&&(t=i[e-1])instanceof Kt&&(r=i[e+1])instanceof Kt&&i.splice(e-1,3,new Kt(t.length+1+r.length))}var lw=5,hc=class i{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 r=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof nt?n.length+=r-this.pos:(r>this.pos||!this.isCovered)&&this.nodes.push(new nt(r-this.pos,-1)),this.writtenTo=r,t>r&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,r){if(e=lw)&&this.addLineDeco(n,s,o)}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 nt(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let r=new Kt(t-e);return this.oracle.doc.lineAt(e).to==t&&(r.flags|=4),r}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof nt)return e;let t=new nt(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,r){let n=this.ensureLine();n.length+=r,n.collapsed+=r,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=t,this.writtenTo=this.pos=this.pos+r}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof nt)&&!this.isCovered?this.nodes.push(new nt(0,-1)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&u.overflow!="visible"){let f=h.getBoundingClientRect();s=Math.max(s,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=c==i.parentNode?f.bottom:Math.min(l,f.bottom)}c=u.position=="absolute"||u.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function uw(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var hn=class{constructor(e,t,r){this.from=e,this.to=t,this.size=r}static same(e,t){if(e.length!=t.length)return!1;for(let r=0;rtypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new ac(t),this.stateDeco=e.facet(bn).filter(r=>typeof r!="function"),this.heightMap=Fe.empty().applyChanges(this.stateDeco,I.empty,this.heightOracle.setDoc(e.doc),[new St(0,0,0,e.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=M.set(this.lineGaps.map(r=>r.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let r=0;r<=1;r++){let n=r?t.head:t.anchor;if(!e.some(({from:s,to:o})=>n>=s&&n<=o)){let{from:s,to:o}=this.lineBlockAt(n);e.push(new cr(s,o))}}return this.viewports=e.sort((r,n)=>r.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Od:new dc(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(rn(e,this.scaler))})}update(e,t=null){this.state=e.state;let r=this.stateDeco;this.stateDeco=this.state.facet(bn).filter(h=>typeof h!="function");let n=e.changedRanges,s=St.extendWithRanges(n,cw(r,this.stateDeco,e?e.changes:Me.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=o&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&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(sp)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,r=window.getComputedStyle(t),n=this.heightOracle,s=r.whiteSpace;this.defaultTextDirection=r.direction=="rtl"?G.RTL:G.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,h=0;if(a.width&&a.height){let{scaleX:x,scaleY:w}=_d(t,a);(x>.005&&Math.abs(this.scaleX-x)>.005||w>.005&&Math.abs(this.scaleY-w)>.005)&&(this.scaleX=x,this.scaleY=w,c|=8,o=l=!0)}let u=(parseInt(r.paddingTop)||0)*this.scaleY,f=(parseInt(r.paddingBottom)||0)*this.scaleY;(this.paddingTop!=u||this.paddingBottom!=f)&&(this.paddingTop=u,this.paddingBottom=f,c|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=qd(e.scrollDOM);let m=(this.printing?uw:hw)(t,this.paddingTop),p=m.top-this.pixelViewport.top,g=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let O=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(O!=this.inView&&(this.inView=O,O&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let y=a.width;if((this.contentDOMWidth!=y||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=8),l){let x=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(x)&&(o=!0),o||n.lineWrapping&&Math.abs(y-this.contentDOMWidth)>n.charWidth){let{lineHeight:w,charWidth:T,textHeight:C}=e.docView.measureTextSize();o=w>0&&n.refresh(s,w,T,C,y/T,x),o&&(e.docView.minWidth=0,c|=8)}p>0&&g>0?h=Math.max(p,g):p<0&&g<0&&(h=Math.min(p,g)),n.heightChanged=!1;for(let w of this.viewports){let T=w.from==this.viewport.from?x:e.docView.measureVisibleLineHeights(w);this.heightMap=(o?Fe.empty().applyChanges(this.stateDeco,I.empty,this.heightOracle,[new St(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new lc(w.from,T))}n.heightChanged&&(c|=2)}let v=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return v&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let r=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new cr(n.lineAt(o-r*1e3,ee.ByHeight,s,0,0).from,n.lineAt(a+(1-r)*1e3,ee.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(cl.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),u=n.lineAt(c,ee.ByPos,s,0,0),f;t.y=="center"?f=(u.top+u.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c=a+Math.max(10,Math.min(r,250)))&&n>o-2*1e3&&s>1,o=n<<1;if(this.defaultTextDirection!=G.LTR&&!r)return[];let a=[],l=(h,u,f,d)=>{if(u-hh&&OO.from>=f.from&&O.to<=f.to&&Math.abs(O.from-h)O.fromy));if(!g){if(uO.from<=u&&O.to>=u)){let O=t.moveToLineBoundary(k.cursor(u),!1,!0).head;O>h&&(u=O)}g=new hn(h,u,this.gapSize(f,h,u,d))}a.push(g)},c=h=>{if(h.lengthh.from&&l(h.from,d,h,u),mt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];z.spans(e,this.viewport.from,this.viewport.to,{span(n,s){t.push({from:n,to:s})},point(){}},20);let r=t.length!=this.visibleRanges.length||this.visibleRanges.some((n,s)=>n.from!=t[s].from||n.to!=t[s].to);return this.visibleRanges=t,r?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||rn(this.heightMap.lineAt(e,ee.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||rn(this.heightMap.lineAt(this.scaler.fromDOM(e),ee.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return rn(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}},cr=class{constructor(e,t){this.from=e,this.to=t}};function fw(i,e,t){let r=[],n=i,s=0;return z.spans(t,i,e,{span(){},point(o,a){o>n&&(r.push({from:n,to:o}),s+=o-n),n=a}},20),n=1)return e[e.length-1].to;let r=Math.floor(i*t);for(let n=0;;n++){let{from:s,to:o}=e[n],a=o-s;if(r<=a)return s+r;r-=a}}function Fs(i,e){let t=0;for(let{from:r,to:n}of i.ranges){if(e<=n){t+=e-r;break}t+=n-r}return t/i.total}function dw(i,e){for(let t of i)if(e(t))return t}var Od={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}},dc=class i{constructor(e,t,r){let n=0,s=0,o=0;this.viewports=r.map(({from:a,to:l})=>{let c=t.lineAt(a,ee.ByPos,e,0,0).top,h=t.lineAt(l,ee.ByPos,e,0,0).bottom;return n+=h-c,{from:a,to:l,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(t.height-n);for(let a of this.viewports)a.domTop=o+(a.top-s)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),s=a.bottom}toDOM(e){for(let t=0,r=0,n=0;;t++){let s=tt.from==e.viewports[r].from&&t.to==e.viewports[r].to):!1}};function rn(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),r=e.toDOM(i.bottom);return new vt(i.from,i.length,t,r-t,Array.isArray(i._content)?i._content.map(n=>rn(n,e)):i._content)}var Hs=A.define({combine:i=>i.join(" ")}),pc=A.define({combine:i=>i.indexOf(!0)>-1}),mc=rt.newName(),kp=rt.newName(),Tp=rt.newName(),Pp={"&light":"."+kp,"&dark":"."+Tp};function gc(i,e,t){return new rt(e,{finish(r){return/&/.test(r)?r.replace(/&\w*/,n=>{if(n=="&")return i;if(!t||!t[n])throw new RangeError(`Unsupported selector: ${n}`);return t[n]}):i+" "+r}})}var pw=gc("."+mc,{"&":{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",minHeight:"100%",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-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .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-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&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",insetInlineStart: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"}},Pp),nn="\uFFFF",Oc=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(j.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=nn}readRange(e,t){if(!e)return this;let r=e.parentNode;for(let n=e;;){this.findPointBefore(r,n);let s=this.text.length;this.readNode(n);let o=n.nextSibling;if(o==t)break;let a=K.get(n),l=K.get(o);(a&&l?a.breakAfter:(a?a.breakAfter:ro(n))||ro(o)&&(n.nodeName!="BR"||n.cmIgnore)&&this.text.length>s)&&this.lineBreak(),n=o}return this.findPointBefore(r,t),this}readTextNode(e){let t=e.nodeValue;for(let r of this.points)r.node==e&&(r.pos=this.text.length+Math.min(r.offset,t.length));for(let r=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,a;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,r),o=this.lineSeparator.length):(a=n.exec(t))&&(s=a.index,o=a[0].length),this.append(t.slice(r,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);r=s+o}}readNode(e){if(e.cmIgnore)return;let t=K.get(e),r=t&&t.overrideDOMText;if(r!=null){this.findPointInside(e,r.length);for(let n=r.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.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 r of this.points)r.node==e&&e.childNodes[r.offset]==t&&(r.pos=this.text.length)}findPointInside(e,t){for(let r of this.points)(e.nodeType==3?r.node==e:e.contains(r.node))&&(r.pos=this.text.length+(mw(e,r.node,r.offset)?t:0))}};function mw(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,r,0))){let a=s||o?[]:yw(e),l=new Oc(a,e.state);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=bw(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!jl(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!jl(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),h=e.viewport;if((Q.ios||Q.chrome)&&e.state.selection.main.empty&&l!=c&&(h.from>0||h.toDate.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=n.from,c=null;(s===8||Q.android&&e.text.length=n.from&&t.to<=n.to&&(t.from!=n.from||t.to!=n.to)&&n.to-n.from-(t.to-t.from)<=4?t={from:n.from,to:n.to,insert:i.state.doc.slice(n.from,t.from).append(t.insert).append(i.state.doc.slice(t.to,n.to))}:(Q.mac||Q.android)&&t&&t.from==t.to&&t.from==n.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(r&&t.insert.length==2&&(r=k.single(r.main.anchor-1,r.main.head-1)),t={from:n.from,to:n.to,insert:I.of([" "])}):Q.chrome&&t&&t.from==t.to&&t.from==n.head&&t.insert.toString()==`
- `&&i.lineWrapping&&(r&&(r=k.single(r.main.anchor-1,r.main.head-1)),t={from:n.from,to:n.to,insert:I.of([" "])}),t)return Ep(i,t,r,s);if(r&&!r.main.eq(n)){let o=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(o=!0),a=i.inputState.lastSelectionOrigin),i.dispatch({selection:r,scrollIntoView:o,userEvent:a}),!0}else return!1}function Ep(i,e,t,r=-1){if(Q.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(Q.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&fr(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||r==8&&e.insert.lengthn.head)&&fr(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&fr(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,a=()=>o||(o=gw(i,e,t));return i.state.facet(ip).some(l=>l(i,e.from,e.to,s,a))||i.dispatch(a()),!0}function gw(i,e,t){let r,n=i.state,s=n.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.frome.to?n.sliceDoc(e.to,s.to):"";r=n.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+l))}else{let a=n.changes(e),l=t&&t.main.to<=a.newLength?t.main:void 0;if(n.selection.ranges.length>1&&i.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let c=i.state.sliceDoc(e.from,e.to),h,u=t&&dp(i,t.main.head);if(u){let m=e.insert.length-(e.to-e.from);h={from:u.from,to:u.to-m}}else h=i.state.doc.lineAt(s.head);let f=s.to-e.to,d=s.to-s.from;r=n.changeByRange(m=>{if(m.from==s.from&&m.to==s.to)return{changes:a,range:l||m.map(a)};let p=m.to-f,g=p-c.length;if(m.to-m.from!=d||i.state.sliceDoc(g,p)!=c||m.to>=h.from&&m.from<=h.to)return{range:m};let O=n.changes({from:g,to:p,insert:e.insert}),y=m.to-s.to;return{changes:O,range:l?k.range(Math.max(0,l.anchor+y),Math.max(0,l.head+y)):m.map(O)}})}else r={changes:a,selection:l&&n.selection.replaceRange(l)}}let o="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,o+=".compose",i.inputState.compositionFirstChange&&(o+=".start",i.inputState.compositionFirstChange=!1)),n.update(r,{userEvent:o,scrollIntoView:!0})}function Ow(i,e,t,r){let n=Math.min(i.length,e.length),s=0;for(;s0&&a>0&&i.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(r=="end"){let l=Math.max(0,s-Math.min(o,a));t-=o+l-s}if(o=o?s-t:0;s-=l,a=s+(a-o),o=s}else if(a=a?s-t:0;s-=l,o=s+(o-a),a=s}return{from:s,toA:o,toB:a}}function yw(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new uo(t,r)),(n!=t||s!=r)&&e.push(new uo(n,s))),e}function bw(i,e){if(i.length==0)return null;let t=i[0].pos,r=i.length==2?i[1].pos:t;return t>-1&&r>-1?k.single(t+e,r+e):null}var ww={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Xl=Q.ie&&Q.ie_version<=11,bc=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new zl,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.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let r of t)this.queue.push(r);(Q.ie&&Q.ie_version<=11||Q.ios&&e.composing)&&t.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&e.constructor.EDIT_CONTEXT!==!1&&!(Q.chrome&&Q.chrome_version<126)&&(this.editContext=new wc(e),e.state.facet(Zt)&&(e.contentDOM.editContext=this.editContext.editContext)),Xl&&(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),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){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")))},{threshold:[0,.001]}),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.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){e.type=="change"&&!e.matches||(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,r)=>t!=e[r]))){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:r}=this,n=this.selectionRange;if(r.state.facet(Zt)?r.root.activeElement!=this.dom:!Zs(r.dom,n))return;let s=n.anchorNode&&r.docView.nearest(n.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Q.ie&&Q.ie_version<=11||Q.android&&Q.chrome)&&!r.state.selection.main.empty&&n.focusNode&&on(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=dn(e.root);if(!t)return!1;let r=Q.safari&&e.root.nodeType==11&&ub(this.dom.ownerDocument)==this.dom&&vw(this.view,t)||t;if(!r||this.selectionRange.eq(r))return!1;let n=Zs(this.dom,r);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&fr(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!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()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,r=-1,n=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(n=!0),t==-1?{from:t,to:r}=o:(t=Math.min(o.from,t),r=Math.max(o.to,r)))}return{from:t,to:r,typeOver:n}}readChange(){let{from:e,to:t,typeOver:r}=this.processRecords(),n=this.selectionChanged&&Zs(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new yc(this.view,e,t,r);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let r=this.view.state,n=Cp(this.view,t);return this.view.state==r&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),n}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.flags|=4),e.type=="childList"){let r=yd(t,e.previousSibling||e.target.previousSibling,-1),n=yd(t,e.nextSibling||e.target.nextSibling,1);return{from:r?t.posAfter(r):t.posAtStart,to:n?t.posBefore(n):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),this.printQuery?this.printQuery.addEventListener("change",this.onPrint):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),this.printQuery?this.printQuery.removeEventListener("change",this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Zt)!=e.state.facet(Zt)&&(e.view.contentDOM.editContext=e.state.facet(Zt)?this.editContext.editContext:null))}destroy(){var e,t,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(r=this.resizeScroll)===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 yd(i,e,t){for(;e;){let r=K.get(e);if(r&&r.parent==i)return r;let n=e.parentNode;e=n!=i.dom?n:t>0?e.nextSibling:e.previousSibling}return null}function bd(i,e){let t=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor);return on(o.node,o.offset,n,s)&&([t,r,n,s]=[n,s,t,r]),{anchorNode:t,anchorOffset:r,focusNode:n,focusOffset:s}}function vw(i,e){if(e.getComposedRanges){let n=e.getComposedRanges(i.root)[0];if(n)return bd(i,n)}let t=null;function r(n){n.preventDefault(),n.stopImmediatePropagation(),t=n.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",r,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",r,!0),t?bd(i,t):null}var wc=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});t.addEventListener("textupdate",r=>{let{anchor:n}=e.state.selection.main,s={from:this.toEditorPos(r.updateRangeStart),to:this.toEditorPos(r.updateRangeEnd),insert:I.of(r.text.split(`
-`))};s.from==this.from&&nthis.to&&(s.to=n),!(s.from==s.to&&!s.insert.length)&&(this.pendingContextChange=s,Ep(e,s,k.single(this.toEditorPos(r.selectionStart),this.toEditorPos(r.selectionEnd))),this.pendingContextChange&&this.revertPending(e.state))}),t.addEventListener("characterboundsupdate",r=>{let n=[],s=null;for(let o=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);o{let n=[];for(let s of r.getTextFormats()){let o=s.underlineStyle,a=s.underlineThickness;if(o!="None"&&a!="None"){let l=`text-decoration: underline ${o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${a=="Thin"?1:2}px`;n.push(M.mark({attributes:{style:l}}).range(this.toEditorPos(s.rangeStart),this.toEditorPos(s.rangeEnd)))}}e.dispatch({effects:ap.of(M.set(n))})}),t.addEventListener("compositionstart",()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)}),t.addEventListener("compositionend",()=>{e.inputState.composing=-1,e.inputState.compositionFirstChange=null}),this.measureReq={read:r=>{this.editContext.updateControlBounds(r.contentDOM.getBoundingClientRect());let n=dn(r.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,r=!1,n=this.pendingContextChange;return e.changes.iterChanges((s,o,a,l,c)=>{if(r)return;let h=c.length-(o-s);if(n&&o>=n.to)if(n.from==s&&n.to==o&&n.insert.eq(c)){n=this.pendingContextChange=null,t+=h;return}else n=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+c.length>3e4){r=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),n&&!r&&this.revertPending(e.state),!r}update(e){!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.resetRange(e.state),this.editContext.updateText(0,this.editContext.text.length,e.state.doc.sliceString(this.from,this.to)),this.setSelection(e.state)):(e.docChanged||e.selectionSet)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.to+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,r=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),n=this.toContextPos(t.head);(this.editContext.selectionStart!=r||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(r,n)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e){return e+this.from}toContextPos(e){return e-this.from}},R=class i{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}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.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:t}=e;this.dispatchTransactions=e.dispatchTransactions||t&&(r=>r.forEach(n=>t(n,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||mb(e.parent)||document,this.viewState=new ho(e.state||j.create(e)),e.scrollTo&&e.scrollTo.is(Ws)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(en).map(r=>new cn(r));for(let r of this.plugins)r.update(this);this.observer=new bc(this),this.inputState=new nc(this),this.inputState.ensureHandlers(this.plugins),this.docView=new ao(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(...e){let t=e.length==1&&e[0]instanceof fe?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}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,r=!1,n,s=this.state;for(let f of e){if(f.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=f.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(vp))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=xp(s,o),l||(a=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(j.phrases)!=this.state.facet(j.phrases))return this.setState(s);n=oo.create(this,s,e),n.flags|=a;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(u&&(u=u.map(f.changes)),f.scrollIntoView){let{main:d}=f.state.selection;u=new ln(d.empty?d:k.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of f.effects)d.is(Ws)&&(u=d.value.clip(this.state))}this.viewState.update(n,u),this.bidiCache=fo.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(tn)!=this.styleModules&&this.mountStyles(),r=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(Hs)!=n.state.facet(Hs)&&(this.viewState.mustMeasureContent=!0),(t||r||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!n.empty)for(let f of this.state.facet(tc))try{f(n)}catch(d){xe(this.state,d,"update listener")}(l||h)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),h&&!Cp(this,h)&&c.force&&fr(this.contentDOM,c.key,c.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 r of this.plugins)r.destroy(this);this.viewState=new ho(e),this.plugins=e.facet(en).map(r=>new cn(r)),this.pluginMap.clear();for(let r of this.plugins)r.update(this);this.docView.destroy(),this.docView=new ao(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(en),r=e.state.facet(en);if(t!=r){let n=[];for(let s of r){let o=t.indexOf(s);if(o<0)n.push(new cn(s));else{let a=this.plugins[o];a.mustUpdate=e,n.push(a)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=n,this.pluginMap.clear()}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,r=this.scrollDOM,n=r.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(qd(r))s=-1,o=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(n);s=d.from,o=d.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(d=>{try{return d.read(this)}catch(m){return xe(this.state,m),wd}}),u=oo.create(this,this.state,[]),f=!1;u.flags|=l,t?t.flags|=l:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),f=this.docView.update(u),f&&this.docViewUpdate());for(let d=0;d1||m<-1){n=n+m,r.scrollTop=n/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(tc))a(t)}get themeClasses(){return mc+" "+(this.state.facet(pc)?Tp:kp)+" "+this.state.facet(Hs)}updateAttrs(){let e=vd(this,lp,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Zt)?"true":"false",class:"cm-content",style:`${Q.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),vd(this,qc,t);let r=this.observer.ignore(()=>{let n=Yl(this.contentDOM,this.contentAttrs,t),s=Yl(this.dom,this.editorAttrs,e);return n||s});return this.editorAttrs=e,this.contentAttrs=t,r}showAnnouncements(e){let t=!0;for(let r of e)for(let n of r.effects)if(n.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(tn);let e=this.state.facet(i.cspNonce);rt.mount(this.root,this.styleModules.concat(pw).reverse(),e?{nonce:e}:void 0)}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;tr.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}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}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,r){return Bl(this,e,sd(this,e,t,r))}moveByGroup(e,t){return Bl(this,e,sd(this,e,t,r=>zb(this,e.head,r)))}visualLineSide(e,t){let r=this.bidiSpans(e),n=this.textDirectionAt(e.from),s=r[t?r.length-1:0];return k.cursor(s.side(t,n)+e.from,s.forward(!t,n)?1:-1)}moveToLineBoundary(e,t,r=!0){return jb(this,e,t,r)}moveVertically(e,t,r){return Bl(this,e,Ub(this,e,t,r))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),pp(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let r=this.docView.coordsAt(e,t);if(!r||r.left==r.right)return r;let n=this.state.doc.lineAt(e),s=this.bidiSpans(n),o=s[xt.find(s,e-n.from,-1,t)];return _c(r,o.dir==G.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}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(np)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>xw)return Yd(e.length);let t=this.textDirectionAt(e.from),r;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||Gd(s.isolates,r=ed(this,e))))return s.order;r||(r=ed(this,e));let n=Eb(e.text,t,r);return this.bidiCache.push(new fo(e.from,e.to,t,r,!0,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Q.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Dd(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(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Ws.of(new ln(typeof e=="number"?k.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,r=this.viewState.scrollAnchorAt(e);return Ws.of(new ln(k.cursor(r.from),"start","start",r.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return se.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return se.define(()=>({}),{eventObservers:e})}static theme(e,t){let r=rt.newName(),n=[Hs.of(r),tn.of(gc(`.${r}`,e))];return t&&t.dark&&n.push(pc.of(!0)),n}static baseTheme(e){return _e.lowest(tn.of(gc("."+mc,e,Pp)))}static findFromDOM(e){var t;let r=e.querySelector(".cm-content"),n=r&&K.get(r)||K.get(e);return((t=n?.rootView)===null||t===void 0?void 0:t.view)||null}};R.styleModule=tn;R.inputHandler=ip;R.scrollHandler=op;R.focusChangeEffect=rp;R.perLineTextDirection=np;R.exceptionSink=tp;R.updateListener=tc;R.editable=Zt;R.mouseSelectionStyle=ep;R.dragMovesSelection=Kd;R.clickAddsSelectionRange=Jd;R.decorations=bn;R.outerDecorations=cp;R.atomicRanges=Vc;R.bidiIsolatedRanges=hp;R.scrollMargins=up;R.darkTheme=pc;R.cspNonce=A.define({combine:i=>i.length?i[0]:""});R.contentAttributes=qc;R.editorAttributes=lp;R.lineWrapping=R.contentAttributes.of({class:"cm-lineWrapping"});R.announce=_.define();var xw=4096,wd={},fo=class i{constructor(e,t,r,n,s,o){this.from=e,this.to=t,this.dir=r,this.isolates=n,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let r=[],n=e.length?e[e.length-1].dir:G.LTR;for(let s=Math.max(0,e.length-10);s=0;n--){let s=r[n],o=typeof s=="function"?s(i):s;o&&Gl(o,t)}return t}var Sw=Q.mac?"mac":Q.windows?"win":Q.linux?"linux":"key";function kw(i,e){let t=i.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");let n,s,o,a;for(let l=0;lr.concat(n),[]))),t}function Ap(i,e,t){return Qp(Rp(i.state),e,i,t)}var Jt=null,Pw=4e3;function Cw(i,e=Sw){let t=Object.create(null),r=Object.create(null),n=(o,a)=>{let l=r[o];if(l==null)r[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,a,l,c,h)=>{var u,f;let d=t[o]||(t[o]=Object.create(null)),m=a.split(/ (?!$)/).map(O=>kw(O,e));for(let O=1;O{let x=Jt={view:v,prefix:y,scope:o};return setTimeout(()=>{Jt==x&&(Jt=null)},Pw),!0}]})}let p=m.join(" ");n(p,!1);let g=d[p]||(d[p]={preventDefault:!1,stopPropagation:!1,run:((f=(u=d._any)===null||u===void 0?void 0:u.run)===null||f===void 0?void 0:f.slice())||[]});l&&g.run.push(l),c&&(g.preventDefault=!0),h&&(g.stopPropagation=!0)};for(let o of i){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:u}=o;for(let f in h)h[f].run.push(d=>u(d,vc))}let l=o[e]||o.key;if(l)for(let c of a)s(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}var vc=null;function Qp(i,e,t,r){vc=e;let n=Uf(e),s=ue(n,0),o=Qe(s)==n.length&&n!=" ",a="",l=!1,c=!1,h=!1;Jt&&Jt.view==t&&Jt.scope==r&&(a=Jt.prefix+" ",gp.indexOf(e.keyCode)<0&&(c=!0,Jt=null));let u=new Set,f=g=>{if(g){for(let O of g.run)if(!u.has(O)&&(u.add(O),O(t)))return g.stopPropagation&&(h=!0),!0;g.preventDefault&&(g.stopPropagation&&(h=!0),c=!0)}return!1},d=i[r],m,p;return d&&(f(d[a+Gs(n,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Q.windows&&e.ctrlKey&&e.altKey)&&(m=Xt[e.keyCode])&&m!=n?(f(d[a+Gs(m,e,!0)])||e.shiftKey&&(p=ar[e.keyCode])!=n&&p!=m&&f(d[a+Gs(p,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(d[a+Gs(n,e,!0)])&&(l=!0),!l&&f(d._any)&&(l=!0)),c&&(l=!0),l&&h&&e.stopPropagation(),vc=null,l}var wn=class i{constructor(e,t,r,n,s){this.className=e,this.left=t,this.top=r,this.width=n,this.height=s}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,r){if(r.empty){let n=e.coordsAtPos(r.head,r.assoc||1);if(!n)return[];let s=Mp(e);return[new i(t,n.left-s.left,n.top-s.top,null,n.bottom-n.top)]}else return Ew(e,t,r)}};function Mp(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==G.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function Sd(i,e,t,r){let n=i.coordsAtPos(e,t*2);if(!n)return r;let s=i.dom.getBoundingClientRect(),o=(n.top+n.bottom)/2,a=i.posAtCoords({x:s.left+1,y:o}),l=i.posAtCoords({x:s.right-1,y:o});return a==null||l==null?r:{from:Math.max(r.from,Math.min(a,l)),to:Math.min(r.to,Math.max(a,l))}}function Ew(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let r=Math.max(t.from,i.viewport.from),n=Math.min(t.to,i.viewport.to),s=i.textDirection==G.LTR,o=i.contentDOM,a=o.getBoundingClientRect(),l=Mp(i),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),u=a.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),f=a.right-(h?parseInt(h.paddingRight):0),d=rc(i,r),m=rc(i,n),p=d.type==Le.Text?d:null,g=m.type==Le.Text?m:null;if(p&&(i.lineWrapping||d.widgetLineBreaks)&&(p=Sd(i,r,1,p)),g&&(i.lineWrapping||m.widgetLineBreaks)&&(g=Sd(i,n,-1,g)),p&&g&&p.from==g.from&&p.to==g.to)return y(v(t.from,t.to,p));{let w=p?v(t.from,null,p):x(d,!1),T=g?v(null,t.to,g):x(m,!0),C=[];return(p||d).to<(g||m).from-(p&&g?1:0)||d.widgetLineBreaks>1&&w.bottom+i.defaultLineHeight/2B&&W.from=qe)break;me>re&&N(Math.max(Ke,re),w==null&&Ke<=B,Math.min(me,qe),T==null&&me>=Y,je.dir)}if(re=Ve.to+1,re>=qe)break}return q.length==0&&N(B,w==null,Y,T==null,i.textDirection),{top:D,bottom:$,horizontal:q}}function x(w,T){let C=a.top+(T?w.top:w.bottom);return{top:C,bottom:C,horizontal:[]}}}function Rw(i,e){return i.constructor==e.constructor&&i.eq(e)}var xc=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,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.scale(),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(eo)!=e.state.facet(eo)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,r=e.facet(eo);for(;t!Rw(t,this.drawn[r]))){let t=this.dom.firstChild,r=0;for(let n of e)n.update&&t&&n.constructor&&this.drawn[r].constructor&&n.update(t,this.drawn[r])?(t=t.nextSibling,r++):this.dom.insertBefore(n.draw(),t);for(;t;){let n=t.nextSibling;t.remove(),t=n}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},eo=A.define();function _p(i){return[se.define(e=>new xc(e,i)),eo.of(i)]}var Dp=!Q.ios,vn=A.define({combine(i){return Ce(i,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Lp(i={}){return[vn.of(i),Aw,Qw,Mw,sp.of(!0)]}function qp(i){return i.startState.facet(vn)!=i.state.facet(vn)}var Aw=_p({above:!0,markers(i){let{state:e}=i,t=e.facet(vn),r=[];for(let n of e.selection.ranges){let s=n==e.selection.main;if(n.empty?!s||Dp:t.drawRangeCursor){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=n.empty?n:k.cursor(n.head,n.head>n.anchor?-1:1);for(let l of wn.forRange(i,o,a))r.push(l)}}return r},update(i,e){i.transactions.some(r=>r.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=qp(i);return t&&kd(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){kd(e.state,i)},class:"cm-cursorLayer"});function kd(i,e){e.style.animationDuration=i.facet(vn).cursorBlinkRate+"ms"}var Qw=_p({above:!1,markers(i){return i.state.selection.ranges.map(e=>e.empty?[]:wn.forRange(i,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||qp(i)},class:"cm-selectionLayer"}),Sc={".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"}},".cm-content":{"& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}};Dp&&(Sc[".cm-line"].caretColor=Sc[".cm-content"].caretColor="transparent !important");var Mw=_e.highest(R.theme(Sc)),Vp=_.define({map(i,e){return i==null?null:e.mapPos(i)}}),sn=ie.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,r)=>r.is(Vp)?r.value:t,i)}}),_w=se.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(sn);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"),(i.startState.field(sn)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(sn),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let r=i.scrollDOM.getBoundingClientRect();return{left:t.left-r.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-r.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(sn)!=i&&this.view.dispatch({effects:Vp.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function $p(){return[sn,_w]}function Td(i,e,t,r,n){e.lastIndex=0;for(let s=i.iterRange(t,r),o=t,a;!s.next().done;o+=s.value.length)if(!s.lineBreak)for(;a=e.exec(s.value);)n(o+a.index,a)}function Dw(i,e){let t=i.visibleRanges;if(t.length==1&&t[0].from==i.viewport.from&&t[0].to==i.viewport.to)return t;let r=[];for(let{from:n,to:s}of t)n=Math.max(i.state.doc.lineAt(n).from,n-e),s=Math.min(i.state.doc.lineAt(s).to,s+e),r.length&&r[r.length-1].to>=n?r[r.length-1].to=s:r.push({from:n,to:s});return r}var kc=class{constructor(e){let{regexp:t,decoration:r,decorate:n,boundary:s,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,n)this.addMatch=(a,l,c,h)=>n(h,c,c+a[0].length,a,l);else if(typeof r=="function")this.addMatch=(a,l,c,h)=>{let u=r(a,l,c);u&&h(c,c+a[0].length,u)};else if(r)this.addMatch=(a,l,c,h)=>h(c,c+a[0].length,r);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=o}createDeco(e){let t=new ut,r=t.add.bind(t);for(let{from:n,to:s}of Dw(e,this.maxLength))Td(e.state.doc,this.regexp,n,s,(o,a)=>this.addMatch(a,e,o,r));return t.finish()}updateDeco(e,t){let r=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((s,o,a,l)=>{l>e.view.viewport.from&&a1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,t.map(e.changes),r,n):t}updateRange(e,t,r,n){for(let s of e.visibleRanges){let o=Math.max(s.from,r),a=Math.min(s.to,n);if(a>o){let l=e.state.doc.lineAt(o),c=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){h=o;break}for(;af.push(O.range(p,g));if(l==c)for(this.regexp.lastIndex=h-l.from;(d=this.regexp.exec(l.text))&&d.indexthis.addMatch(g,e,p,m));t=t.update({filterFrom:h,filterTo:u,filter:(p,g)=>pu,add:f})}}return t}},Tc=/x/.unicode!=null?"gu":"g",Lw=new RegExp(`[\0-\b
--\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Tc),qw={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"},Nl=null;function Vw(){var i;if(Nl==null&&typeof document<"u"&&document.body){let e=document.body.style;Nl=((i=e.tabSize)!==null&&i!==void 0?i:e.MozTabSize)!=null}return Nl||!1}var to=A.define({combine(i){let e=Ce(i,{render:null,specialChars:Lw,addSpecialChars:null});return(e.replaceTabs=!Vw())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Tc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Tc)),e}});function Bp(i={}){return[to.of(i),$w()]}var Pd=null;function $w(){return Pd||(Pd=se.fromClass(class{constructor(i){this.view=i,this.decorations=M.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(i.state.facet(to)),this.decorations=this.decorator.createDeco(i)}makeDecorator(i){return new kc({regexp:i.specialChars,decoration:(e,t,r)=>{let{doc:n}=t.state,s=ue(e[0],0);if(s==9){let o=n.lineAt(r),a=t.state.tabSize,l=Bt(o.text,a,r-o.from);return M.replace({widget:new Cc((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[s]||(this.decorationCache[s]=M.replace({widget:new Pc(i,s)}))},boundary:i.replaceTabs?void 0:/[^]/})}update(i){let e=i.state.facet(to);i.startState.facet(to)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(i.view)):this.decorations=this.decorator.updateDeco(i,this.decorations)}},{decorations:i=>i.decorations}))}var Bw="\u2022";function Xw(i){return i>=32?Bw:i==10?"\u2424":String.fromCharCode(9216+i)}var Pc=class extends Ne{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=Xw(this.code),r=e.state.phrase("Control character")+" "+(qw[this.code]||"0x"+this.code.toString(16)),n=this.options.render&&this.options.render(this.code,r,t);if(n)return n;let s=document.createElement("span");return s.textContent=t,s.title=r,s.setAttribute("aria-label",r),s.className="cm-specialChar",s}ignoreEvent(){return!1}},Cc=class extends Ne{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 Xp(){return Iw}var Nw=M.line({class:"cm-activeLine"}),Iw=se.fromClass(class{constructor(i){this.decorations=this.getDeco(i)}update(i){(i.docChanged||i.selectionSet)&&(this.decorations=this.getDeco(i.view))}getDeco(i){let e=-1,t=[];for(let r of i.state.selection.ranges){let n=i.lineBlockAt(r.head);n.from>e&&(t.push(Nw.range(n.from)),e=n.from)}return M.set(t)}},{decorations:i=>i.decorations});var Ec=2e3;function Ww(i,e,t){let r=Math.min(e.line,t.line),n=Math.max(e.line,t.line),s=[];if(e.off>Ec||t.off>Ec||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=r;l<=n;l++){let c=i.doc.line(l);c.length<=a&&s.push(k.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=r;l<=n;l++){let c=i.doc.line(l),h=Xs(c.text,o,i.tabSize,!0);if(h<0)s.push(k.cursor(c.to));else{let u=Xs(c.text,a,i.tabSize);s.push(k.range(c.from+h,c.from+u))}}}return s}function jw(i,e){let t=i.coordsAtPos(i.viewport.from);return t?Math.round(Math.abs((t.left-e)/i.defaultCharacterWidth)):-1}function Cd(i,e){let t=i.posAtCoords({x:e.clientX,y:e.clientY},!1),r=i.state.doc.lineAt(t),n=t-r.from,s=n>Ec?-1:n==r.length?jw(i,e.clientX):Bt(r.text,i.state.tabSize,t-r.from);return{line:r.number,col:s,off:n}}function zw(i,e){let t=Cd(i,e),r=i.state.selection;return t?{update(n){if(n.docChanged){let s=n.changes.mapPos(n.startState.doc.line(t.line).from),o=n.state.doc.lineAt(s);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},r=r.map(n.changes)}},get(n,s,o){let a=Cd(i,n);if(!a)return r;let l=Ww(i.state,t,a);return l.length?o?k.create(l.concat(r.ranges)):k.create(l):r}}:null}function Np(i){let e=i?.eventFilter||(t=>t.altKey&&t.button==0);return R.mouseSelectionStyle.of((t,r)=>e(r)?zw(t,r):null)}var Uw={Alt:[18,i=>!!i.altKey],Control:[17,i=>!!i.ctrlKey],Shift:[16,i=>!!i.shiftKey],Meta:[91,i=>!!i.metaKey]},Fw={style:"cursor: crosshair"};function Ip(i={}){let[e,t]=Uw[i.key||"Alt"],r=se.fromClass(class{constructor(n){this.view=n,this.isDown=!1}set(n){this.isDown!=n&&(this.isDown=n,this.view.update([]))}},{eventObservers:{keydown(n){this.set(n.keyCode==e||t(n))},keyup(n){(n.keyCode==e||!t(n))&&this.set(!1)},mousemove(n){this.set(t(n))}}});return[r,R.contentAttributes.of(n=>{var s;return!((s=n.plugin(r))===null||s===void 0)&&s.isDown?Fw:null})]}var Kr="-10000px",po=class{constructor(e,t,r,n){this.facet=t,this.createTooltipView=r,this.removeTooltipView=n,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let s=null;this.tooltipViews=this.tooltips.map(o=>s=r(o,s))}update(e,t){var r;let n=e.state.facet(this.facet),s=n.filter(l=>l);if(n===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;lt[c]=l),t.length=a.length),this.input=n,this.tooltips=s,this.tooltipViews=o,!0}};function Hw(i){let{win:e}=i;return{top:0,left:0,bottom:e.innerHeight,right:e.innerWidth}}var Il=A.define({combine:i=>{var e,t,r;return{position:Q.ios?"absolute":((e=i.find(n=>n.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=i.find(n=>n.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((r=i.find(n=>n.tooltipSpace))===null||r===void 0?void 0:r.tooltipSpace)||Hw}}}),Ed=new WeakMap,$c=se.fromClass(class{constructor(i){this.view=i,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=i.state.facet(Il);this.position=e.position,this.parent=e.parent,this.classes=i.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new po(i,xn,(t,r)=>this.createTooltip(t,r),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),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(),i.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 i of this.manager.tooltipViews)this.intersectionObserver.observe(i.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(i){i.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(i,this.above);e&&this.observeIntersection();let t=e||i.geometryChanged,r=i.state.facet(Il);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let n of this.manager.tooltipViews)n.dom.style.position=this.position;t=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let n of this.manager.tooltipViews)this.container.appendChild(n.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(i,e){let t=i.create(this.view),r=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),i.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let n=document.createElement("div");n.className="cm-tooltip-arrow",t.dom.appendChild(n)}return t.dom.style.position=this.position,t.dom.style.top=Kr,t.dom.style.left="0px",this.container.insertBefore(t.dom,r),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var i,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),(i=r.destroy)===null||i===void 0||i.call(r);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let i=this.view.dom.getBoundingClientRect(),e=1,t=1,r=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:n}=this.manager.tooltipViews[0];if(Q.gecko)r=n.offsetParent!=this.container.ownerDocument.body;else if(n.style.top==Kr&&n.style.left=="0px"){let s=n.getBoundingClientRect();r=Math.abs(s.top+1e4)>1||Math.abs(s.left)>1}}if(r||this.position=="absolute")if(this.parent){let n=this.parent.getBoundingClientRect();n.width&&n.height&&(e=n.width/this.parent.offsetWidth,t=n.height/this.parent.offsetHeight)}else({scaleX:e,scaleY:t}=this.view.viewState);return{editor:i,parent:this.parent?this.container.getBoundingClientRect():i,pos:this.manager.tooltips.map((n,s)=>{let o=this.manager.tooltipViews[s];return o.getCoords?o.getCoords(n.pos):this.view.coordsAtPos(n.pos)}),size:this.manager.tooltipViews.map(({dom:n})=>n.getBoundingClientRect()),space:this.view.state.facet(Il).tooltipSpace(this.view),scaleX:e,scaleY:t,makeAbsolute:r}}writeMeasure(i){var e;if(i.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{editor:t,space:r,scaleX:n,scaleY:s}=i,o=[];for(let a=0;a=Math.min(t.bottom,r.bottom)||u.rightMath.min(t.right,r.right)+.1){h.style.top=Kr;continue}let d=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=d?7:0,p=f.right-f.left,g=(e=Ed.get(c))!==null&&e!==void 0?e:f.bottom-f.top,O=c.offset||Yw,y=this.view.textDirection==G.LTR,v=f.width>r.right-r.left?y?r.left:r.right-f.width:y?Math.min(u.left-(d?14:0)+O.x,r.right-p):Math.max(r.left,u.left-p+(d?14:0)-O.x),x=this.above[a];!l.strictSide&&(x?u.top-(f.bottom-f.top)-O.yr.bottom)&&x==r.bottom-u.bottom>u.top-r.top&&(x=this.above[a]=!x);let w=(x?u.top-r.top:r.bottom-u.bottom)-m;if(wv&&D.topT&&(T=x?D.top-g-2-m:D.bottom+m+2);if(this.position=="absolute"?(h.style.top=(T-i.parent.top)/s+"px",h.style.left=(v-i.parent.left)/n+"px"):(h.style.top=T/s+"px",h.style.left=v/n+"px"),d){let D=u.left+(y?O.x:-O.x)-(v+14-7);d.style.left=D/n+"px"}c.overlap!==!0&&o.push({left:v,top:T,right:C,bottom:T+g}),h.classList.toggle("cm-tooltip-above",x),h.classList.toggle("cm-tooltip-below",!x),c.positioned&&c.positioned(i.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 i of this.manager.tooltipViews)i.dom.style.top=Kr}},{eventObservers:{scroll(){this.maybeMeasure()}}}),Gw=R.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:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),Yw={x:0,y:0},xn=A.define({enables:[$c,Gw]}),mo=A.define({combine:i=>i.reduce((e,t)=>e.concat(t),[])}),go=class i{static create(e){return new i(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new po(e,mo,(t,r)=>this.createHostedView(t,r),t=>t.dom.remove())}createHostedView(e,t){let r=e.create(this.view);return r.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(r.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&r.mount&&r.mount(this.view),r}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)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let r of this.manager.tooltipViews){let n=r[e];if(n!==void 0){if(t===void 0)t=n;else if(t!==n)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}},Zw=xn.compute([mo],i=>{let e=i.facet(mo);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var r;return(r=t.end)!==null&&r!==void 0?r:t.pos})),create:go.create,above:e[0].above,arrow:e.some(t=>t.arrow)}}),Rc=class{constructor(e,t,r,n,s){this.view=e,this.source=t,this.field=r,this.setHover=n,this.hoverTime=s,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.length)return;let e=Date.now()-this.lastMove.time;ea.bottom||t.xa.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(n)).find(h=>h.from<=n&&h.to>=n),c=l&&l.dir==G.RTL?-1:1;s=t.x{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>xe(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin($c),t=e?e.manager.tooltips.findIndex(r=>r.create==go.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,r;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{active:n,tooltip:s}=this;if(n.length&&s&&!Jw(s.dom,e)||this.pending){let{pos:o}=n[0]||this.pending,a=(r=(t=n[0])===null||t===void 0?void 0:t.end)!==null&&r!==void 0?r:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!Kw(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:r}=this;r&&r.dom.contains(e.relatedTarget)?this.watchTooltipLeave(r.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=r=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(r.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}},Ys=4;function Jw(i,e){let t=i.getBoundingClientRect();return e.clientX>=t.left-Ys&&e.clientX<=t.right+Ys&&e.clientY>=t.top-Ys&&e.clientY<=t.bottom+Ys}function Kw(i,e,t,r,n,s){let o=i.scrollDOM.getBoundingClientRect(),a=i.documentTop+i.documentPadding.top+i.contentHeight;if(o.left>r||o.rightn||Math.min(o.bottom,a)=e&&l<=t}function Wp(i,e={}){let t=_.define(),r=ie.define({create(){return[]},update(n,s){if(n.length&&(e.hideOnChange&&(s.docChanged||s.selection)?n=[]:e.hideOn&&(n=n.filter(o=>!e.hideOn(s,o))),s.docChanged)){let o=[];for(let a of n){let l=s.changes.mapPos(a.pos,-1,Oe.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=s.changes.mapPos(c.end)),o.push(c)}}n=o}for(let o of s.effects)o.is(t)&&(n=o.value),o.is(ev)&&(n=[]);return n},provide:n=>mo.from(n)});return[r,se.define(n=>new Rc(n,i,r,t,e.hoverTime||300)),Zw]}function Bc(i,e){let t=i.plugin($c);if(!t)return null;let r=t.manager.tooltips.indexOf(e);return r<0?null:t.manager.tooltipViews[r]}var ev=_.define();var Rd=A.define({combine(i){let e,t;for(let r of i)e=e||r.topContainer,t=t||r.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Qi(i,e){let t=i.plugin(jp),r=t?t.specs.indexOf(e):-1;return r>-1?t.panels[r]:null}var jp=se.fromClass(class{constructor(i){this.input=i.state.facet(Ai),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(i));let e=i.state.facet(Rd);this.top=new hr(i,!0,e.topContainer),this.bottom=new hr(i,!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(i){let e=i.state.facet(Rd);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new hr(i.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new hr(i.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=i.state.facet(Ai);if(t!=this.input){let r=t.filter(l=>l),n=[],s=[],o=[],a=[];for(let l of r){let c=this.specs.indexOf(l),h;c<0?(h=l(i.view),a.push(h)):(h=this.panels[c],h.update&&h.update(i)),n.push(h),(h.top?s:o).push(h)}this.specs=r,this.panels=n,this.top.sync(s),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let r of this.panels)r.update&&r.update(i)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:i=>R.scrollMargins.of(e=>{let t=e.plugin(i);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})}),hr=class{constructor(e,t,r){this.view=e,this.top=t,this.container=r,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=Ad(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Ad(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 Ad(i){let e=i.nextSibling;return i.remove(),e}var Ai=A.define({enables:jp}),He=class extends ht{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};He.prototype.elementClass="";He.prototype.toDOM=void 0;He.prototype.mapMode=Oe.TrackBefore;He.prototype.startSide=He.prototype.endSide=-1;He.prototype.point=!0;var io=A.define(),tv={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>z.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},un=A.define();function Xc(i){return[zp(),un.of(Object.assign(Object.assign({},tv),i))]}var Ac=A.define({combine:i=>i.some(e=>e)});function zp(i){let e=[iv];return i&&i.fixed===!1&&e.push(Ac.of(!0)),e}var iv=se.fromClass(class{constructor(i){this.view=i,this.prevViewport=i.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=i.state.facet(un).map(e=>new Oo(i,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!i.state.facet(Ac),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),i.scrollDOM.insertBefore(this.dom,i.contentDOM)}update(i){if(this.updateGutters(i)){let e=this.prevViewport,t=i.view.viewport,r=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(r<(t.to-t.from)*.8)}i.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(Ac)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=i.view.viewport}syncGutters(i){let e=this.dom.nextSibling;i&&this.dom.remove();let t=z.iter(this.view.state.facet(io),this.view.viewport.from),r=[],n=this.gutters.map(s=>new Mc(s,this.view.viewport,-this.view.documentPadding.top));for(let s of this.view.viewportLineBlocks)if(r.length&&(r=[]),Array.isArray(s.type)){let o=!0;for(let a of s.type)if(a.type==Le.Text&&o){Qc(t,r,a.from);for(let l of n)l.line(this.view,a,r);o=!1}else if(a.widget)for(let l of n)l.widget(this.view,a)}else if(s.type==Le.Text){Qc(t,r,s.from);for(let o of n)o.line(this.view,s,r)}else if(s.widget)for(let o of n)o.widget(this.view,s);for(let s of n)s.finish();i&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(i){let e=i.startState.facet(un),t=i.state.facet(un),r=i.docChanged||i.heightChanged||i.viewportChanged||!z.eq(i.startState.facet(io),i.state.facet(io),i.view.viewport.from,i.view.viewport.to);if(e==t)for(let n of this.gutters)n.update(i)&&(r=!0);else{r=!0;let n=[];for(let s of t){let o=e.indexOf(s);o<0?n.push(new Oo(this.view,s)):(this.gutters[o].update(i),n.push(this.gutters[o]))}for(let s of this.gutters)s.dom.remove(),n.indexOf(s)<0&&s.destroy();for(let s of n)this.dom.appendChild(s.dom);this.gutters=n}return r}destroy(){for(let i of this.gutters)i.destroy();this.dom.remove()}},{provide:i=>R.scrollMargins.of(e=>{let t=e.plugin(i);return!t||t.gutters.length==0||!t.fixed?null:e.textDirection==G.LTR?{left:t.dom.offsetWidth*e.scaleX}:{right:t.dom.offsetWidth*e.scaleX}})});function Qd(i){return Array.isArray(i)?i:[i]}function Qc(i,e,t){for(;i.value&&i.from<=t;)i.from==t&&e.push(i.value),i.next()}var Mc=class{constructor(e,t,r){this.gutter=e,this.height=r,this.i=0,this.cursor=z.iter(e.markers,t.from)}addElement(e,t,r){let{gutter:n}=this,s=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==n.elements.length){let a=new yo(e,o,s,r);n.elements.push(a),n.dom.appendChild(a.dom)}else n.elements[this.i].update(e,o,s,r);this.height=t.bottom,this.i++}line(e,t,r){let n=[];Qc(this.cursor,n,t.from),r.length&&(n=n.concat(r));let s=this.gutter.config.lineMarker(e,t,n);s&&n.unshift(s);let o=this.gutter;n.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,n)}widget(e,t){let r=this.gutter.config.widgetMarker(e,t.widget,t);r&&this.addElement(e,t,[r])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}},Oo=class{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 r in t.domEventHandlers)this.dom.addEventListener(r,n=>{let s=n.target,o;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let l=s.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=n.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[r](e,a,n)&&n.preventDefault()});this.markers=Qd(t.markers(e)),t.initialSpacer&&(this.spacer=new yo(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=Qd(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let n=this.config.updateSpacer(this.spacer.markers[0],e);n!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[n])}let r=e.view.viewport;return!z.eq(this.markers,t,r.from,r.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}},yo=class{constructor(e,t,r,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,r,n)}update(e,t,r,n){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=r&&(this.dom.style.marginTop=(this.above=r)?r+"px":""),rv(this.markers,n)||this.setMarkers(e,n)}setMarkers(e,t){let r="cm-gutterElement",n=this.dom.firstChild;for(let s=0,o=0;;){let a=o,l=ss(a,l,c)||o(a,l,c):o}return r}})}}),fn=class extends He{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}};function Wl(i,e){return i.state.facet(ur).formatNumber(e,i.state)}var sv=un.compute([ur],i=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(nv)},lineMarker(e,t,r){return r.some(n=>n.toDOM)?null:new fn(Wl(e,e.state.doc.lineAt(t.from).number))},widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(ur)!=e.state.facet(ur),initialSpacer(e){return new fn(Wl(e,Md(e.state.doc.lines)))},updateSpacer(e,t){let r=Wl(t.view,Md(t.view.state.doc.lines));return r==e.number?e:new fn(r)},domEventHandlers:i.facet(ur).domEventHandlers}));function Up(i={}){return[ur.of(i),zp(),sv]}function Md(i){let e=9;for(;e{let e=[],t=-1;for(let r of i.selection.ranges){let n=i.doc.lineAt(r.head).from;n>t&&(t=n,e.push(ov.range(n)))}return z.of(e)});function Fp(){return av}var lv=0,Sn=class{constructor(e,t){this.from=e,this.to=t}},L=class{constructor(e={}){this.id=lv++,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=Ee.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};L.closedBy=new L({deserialize:i=>i.split(" ")});L.openedBy=new L({deserialize:i=>i.split(" ")});L.group=new L({deserialize:i=>i.split(" ")});L.isolate=new L({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});L.contextHash=new L({perNode:!0});L.lookAhead=new L({perNode:!0});L.mounted=new L({perNode:!0});var dr=class{constructor(e,t,r){this.tree=e,this.overlay=t,this.parser=r}static get(e){return e&&e.props&&e.props[L.mounted.id]}},cv=Object.create(null),Ee=class i{constructor(e,t,r,n=0){this.name=e,this.props=t,this.id=r,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):cv,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new i(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(n)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return n}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(L.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let n of r.split(" "))t[n]=e[r];return r=>{for(let n=r.prop(L.group),s=-1;s<(n?n.length:0);s++){let o=t[s<0?r.name:n[s]];if(o)return o}}}};Ee.none=new Ee("",Object.create(null),0,8);var kn=class i{constructor(e){this.types=e;for(let t=0;t0;for(let l=this.cursor(o|ae.IncludeAnonymous);;){let c=!1;if(l.from<=s&&l.to>=n&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;c=!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:Fc(Ee.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,n)=>new i(this.type,t,r,n,this.propValues),e.makeTree||((t,r,n)=>new i(Ee.none,t,r,n)))}static build(e){return uv(e)}};ce.empty=new ce(Ee.none,[],[],0);var Nc=class i{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 i(this.buffer,this.index)}},ri=class i{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return Ee.none}toString(){let e=[];for(let t=0;t0));l=o[l+3]);return a}slice(e,t,r){let n=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a=e&&te;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function Tn(i,e,t,r){for(var n;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?a.length:-1;e!=c;e+=t){let h=a[e],u=l[e]+o.from;if(Zp(n,r,u,u+h.length)){if(h instanceof ri){if(s&ae.ExcludeBuffers)continue;let f=h.findChild(0,h.buffer.length,t,r-u,n);if(f>-1)return new Mi(new Wc(o,h,e,u),null,f)}else if(s&ae.IncludeAnonymous||!h.type.isAnonymous||Uc(h)){let f;if(!(s&ae.IgnoreMounts)&&(f=dr.get(h))&&!f.overlay)return new i(f.tree,u,e,o);let d=new i(h,u,e,o);return s&ae.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?h.children.length-1:0,t,r,n)}}}if(s&ae.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))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,r=0){let n;if(!(r&ae.IgnoreOverlays)&&(n=dr.get(this._tree))&&n.overlay){let s=e-this.from;for(let{from:o,to:a}of n.overlay)if((t>0?o<=s:o=s:a>s))return new i(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}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}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Gp(i,e,t,r){let n=i.cursor(),s=[];if(!n.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=n.type.is(t),!n.nextSibling())return s}for(;;){if(r!=null&&n.type.is(r))return s;if(n.type.is(e)&&s.push(n.node),!n.nextSibling())return r==null?s:[]}}function Ic(i,e,t=e.length-1){for(let r=i.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Wc=class{constructor(e,t,r,n){this.parent=e,this.buffer=t,this.index=r,this.start=n}},Mi=class i extends xo{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,r){super(),this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new i(this.context,this,s)}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,r=0){if(r&ae.ExcludeBuffers)return null;let{buffer:n}=this.context,s=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}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 i(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 i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,n=this.index+4,s=r.buffer[this.index+3];if(s>n){let o=r.buffer[this.index+1];e.push(r.slice(n,s,o)),t.push(0)}return new ce(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function Jp(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let a=new ot(o.tree,o.overlay[0].from+s.from,-1,s);(n||(n=[r])).push(Tn(a,e,t,!1))}}return n?Jp(n):r}var Pn=class{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 ot)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.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:r,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=r+n.buffer[e+1],this.to=r+n.buffer[e+2],!0}yield(e){return e?e instanceof ot?(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,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:n}=this.buffer,s=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}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,r=this.mode){return this.buffer?r&ae.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ae.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&ae.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,r=this.stack.length-1;if(e<0){let n=r<0?0:this.stack[r]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(n)}return r<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,r,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&ae.IncludeAnonymous||a instanceof ri||!a.type.isAnonymous||Uc(a))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 o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;t=o,r=s+1;break e}n=this.stack[--s]}for(let n=r;n=0;s--){if(s<0)return Ic(this.node,e,n);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}};function Uc(i){return i.children.some(e=>e instanceof ri||!e.type.isAnonymous||Uc(e))}function uv(i){var e;let{buffer:t,nodeSet:r,maxBufferLength:n=1024,reused:s=[],minRepeatType:o=r.types.length}=i,a=Array.isArray(t)?new Nc(t,t.length):t,l=r.types,c=0,h=0;function u(w,T,C,D,$,q){let{id:N,start:B,end:Y,size:W}=a,re=h;for(;W<0;)if(a.next(),W==-1){let me=s[N];C.push(me),D.push(B-w);return}else if(W==-3){c=N;return}else if(W==-4){h=N;return}else throw new RangeError(`Unrecognized record size: ${W}`);let qe=l[N],Ve,je,Ke=B-w;if(Y-B<=n&&(je=g(a.pos-T,$))){let me=new Uint16Array(je.size-je.skip),et=a.pos-je.size,gt=me.length;for(;a.pos>et;)gt=O(je.start,me,gt);Ve=new ri(me,Y-je.start,r),Ke=je.start-w}else{let me=a.pos-W;a.next();let et=[],gt=[],pi=N>=o?N:-1,ji=0,ts=Y;for(;a.pos>me;)pi>=0&&a.id==pi&&a.size>=0?(a.end<=ts-n&&(m(et,gt,B,ji,a.end,ts,pi,re),ji=et.length,ts=a.end),a.next()):q>2500?f(B,me,et,gt):u(B,me,et,gt,pi,q+1);if(pi>=0&&ji>0&&ji-1&&ji>0){let Cu=d(qe);Ve=Fc(qe,et,gt,0,et.length,0,Y-B,Cu,Cu)}else Ve=p(qe,et,gt,Y-B,re-Y)}C.push(Ve),D.push(Ke)}function f(w,T,C,D){let $=[],q=0,N=-1;for(;a.pos>T;){let{id:B,start:Y,end:W,size:re}=a;if(re>4)a.next();else{if(N>-1&&Y=0;W-=3)B[re++]=$[W],B[re++]=$[W+1]-Y,B[re++]=$[W+2]-Y,B[re++]=re;C.push(new ri(B,$[2]-Y,r)),D.push(Y-w)}}function d(w){return(T,C,D)=>{let $=0,q=T.length-1,N,B;if(q>=0&&(N=T[q])instanceof ce){if(!q&&N.type==w&&N.length==D)return N;(B=N.prop(L.lookAhead))&&($=C[q]+N.length+B)}return p(w,T,C,D,$)}}function m(w,T,C,D,$,q,N,B){let Y=[],W=[];for(;w.length>D;)Y.push(w.pop()),W.push(T.pop()+C-$);w.push(p(r.types[N],Y,W,q-$,B-q)),T.push($-C)}function p(w,T,C,D,$=0,q){if(c){let N=[L.contextHash,c];q=q?[N].concat(q):[N]}if($>25){let N=[L.lookAhead,$];q=q?[N].concat(q):[N]}return new ce(w,T,C,D,q)}function g(w,T){let C=a.fork(),D=0,$=0,q=0,N=C.end-n,B={size:0,start:0,skip:0};e:for(let Y=C.pos-w;C.pos>Y;){let W=C.size;if(C.id==T&&W>=0){B.size=D,B.start=$,B.skip=q,q+=4,D+=4,C.next();continue}let re=C.pos-W;if(W<0||re=o?4:0,Ve=C.start;for(C.next();C.pos>re;){if(C.size<0)if(C.size==-3)qe+=4;else break e;else C.id>=o&&(qe+=4);C.next()}$=Ve,D+=W,q+=qe}return(T<0||D==w)&&(B.size=D,B.start=$,B.skip=q),B.size>4?B:void 0}function O(w,T,C){let{id:D,start:$,end:q,size:N}=a;if(a.next(),N>=0&&D4){let Y=a.pos-(N-4);for(;a.pos>Y;)C=O(w,T,C)}T[--C]=B,T[--C]=q-w,T[--C]=$-w,T[--C]=D}else N==-3?c=D:N==-4&&(h=D);return C}let y=[],v=[];for(;a.pos>0;)u(i.start||0,i.bufferStart||0,y,v,-1,0);let x=(e=i.length)!==null&&e!==void 0?e:y.length?v[0]+y[0].length:0;return new ce(l[i.topID],y.reverse(),v.reverse(),x)}var Yp=new WeakMap;function vo(i,e){if(!i.isAnonymous||e instanceof ri||e.type!=i)return 1;let t=Yp.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=i||!(r instanceof ce)){t=1;break}t+=vo(i,r)}Yp.set(e,t)}return t}function Fc(i,e,t,r,n,s,o,a,l){let c=0;for(let m=r;m=h)break;T+=C}if(v==x+1){if(T>h){let C=m[x];d(C.children,C.positions,0,C.children.length,p[x]+y);continue}u.push(m[x])}else{let C=p[v-1]+m[v-1].length-w;u.push(Fc(i,m,p,x,v,w,C,null,l))}f.push(w+y-s)}}return d(e,t,r,n,0),(a||l)(u,f,o)}var So=class{constructor(){this.map=new WeakMap}setBuffer(e,t,r){let n=this.map.get(e);n||this.map.set(e,n=new Map),n.set(t,r)}getBuffer(e,t){let r=this.map.get(e);return r&&r.get(t)}set(e,t){e instanceof Mi?this.setBuffer(e.context.buffer,e.index,t):e instanceof ot&&this.map.set(e.tree,t)}get(e){return e instanceof Mi?this.getBuffer(e.context.buffer,e.index):e instanceof ot?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)}},_i=class i{constructor(e,t,r,n,s=!1,o=!1){this.from=e,this.to=t,this.tree=r,this.offset=n,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],r=!1){let n=[new i(0,e.length,e,0,!1,r)];for(let s of t)s.to>e.length&&n.push(s);return n}static applyChanges(e,t,r=128){if(!t.length)return e;let n=[],s=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let h=a=r)for(;o&&o.from=f.from||u<=f.to||c){let d=Math.max(f.from,l)-c,m=Math.min(f.to,u)-c;f=d>=m?null:new i(d,m,f.tree,f.offset+c,a>0,!!h)}if(f&&n.push(f),o.to>u)break;o=snew Sn(n.from,n.to)):[new Sn(0,0)]:[new Sn(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let n=this.startParse(e,t,r);for(;;){let s=n.advance();if(s)return s}}},zc=class{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)}};var JP=new L({perNode:!0});var fv=0,Et=class i{constructor(e,t,r){this.set=e,this.base=t,this.modified=r,this.id=fv++}static define(e){if(e?.base)throw new Error("Can not derive from a modified tag");let t=new i([],null,[]);if(t.set.push(t),e)for(let r of e.set)t.set.push(r);return t}static defineModifier(){let e=new Co;return t=>t.modified.indexOf(e)>-1?t:Co.get(t.base||t,t.modified.concat(e).sort((r,n)=>r.id-n.id))}},dv=0,Co=class i{constructor(){this.instances=[],this.id=dv++}static get(e,t){if(!t.length)return e;let r=t[0].instances.find(a=>a.base==e&&pv(t,a.modified));if(r)return r;let n=[],s=new Et(n,e,t);for(let a of t)a.instances.push(s);let o=mv(t);for(let a of e.set)if(!a.modified.length)for(let l of o)n.push(i.get(a,l));return s}};function pv(i,e){return i.length==e.length&&i.every((t,r)=>t==e[r])}function mv(i){let e=[[]];for(let t=0;tr.length-t.length)}function gr(i){let e=Object.create(null);for(let t in i){let r=i[t];Array.isArray(r)||(r=[r]);for(let n of t.split(" "))if(n){let s=[],o=2,a=n;for(let u=0;;){if(a=="..."&&u>0&&u+3==n.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+n);if(s.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),u+=f[0].length,u==n.length)break;let d=n[u++];if(u==n.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);a=n.slice(u)}let l=s.length-1,c=s[l];if(!c)throw new RangeError("Invalid path: "+n);let h=new mr(r,o,l>0?s.slice(0,l):null);e[c]=h.sort(e[c])}}return tm.add(e)}var tm=new L,mr=class{constructor(e,t,r,n){this.tags=e,this.mode=t,this.context=r,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let a of s)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:r}}function gv(i,e){let t=null;for(let r of i){let n=r.style(e);n&&(t=t?t+" "+n:n)}return t}function Zc(i,e,t,r=0,n=i.length){let s=new Gc(r,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),r,n,"",s.highlighters),s.flush(n)}function Jc(i,e,t,r,n,s=0,o=i.length){let a=s;function l(c,h){if(!(c<=a)){for(let u=i.slice(a,c),f=0;;){let d=u.indexOf(`
-`,f),m=d<0?u.length:d;if(m>f&&r(u.slice(f,m),h),d<0)break;n(),f=d+1}a=c}}Zc(e,t,(c,h,u)=>{l(c,""),l(h,u)},s,o),l(o,"")}var Gc=class{constructor(e,t,r){this.at=e,this.highlighters=t,this.span=r,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,r,n,s){let{type:o,from:a,to:l}=e;if(a>=r||l<=t)return;o.isTop&&(s=this.highlighters.filter(d=>!d.scope||d.scope(o)));let c=n,h=Ov(e)||mr.empty,u=gv(s,h.tags);if(u&&(c&&(c+=" "),c+=u,h.mode==1&&(n+=(n?" ":"")+u)),this.startSpan(Math.max(t,a),c),h.opaque)return;let f=e.tree&&e.tree.prop(L.mounted);if(f&&f.overlay){let d=e.node.enter(f.overlay[0].from+a,1),m=this.highlighters.filter(g=>!g.scope||g.scope(f.tree.type)),p=e.firstChild();for(let g=0,O=a;;g++){let y=g=v||!e.nextSibling())););if(!y||v>r)break;O=y.to+a,O>t&&(this.highlightRange(d.cursor(),Math.max(t,y.from+a),Math.min(r,O),"",m),this.startSpan(Math.min(r,O),c))}p&&e.parent()}else if(e.firstChild()){f&&(n="");do if(!(e.to<=t)){if(e.from>=r)break;this.highlightRange(e,t,r,n,s),this.startSpan(Math.min(r,e.to),c)}while(e.nextSibling());e.parent()}}};function Ov(i){let e=i.type.prop(tm);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var E=Et.define,ko=E(),ni=E(),Kp=E(ni),em=E(ni),si=E(),To=E(si),Hc=E(si),Ct=E(),Di=E(Ct),Tt=E(),Pt=E(),Yc=E(),Cn=E(Yc),Po=E(),b={comment:ko,lineComment:E(ko),blockComment:E(ko),docComment:E(ko),name:ni,variableName:E(ni),typeName:Kp,tagName:E(Kp),propertyName:em,attributeName:E(em),className:E(ni),labelName:E(ni),namespace:E(ni),macroName:E(ni),literal:si,string:To,docString:E(To),character:E(To),attributeValue:E(To),number:Hc,integer:E(Hc),float:E(Hc),bool:E(si),regexp:E(si),escape:E(si),color:E(si),url:E(si),keyword:Tt,self:E(Tt),null:E(Tt),atom:E(Tt),unit:E(Tt),modifier:E(Tt),operatorKeyword:E(Tt),controlKeyword:E(Tt),definitionKeyword:E(Tt),moduleKeyword:E(Tt),operator:Pt,derefOperator:E(Pt),arithmeticOperator:E(Pt),logicOperator:E(Pt),bitwiseOperator:E(Pt),compareOperator:E(Pt),updateOperator:E(Pt),definitionOperator:E(Pt),typeOperator:E(Pt),controlOperator:E(Pt),punctuation:Yc,separator:E(Yc),bracket:Cn,angleBracket:E(Cn),squareBracket:E(Cn),paren:E(Cn),brace:E(Cn),content:Ct,heading:Di,heading1:E(Di),heading2:E(Di),heading3:E(Di),heading4:E(Di),heading5:E(Di),heading6:E(Di),contentSeparator:E(Ct),list:E(Ct),quote:E(Ct),emphasis:E(Ct),strong:E(Ct),link:E(Ct),monospace:E(Ct),strikethrough:E(Ct),inserted:E(),deleted:E(),changed:E(),invalid:E(),meta:Po,documentMeta:E(Po),annotation:E(Po),processingInstruction:E(Po),definition:Et.defineModifier(),constant:Et.defineModifier(),function:Et.defineModifier(),standard:Et.defineModifier(),local:Et.defineModifier(),special:Et.defineModifier()},tC=En([{tag:b.link,class:"tok-link"},{tag:b.heading,class:"tok-heading"},{tag:b.emphasis,class:"tok-emphasis"},{tag:b.strong,class:"tok-strong"},{tag:b.keyword,class:"tok-keyword"},{tag:b.atom,class:"tok-atom"},{tag:b.bool,class:"tok-bool"},{tag:b.url,class:"tok-url"},{tag:b.labelName,class:"tok-labelName"},{tag:b.inserted,class:"tok-inserted"},{tag:b.deleted,class:"tok-deleted"},{tag:b.literal,class:"tok-literal"},{tag:b.string,class:"tok-string"},{tag:b.number,class:"tok-number"},{tag:[b.regexp,b.escape,b.special(b.string)],class:"tok-string2"},{tag:b.variableName,class:"tok-variableName"},{tag:b.local(b.variableName),class:"tok-variableName tok-local"},{tag:b.definition(b.variableName),class:"tok-variableName tok-definition"},{tag:b.special(b.variableName),class:"tok-variableName2"},{tag:b.definition(b.propertyName),class:"tok-propertyName tok-definition"},{tag:b.typeName,class:"tok-typeName"},{tag:b.namespace,class:"tok-namespace"},{tag:b.className,class:"tok-className"},{tag:b.macroName,class:"tok-macroName"},{tag:b.propertyName,class:"tok-propertyName"},{tag:b.operator,class:"tok-operator"},{tag:b.comment,class:"tok-comment"},{tag:b.meta,class:"tok-meta"},{tag:b.invalid,class:"tok-invalid"},{tag:b.punctuation,class:"tok-punctuation"}]);var Kc,Or=new L;function yv(i){return A.define({combine:i?e=>e.concat(i):void 0})}var bv=new L,Ge=class{constructor(e,t,r=[],n=""){this.data=e,this.name=n,j.prototype.hasOwnProperty("tree")||Object.defineProperty(j.prototype,"tree",{get(){return he(this)}}),this.parser=t,this.extension=[oi.of(this),j.languageData.of((s,o,a)=>{let l=im(s,o,a),c=l.type.prop(Or);if(!c)return[];let h=s.facet(c),u=l.type.prop(bv);if(u){let f=l.resolve(o-l.from,a);for(let d of u)if(d.test(f,s)){let m=s.facet(d.facet);return d.type=="replace"?m:m.concat(h)}}return h})].concat(r)}isActiveAt(e,t,r=-1){return im(e,t,r).type.prop(Or)==this.data}findRegions(e){let t=e.facet(oi);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let r=[],n=(s,o)=>{if(s.prop(Or)==this.data){r.push({from:o,to:o+s.length});return}let a=s.prop(L.mounted);if(a){if(a.tree.prop(Or)==this.data){if(a.overlay)for(let l of a.overlay)r.push({from:l.from+o,to:l.to+o});else r.push({from:o,to:o+s.length});return}else if(a.overlay){let l=r.length;if(n(a.tree,a.overlay[0].from+o),r.length>l)return}}for(let l=0;lr.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function he(i){let e=i.field(Ge.state,!1);return e?e.tree:ce.empty}var rh=class{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 r=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-r,t-r)}},Rn=null,nh=class i{constructor(e,t,r=[],n,s,o,a,l){this.parser=e,this.state=t,this.fragments=r,this.tree=n,this.treeLen=s,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,r){return new i(e,t,[],ce.empty,0,r,[],null)}startParse(){return this.parser.startParse(new rh(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=ce.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var r;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}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(_i.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Rn;Rn=this;try{return e()}finally{Rn=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=rm(e,t.from,t.to);return e}changes(e,t){let{fragments:r,tree:n,treeLen:s,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,h,u,f)=>l.push({fromA:c,toA:h,fromB:u,toB:f})),r=_i.applyChanges(r,l),n=ce.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),u=e.mapPos(c.to,-1);he.from&&(this.fragments=rm(this.fragments,n,s),this.skipped.splice(r--,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 pr{createParse(t,r,n){let s=n[0].from,o=n[n.length-1].to;return{parsedPos:s,advance(){let l=Rn;if(l){for(let c of n)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new ce(Ee.none,[],[],o-s)},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 Rn}};function rm(i,e,t){return _i.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Qn=class i{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),r=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,r)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),r=nh.create(e.facet(oi).parser,e,{from:0,to:t});return r.work(20,t)||r.takeTree(),new i(r)}};Ge.state=ie.define({create:Qn.init,update(i,e){for(let t of e.effects)if(t.is(Ge.setState))return t.value;return e.startState.facet(oi)!=e.state.facet(oi)?Qn.init(e.state):i.apply(e)}});var lm=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(lm=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var eh=typeof navigator<"u"&&(!((Kc=navigator.scheduling)===null||Kc===void 0)&&Kc.isInputPending)?()=>navigator.scheduling.isInputPending():null,wv=se.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(Ge.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Ge.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=lm(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,l=s.context.work(()=>eh&&eh()||Date.now()>o,n+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Ge.setState.of(new Qn(s.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>xe(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()}}}),oi=A.define({combine(i){return i.length?i[0]:null},enables:i=>[Ge.state,wv,R.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),br=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}};var vv=A.define(),wr=A.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function Mn(i){let e=i.facet(wr);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function vr(i,e){let t="",r=i.tabSize,n=i.facet(wr)[0];if(n==" "){for(;e>=r;)t+=" ",e-=r;n=" "}for(let s=0;s=e?xv(i,t,e):null}var Li=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=Mn(e)}lineAt(e,t=1){let r=this.state.doc.lineAt(e),{simulateBreak:n,simulateDoubleBreak:s}=this.options;return n!=null&&n>=r.from&&n<=r.to?s&&n==e?{text:"",from:e}:(t<0?n-1&&(s+=o-this.countColumn(r,r.search(/\S|$/))),s}countColumn(e,t=e.length){return Bt(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:r,from:n}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(n);if(o>-1)return o}return this.countColumn(r,r.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},_n=new L;function xv(i,e,t){let r=e.resolveStack(t),n=r.node.enterUnfinishedNodesBefore(t);if(n!=r.node){let s=[];for(let o=n;o!=r.node;o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)r={node:s[o],next:r}}return cm(r,i,t)}function cm(i,e,t){for(let r=i;r;r=r.next){let n=kv(r.node);if(n)return n(sh.create(e,t,r))}return 0}function Sv(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function kv(i){let e=i.type.prop(_n);if(e)return e;let t=i.firstChild,r;if(t&&(r=t.type.prop(L.closedBy))){let n=i.lastChild,s=n&&r.indexOf(n.name)>-1;return o=>hm(o,!0,1,void 0,s&&!Sv(o)?n.from:void 0)}return i.parent==null?Tv:null}function Tv(){return 0}var sh=class i extends Li{constructor(e,t,r){super(e.state,e.options),this.base=e,this.pos=t,this.context=r}get node(){return this.context.node}static create(e,t,r){return new i(e,t,r)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let r=e.resolve(t.from);for(;r.parent&&r.parent.from==r.from;)r=r.parent;if(Pv(r,e))break;t=this.state.doc.lineAt(r.from)}return this.lineIndent(t.from)}continue(){return cm(this.context.next,this.base,this.pos)}};function Pv(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function Cv(i){let e=i.node,t=e.childAfter(e.from),r=e.lastChild;if(!t)return null;let n=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=n==null||n<=s.from?s.to:Math.min(s.to,n);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==r)return null;if(!l.type.isSkipped)return l.fromhm(r,e,t,i)}function hm(i,e,t,r,n){let s=i.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||n==i.pos+o,l=e?Cv(i):null;return l?a?i.column(l.from):i.column(l.to):i.baseIndent+(a?0:i.unit*t)}var Ev=200;function um(){return j.transactionFilter.of(i=>{if(!i.docChanged||!i.isUserEvent("input.type")&&!i.isUserEvent("input.complete"))return i;let e=i.startState.languageDataAt("indentOnInput",i.startState.selection.main.head);if(!e.length)return i;let t=i.newDoc,{head:r}=i.newSelection.main,n=t.lineAt(r);if(r>n.from+Ev)return i;let s=t.sliceString(n.from,r);if(!e.some(c=>c.test(s)))return i;let{state:o}=i,a=-1,l=[];for(let{head:c}of o.selection.ranges){let h=o.doc.lineAt(c);if(h.from==a)continue;a=h.from;let u=Qo(o,h.from);if(u==null)continue;let f=/^\s*/.exec(h.text)[0],d=vr(o,u);f!=d&&l.push({from:h.from,to:h.from+f.length,insert:d})}return l.length?[i,{changes:l,sequential:!0}]:i})}var Rv=A.define(),Dn=new L;function Mo(i){let e=i.firstChild,t=i.lastChild;return e&&e.tot)continue;if(s&&a.from=e&&c.to>t&&(s=c)}}return s}function Qv(i){let e=i.lastChild;return e&&e.to==i.to&&e.type.isError}function Eo(i,e,t){for(let r of i.facet(Rv)){let n=r(i,e,t);if(n)return n}return Av(i,e,t)}function fm(i,e){let t=e.mapPos(i.from,1),r=e.mapPos(i.to,-1);return t>=r?void 0:{from:t,to:r}}var _o=_.define({map:fm}),Ln=_.define({map:fm});function dm(i){let e=[];for(let{head:t}of i.state.selection.ranges)e.some(r=>r.from<=t&&r.to>=t)||e.push(i.lineBlockAt(t));return e}var qi=ie.define({create(){return M.none},update(i,e){i=i.map(e.changes);for(let t of e.effects)if(t.is(_o)&&!Mv(i,t.value.from,t.value.to)){let{preparePlaceholder:r}=e.state.facet(uh),n=r?M.replace({widget:new oh(r(e.state,t.value))}):nm;i=i.update({add:[n.range(t.value.from,t.value.to)]})}else t.is(Ln)&&(i=i.update({filter:(r,n)=>t.value.from!=r||t.value.to!=n,filterFrom:t.value.from,filterTo:t.value.to}));if(e.selection){let t=!1,{head:r}=e.selection.main;i.between(r,r,(n,s)=>{nr&&(t=!0)}),t&&(i=i.update({filterFrom:r,filterTo:r,filter:(n,s)=>s<=r||n>=r}))}return i},provide:i=>R.decorations.from(i),toJSON(i,e){let t=[];return i.between(0,e.doc.length,(r,n)=>{t.push(r,n)}),t},fromJSON(i){if(!Array.isArray(i)||i.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t